Devido a pandemia do Coronavirus (COVID-19, Jeferson Fernando liberou o acesso público a este repositório como forma de ajudar no combate a pandemia incentivando as pessoas a ficarem em casa adquirindo conhecimento e se aprimorando na profissão para poderem contribuir no local de trabalho ou mesmo se prepararem para novas oportunidades.
O conteúdo desse material é dividido em partes, as quais são dividas em "days" (day-1, day-2, day-3, etc) para facilitar o aprendizado. A ideia é o aluno focar no aprendizado por etapas e por esse motivo recomendamos que ele somente avance para a próxima parte quando estiver totalmente confortável com o conteúdo atual.
Neste material, você terá contato com conteúdos que abordam do nível iniciante ao avançado sobre Kubernetes. E agora que ele se tornou aberto, com a ajuda de todos vamos construir o maior e mais completo material sobre k8s do mundo.
Contamos com a sua ajuda para tornar este material ainda mais completo. Colabore! Para contribuir com melhorias no conteúdo, siga as instruções deste tutorial.
Veja os vídeos sobre Kubernetes, DevOps, Automação e outros assuntos relacionado à tecnologia nos canais da LINUXtips:
Veja os treinamentos disponíveis da LINUXtips:
Principais links da LINUXtips:
Esse material é parte do treinamento Descomplicando Kubernetes da LINUXtips. Ele foi desenhado para capacitar a pessoa estudante ou a pessoa profissional de TI a trabalhar com o Kubernetes em ambientes criticos.
O Treinamento é composto por material escrito, aulas gravadas em vídeo e aulas ao vivo. Durante o treinamento a pessoa será testada de forma prática, sendo necessário completar desafios reais para dar continuidade no treinamento.
O foco do treinamento é capacitar a pessoa para trabalhar com Kubernetes de maneira eficiente e totalmente preparada para trabalhar em ambientes críticos que utilizam containers.
Fique à vontade para aprender muito sobre Kubernetes utilizando esse livro!
DAY-1
- DAY-1
- O quê preciso saber antes de começar?
- Inicio da aula do Day-1
- Qual a distro GNU/Linux que devo usar?
- Alguns sites que devemos visitar
- O Container Engine
- OCI - Open Container Initiative
- O Container Runtime
- O que é o Kubernetes?
- Instalando e customizando o Kubectl
- Criando um cluster Kubernetes
- Criando o cluster em sua máquina local
- Minikube
- Requisitos básicos para o Minikube
- Instalação do Minikube no GNU/Linux
- Instalação do Minikube no MacOS
- Instalação do Minikube no Microsoft Windows
- Iniciando, parando e excluindo o Minikube
- Ver detalhes sobre o cluster
- Descobrindo o endereço do Minikube
- Acessando a máquina do Minikube via SSH
- Dashboard do Minikube
- Logs do Minikube
- Remover o cluster
- Kind
- Minikube
- Criando o cluster em sua máquina local
- Primeiros passos no k8s
- Limpando tudo e indo para casa
DAY-2
DAY-3
- DAY-3
- Inicio da aula do Day-3
- O que iremos ver hoje?
- O que é um Deployment?
- Como criar um Deployment?
- Como aplicar o Deployment?
- Como verificar os Pods que o Deployment está gerenciando?
- Como verificar o ReplicaSet que o Deployment está gerenciando?
- Como verificar os detalhes do Deployment?
- Como atualizar o Deployment?
- E qual é a estratégia de atualização padrão do Deployment?
- As estratégias de atualização do Deployment
- Removendo um Deployment
- Conclusão
DAY-4
DAY-5
- DAY-5
- Conteúdo do Day-5
- Inicio da aula do Day-5
- O que iremos ver hoje?
- Instalação de um cluster Kubernetes
- O que é um cluster Kubernetes?
- Formas de instalar o Kubernetes
- Criando um cluster Kubernetes com o kubeadm
- Instalando o kubeadm
- Desativando o uso do swap no sistema
- Carregando os módulos do kernel
- Configurando parâmetros do sistema
- Instalando os pacotes do Kubernetes
- Instalando o Docker e o containerd
- Configurando o containerd
- Habilitando o serviço do kubelet
- Configurando as portas
- Iniciando o cluster
- Entendendo o arquivo admin.conf
- Instalando o Weave Net
- O que é o CNI?
- Visualizando detalhes dos nodes
- A sua lição de casa
- Final do Day-5
DAY-6
DAY-7
DAY-9
DAY-10
DAY-11
- Descomplicando o Kubernetes
- DAY-11
- Conteúdo do Day-11
- Introdução ao Metrics Server
- Por que o Metrics Server é importante para o HPA?
- Instalando o Metrics Server
- Criando um HPA
- Exemplos Práticos com HPA
- Autoscaling com base na utilização de CPU
- Autoscaling com base na utilização de Memória
- Configuração Avançada de HPA: Definindo Comportamento de Escalonamento
- ContainerResource
- Detalhes do Algoritmo de Escalonamento
- Configurações Avançadas e Uso Prático
- Integrando HPA com Prometheus para Métricas Customizadas
- A sua lição de casa
- Final do Day-11
DAY-12
- Descomplicando o Kubernetes
- DAY-12: Dominando Taints e Tolerations
- Conteúdo do Day-12
- Introdução
- O que são Taints e Tolerations?
- Por que usar Taints e Tolerations?
- Anatomia de um Taint
- Anatomia de uma Toleration
- Aplicando Taints
- Configurando Tolerations
- Cenários de Uso
- Combinando Taints e Tolerations com Affinity Rules
- Exemplos Práticos
- O que são Selectors?
- Tipos de Selectors
- Selectors em Ação
- Selectors e Namespaces
- Cenários de Uso
- Dicas e Armadilhas
- Exemplos Práticos
DAY-13
- Descomplicando o Kubernetes
- DAY-13: Descomplicando Kyverno e as Policies no Kubernetes
- Conteúdo do Day-13
- O que iremos ver hoje?
- Inicio do Day-13
- Introdução ao Kyverno
- Instalando o Kyverno
- Verificando a Instalação
- Criando a nossa primeira Policy
- Mais exemplos de Policies
- Conclusão
DAY-14
- Descomplicando o Kubernetes
- DAY-14: Descomplicando Network Policies no Kubernetes
- Conteúdo do Day-14
- O que iremos ver hoje?
- O que são Network Policies?
- Instalando um Nginx Ingress Controller
- Criando Regras de Network Policy
DAY-15
- Descomplicando o Kubernetes
- O que iremos ver hoje?
- RBAC
- O que é RBAC?
- Primeiro exemplo de RBAC
- Criando um Usuário para acesso ao cluster
- Criando um Role para o nosso usuário
- apiGroups
- Recursos
- Verbos
- Criando a Role
- Criando um RoleBinding para o nosso usuário
- Adicionando o certificado do usuário no kubeconfig
- Acessando o cluster com o novo usuário
- ClusterRole e ClusterRoleBinding
- ClusterRole e ClusterRoleBinding para o usuário admin
- Removendo o usuário
- Utilizando Tokens para Service Accounts
- Primeiro exemplo de RBAC
- Final do Day-15
- O que é RBAC?
DAY-16
- Descomplicando o Kubernetes
- DAY-16: Descomplicando Helm
- Conteúdo do Day-16
- O que iremos ver hoje?
- O que é o Helm?
- O que é um Chart?
- Criando o nosso primeiro Chart
- Instalando o nosso Chart
- Atualizando o nosso Chart
- Utilizando
range
e oif
no Helm - Utilizando
default
,toYaml
etoJson
no Helm - O Que São Helpers no Helm?
- Criando o
_helpers.tpl
da nossa App - Passo 2: Refatorando
Deployments.yaml
eServices.yaml
- Passo 3: Refatorando os ConfigMaps
- Criando um repositório de Helm Charts
- Utilizando o nosso repositório de Helm Charts
- O que vimos no dia de hoje