Capítulo 1.6 - Instalação e Configuração
Visão Geral
Antes de começar a usar o Kubernetes, você precisa instalar as ferramentas necessárias. Este capítulo irá guiá-lo pela instalação do kubectl (a ferramenta de linha de comando do Kubernetes) e a configuração de um cluster local para prática.
Objetivos
Ao final deste capítulo, você será capaz de:
- Instalar o kubectl no seu sistema
- Entender a configuração do kubectl
- Iniciar um cluster Kubernetes local
- Verificar se tudo está funcionando corretamente
- Utilizar os comandos básicos do kubectl
O que é o kubectl?
kubectl (pronuncia-se "kube-control" ou "kube-cuttle") é a ferramenta oficial de linha de comando para interagir com um cluster Kubernetes.
Funcionalidades do kubectl:
- Criar, modificar, deletar recursos
- Inspecionar o estado do cluster
- Gerenciar deploys
- Depurar aplicações
- Acessar os logs dos pods
Instalação do kubectl
Verificação da Instalação
Antes de instalar, vamos verificar se o kubectl já está instalado:
kubectl version --client
Se você visualizar uma versão, o kubectl já está instalado! Caso contrário, siga as instruções abaixo.
Instalação no Windows
Método 1: Via Chocolatey (Recomendado)
Se você já possui o Chocolatey instalado:
choco install kubernetes-cli
Método 2: Download Direto
-
Baixe a versão mais recente em:
https://dl.k8s.io/release/v1.28.0/bin/windows/amd64/kubectl.exe(Substitua
v1.28.0pela versão desejada) -
Adicione o kubectl.exe ao seu PATH:
- Crie uma pasta
C:\kubectl - Coloque o
kubectl.exenesta pasta - Adicione
C:\kubectlà variável de ambiente PATH
- Crie uma pasta
-
Verifique a instalação:
kubectl version --client
Método 3: Via PowerShell
# Baixar o kubectl
$version = "v1.28.0"
$url = "https://dl.k8s.io/release/$version/bin/windows/amd64/kubectl.exe"
Invoke-WebRequest -Uri $url -OutFile "$env:TEMP\kubectl.exe"
# Mover para uma pasta no PATH
Move-Item -Path "$env:TEMP\kubectl.exe" -Destination "C:\Windows\System32\kubectl.exe"
# Verificar
kubectl version --client
Instalação no Linux
Método 1: Via Gerenciador de Pacotes (Ubuntu/Debian)
# Atualizar os pacotes
sudo apt-get update
# Instalar dependências
sudo apt-get install -y apt-transport-https ca-certificates curl
# Adicionar a chave GPG do Kubernetes
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
# Adicionar o repositório
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
# Instalar o kubectl
sudo apt-get update
sudo apt-get install -y kubectl
# Verificar
kubectl version --client
Método 2: Download Direto
# Baixar a versão mais recente
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# Tornar executável
chmod +x kubectl
# Mover para uma pasta no PATH
sudo mv kubectl /usr/local/bin/
# Verificar
kubectl version --client
Instalação no macOS
Método 1: Via Homebrew (Recomendado)
brew install kubectl
Método 2: Download Direto
# Baixar
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
# Tornar executável
chmod +x kubectl
# Mover para uma pasta no PATH
sudo mv kubectl /usr/local/bin/
# Verificar
kubectl version --client
Configuração do kubectl
Arquivo de Configuração
O kubectl utiliza um arquivo de configuração localizado em:
- Linux/macOS:
~/.kube/config - Windows:
%USERPROFILE%\.kube\config
Este arquivo contém:
- Informações de conexão com os clusters
- Contextos (qual cluster utilizar)
- Usuários e autenticação
Estrutura do Arquivo config
apiVersion: v1
kind: Config
clusters:
- name: my-cluster
cluster:
server: https://api.my-cluster.com
certificate-authority-data: <cert-data>
contexts:
- name: my-context
context:
cluster: my-cluster
user: my-user
current-context: my-context
users:
- name: my-user
user:
token: <token>
Comandos Úteis de Configuração
# Ver a configuração atual
kubectl config view
# Ver os contextos disponíveis
kubectl config get-contexts
# Trocar de contexto
kubectl config use-context my-context
# Ver o contexto atual
kubectl config current-context
Cluster Local: minikube
Para praticar Kubernetes localmente, usaremos o minikube, que cria um cluster Kubernetes de nó único em uma máquina virtual.
Instalação do minikube
Windows
# Via Chocolatey
choco install minikube
# Ou download direto
# Baixe em: https://github.com/kubernetes/minikube/releases
Linux
# Baixar
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# Instalar
sudo install minikube-linux-amd64 /usr/local/bin/minikube
macOS
brew install minikube
Inicializando o minikube
# Iniciar o minikube
minikube start
# Verificar o status
minikube status
# Ver informações do cluster
kubectl cluster-info
Comandos Úteis do minikube
# Parar o cluster
minikube stop
# Iniciar o cluster
minikube start
# Deletar o cluster
minikube delete
# Abrir o dashboard do Kubernetes
minikube dashboard
# Acessar o ambiente do minikube
minikube ssh
Cluster Local: kind (Alternativa)
kind (Kubernetes in Docker) é uma alternativa ao minikube que utiliza Docker ao invés de uma VM.
Instalação do kind
Windows
choco install kind
Linux/macOS
# Baixar
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
# Para macOS: kind-darwin-amd64
# Tornar executável
chmod +x ./kind
# Mover para o PATH
sudo mv ./kind /usr/local/bin/kind
Utilização do kind
# Criar um cluster
kind create cluster --name my-cluster
# Listar os clusters
kind get clusters
# Deletar um cluster
kind delete cluster --name my-cluster
Verificação da Instalação
Teste Completo
Execute estes comandos para verificar se tudo está funcionando:
# 1. Verificar a versão do kubectl
kubectl version --client
# 2. Verificar a conexão com o cluster
kubectl cluster-info
# 3. Listar os nodes
kubectl get nodes
# 4. Listar todos os pods (deve estar vazio no início)
kubectl get pods --all-namespaces
# 5. Verificar os componentes do sistema
kubectl get componentstatuses
# Nota: Este comando está depreciado nas versões recentes
Resultado Esperado
Se tudo estiver funcionando, você deverá ver:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 1m v1.28.0
Comandos Básicos do kubectl
Aqui estão os comandos essenciais que você usará ao longo do curso:
Comandos Gerais
# Obter informações
kubectl get <resource> # Listar recursos
kubectl describe <resource> <name> # Detalhes de um recurso
kubectl explain <resource> # Documentação de um recurso
# Criar recursos
kubectl create <resource> # Criar pela linha de comando
kubectl apply -f <file.yaml> # Criar a partir de um arquivo YAML
# Modificar recursos
kubectl edit <resource> <name> # Editar um recurso
kubectl patch <resource> <name> # Modificar parcialmente
# Deletar recursos
kubectl delete <resource> <name> # Deletar um recurso
kubectl delete -f <file.yaml> # Deletar a partir de um arquivo
Exemplos Práticos
# Listar todos os pods
kubectl get pods
# Listar todos os pods em todos os namespaces
kubectl get pods --all-namespaces
# Ver detalhes de um pod
kubectl describe pod my-pod
# Ver logs de um pod
kubectl logs my-pod
# Executar um comando em um pod
kubectl exec -it my-pod -- /bin/bash
# Copiar um arquivo para/de um pod
kubectl cp my-pod:/path/file ./local-file
Autocompletar (Bônus)
Configuração do Autocompletar
O autocompletar torna o uso do kubectl muito mais fácil:
Bash (Linux/macOS)
# Adicionar ao ~/.bashrc
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrc
Zsh (macOS)
# Adicionar ao ~/.zshrc
echo 'source <(kubectl completion zsh)' >> ~/.zshrc
source ~/.zshrc
PowerShell (Windows)
# Instalar o módulo
Install-Module -Name PSKubectlCompletion
# Importar no perfil
Add-Content $PROFILE "Import-Module PSKubectlCompletion"
Resumo
Neste capítulo, você aprendeu:
Como instalar o kubectl em diferentes sistemas
Como configurar o kubectl para conectar a um cluster
Como iniciar um cluster local com minikube ou kind
Como verificar se tudo está funcionando corretamente
Os comandos básicos essenciais do kubectl
Próximos Passos
Agora que você tem o kubectl instalado e um cluster local funcional, você está pronto para:
Lab 1.1: Primeiro deploy no Kubernetes
Módulo 2: Arquitetura detalhada e componentes do Kubernetes
Recursos
Troubleshooting
Problemas Comuns e Soluções
Problema 1: kubectl: command not found
Sintoma:
kubectl: command not found
Soluções:
-
Verificar a instalação:
# Windows
where kubectl
# Linux/macOS
which kubectl -
Verificar o PATH:
- Certifique-se de que a pasta contendo o kubectl está no seu PATH
- Windows: Verifique as variáveis de ambiente do sistema
- Linux/macOS: Verifique com
echo $PATH
-
Reinstalar:
- Siga novamente as instruções de instalação para o seu sistema operacional
Problema 2: Unable to connect to the server
Sintoma:
The connection to the server <server> was refused
Soluções:
-
Verificar se o cluster está iniciado:
# Para minikube
minikube status
minikube start
# Para kind
kind get clusters -
Verificar a configuração:
kubectl config view
kubectl config current-context -
Verificar a conexão de rede:
kubectl cluster-info
Problema 3: minikube start falha
Possíveis sintomas:
- Erro de virtualização
- Problema de recursos (RAM/CPU)
- Conflito com Docker
Soluções:
-
Verificar a virtualização:
- Windows: Ativar Hyper-V ou VirtualBox
- Linux: Verificar KVM
- macOS: Verificar VirtualBox ou HyperKit
-
Alocar mais recursos:
minikube start --memory=4096 --cpus=2 -
Usar um driver diferente:
minikube start --driver=docker
# ou
minikube start --driver=virtualbox -
Reinicializar o minikube:
minikube delete
minikube start
Problema 4: Erro de certificado SSL
Sintoma:
x509: certificate signed by unknown authority
Soluções:
-
Verificar a data do sistema:
- Certifique-se de que a data/hora do seu sistema está correta
-
Reiniciar o contexto:
kubectl config use-context minikube -
Recriar o cluster:
minikube delete
minikube start
Problema 5: kubectl version mostra apenas o client
Sintoma:
kubectl version --client
# Funciona, mas
kubectl version
# Erro: Unable to connect to the server
Solução:
- O cluster não está iniciado ou o kubectl não está configurado
- Siga os passos de "Verificação da Instalação" acima
Navegação
Capítulo anterior: Capítulo 1.5 - Conceitos Fundamentais
Voltar ao módulo: Módulo 1 - Introdução ao Kubernetes
Próximo Lab: Lab 1.1 - Primeiro Deploy
Capítulo criado em: Dezembro 2024