logotype

Instalando Cluster Kubernetes v1.28

Leitura estimada: 4 minutos 238 views
  • Um host Linux compatível. O projeto Kubernetes fornece instruções genéricas para distribuições Linux baseadas em Debian e Red Hat, e aquelas distribuições sem um gerenciador de pacotes.
  • 2 GB ou mais de RAM por máquina (menos que isso deixará pouco espaço para seus aplicativos).
  • 2 CPUs ou mais.
  • Conectividade de rede completa entre todas as máquinas no cluster (rede pública ou privada é suficiente).
  • Nome de host exclusivo, endereço MAC e product_uuid para cada nó. Veja aqui para mais detalhes.
  • Certas portas estão abertas em suas máquinas.
  • Configuração de swap. O comportamento padrão de um kubelet era falhar ao iniciar se a memória swap fosse detectada em um nó. Veja Gerenciamento de memória swap para mais detalhes. Você DEVE desabilitar o swap se o kubelet não estiver configurado corretamente para usar o swap. Por exemplo, sudo swapoff -a desabilitará o swap temporariamente. Para tornar essa alteração persistente em reinicializações, certifique-se de que o swap esteja desabilitado em arquivos de configuração como /etc/fstab, systemd.swap, dependendo de como ele foi configurado no seu sistema.

Configurando servidor

É uma boa pratica você configurar o servidor certinho para trabalhar com o cluster kubernetes, seja para ambiente de produção ou teste, esta parte que vamos fazer se você não quiser não precisa seguir, mas é muito importante.

É uma boa pratica você configurar o servidor certinho para trabalhar com o cluster kubernetes, seja para ambiente de produção ou teste, esta parte que vamos fazer se você não quiser não precisa seguir, mas é muito importante.

  1. No meu caso eu estou usando o ubuntu server 20.4, depois de instalado você precisa atualizar e instalar alguns pacotes, pode acontecer de você precisar pular para root porque somente com o comando abaixo não funciona.
				
					sudo apt update && apt upgrade -y
				
			

2. Deixando os IPs do servidor estático.

				
					sudo vim /etc/netplan/00-installer-config.yaml
				
			

Copie a configuração abaixo para inserir dentro do /etc/netplan/00-installer-config.yaml, lembre-se que você precisa inserir o IP da sua rede!

				
					network:
ethernets:
  ens18:
    addresses:
    - 192.168.0.10/24
    nameservers:
      addresses:
      - 1.1.1.1
      search:
      - uday.com.br
    routes:
    - to: default
      via: 192.168.0.1
version: 2
				
			

Aplique as configurações de redes

				
					sudo netplan apply
				
			

3. Se você não estiver um DNS configurado na sua rede, configure o hosts para que possamos configurar nossos hosts com nome.

				
					sudo vim /etc/hosts
				
			

Copie somente a sessao onde esta escrito somente # DNS Cluster Kubernetes, lembre-se de configurar com os IPs da sua rede!

				
					127.0.0.1 localhost
127.0.1.1 server

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

# DNS Cluster Kubernetes
192.168.0.10 k8s-master
192.168.0.11 k8s-node01
192.168.0.12 k8s-node02
				
			

Desabilitar o swap é uma boa prática ao configurar um cluster Kubernetes. Se o swap estiver habilitado durante a criação do cluster, você receberá um aviso sobre isso

				
					sudo vim /etc/fstab
				
			

Eu vou deixa aqui como geralmente vai esta no seu fstab, você precisa deletar somente a linha “/swap.img none swap sw 0 0” lembre que isso precisa ser feito em todos os servidores que vai fazer parte do cluster.

				
					# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation
/dev/disk/by-id/dm-uuid-LVM-Dl3oUzcbSMbzEg5H1UhrHbpFizTEg8EiOqFzBMeMYtsCkDb0JwjGNOVItPFz0UcJ / ext4 defaults 0 1
# /boot was on /dev/sda2 during curtin installation
/dev/disk/by-uuid/2973236c-cfb3-4678-bf4b-1f7de7441eca /boot ext4 defaults 0 1

# Delete esta linha abaixo
/swap.img       none    swap    sw      0       0
				
			

Agora você precisa desabilitar o swap.

				
					swapoff -a
				
			

Instalando o runtime de contêiner

Instalando o Containerd

				
					sudo apt install containerd -y
				
			

Encaminhando IPv4 e permitindo que o iptables veja o tráfego em ponte.

				
					cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# sysctl params required by setup, params persist across reboots
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

# Apply sysctl params without reboot
sudo sysctl --system
				
			

Configurando o Containerd

				
					sudo mkdir -p /etc/containerd/
sudo vim /etc/containerd/config.toml
				
			

Inserir dentro do arquivo config.toml

				
					[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  SystemdCgroup = true
				
			

Reiniciar o serviço

				
					sudo systemctl restart containerd
				
			

Você instalará estes pacotes em todas as suas máquinas:

  • kubeadm: o comando para inicializar o cluster.

  • kubelet: o componente que é executado em todas as máquinas do seu cluster e faz coisas como iniciar pods e contêineres.

  • kubectl: o utilitário de linha de comando para se comunicar com seu cluster.

O kubeadm não instalará ou gerenciará kubeletou kubectlpara você, então você precisará garantir que eles correspondam à versão do plano de controle do Kubernetes que você deseja que o kubeadm instale para você. Se você não fizer isso, há o risco de ocorrer uma distorção de versão que pode levar a um comportamento inesperado e com bugs. No entanto, uma distorção de versão menor entre o kubelet e o plano de controle é suportada, mas a versão do kubelet nunca pode exceder a versão do servidor da API. Por exemplo, o kubelet executando 1.7.0 deve ser totalmente compatível com um servidor da API 1.8.0, mas não vice-versa.

Para obter informações sobre a instalação kubectl, consulte Instalar e configurar o kubectl .

Estas instruções são para o Kubernetes 1.28.

Atualize o índice do pacote apt e instale os pacotes necessários para usar o repositório apt do Kubernetes:

				
					sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
				
			

Baixe a chave de assinatura pública para os repositórios de pacotes Kubernetes. A mesma chave de assinatura é usada para todos os repositórios, portanto você pode desconsiderar a versão na URL:

				
					curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
				
			

Adicione o repositório apt apropriado do Kubernetes. Observe que este repositório possui pacotes apenas para Kubernetes 1.28; para outras versões secundárias do Kubernetes, você precisa alterar a versão secundária do Kubernetes no URL para corresponder à versão secundária desejada (você também deve verificar se está lendo a documentação da versão do Kubernetes que planeja instalar).

				
					sudo mkdir -p /etc/apt/keyrings
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
				
			

Atualize o índice do pacote apt, instale kubelet, kubeadm e kubectl e fixe suas versões:

				
					sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
				
			

Criando um cluster com kubeadm

Você precisará executar este comando em um dos nós que foram configurados como master.

				
					sudo kubeadm init --apiserver-advertise-address=192.168.0.70 --pod-network-cidr=10.244.0.0/16
				
			

Lengenda do comando:

  • –apiserver-advertise-address=192.168.0.70 = IP do seu master
  • –pod-network-cidr=10.244.0.0/16 = CIDR dos Pods

Após executar o comando acima, seu cluster será criado e você verá uma mensagem semelhante à seguinte:

Pronto, agora você precisar executar os comandos para criar o diretório para acessar o kubernetes, muito parecido com que esta abaixo:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Depois voce precisa executar em todos os nodes o comando aparecido com que esta abaixo gerado na criação do cluster.

kubeadm join 192.168.0.70:6443 --token jy52pe.dtalx3vj5ng3ty42 \
	--discovery-token-ca-cert-hash sha256:204ee83468f45e71f26a41083092ed1e603220e1e66e1da4e5abab908e8996bb

Networking and Network Policy

Agora voce precisa criar a rede do kubernetes:

				
					kubectl apply -f https://reweave.azurewebsites.net/k8s/v1.29/net.yaml
				
			

Verificando status do cluster

				
					kubectl get nodes
				
			
Pronto pessoa chegamos ao fim.

É muito importante você deixa seu feedback para se gostou ou não para que possamos melhorar nossas documentações!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Compartilhe este documento

Instalando Cluster Kubernetes v1.28

Ou copie o link

    CONTEÚDO