Configuração de Masters e Nós no Cluster Kubernetes via Kubeadm

Integração de um Master

Preparação do Novo Servidor Master

Configuração do Repositório do Kubernetes

Execute o comando abaixo para criar o arquivo de repositório, ajustando o URL conforme seu ambiente:

$ cat <<eof> /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes Base
baseurl=https://repo.example.com/kubernetes/el7/x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=1
gpgkey=https://repo.example.com/keys/yum-key.gpg https://repo.example.com/keys/rpm-key.gpg
exclude=kube*
EOF
</eof>

Operações de Inicialização do Sistema

Desative o swap e ajuste os parâmetros do kernel para o Kubernetes:

$ swapoff -a
$ cp /etc/fstab /etc/fstab.old
$ grep -v 'swap' /etc/fstab.old > /etc/fstab
$ cat /etc/fstab

$ cat <<eof> /etc/sysctl.d/kubernetes.conf
vm.swappiness = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
$ modprobe br_netfilter
$ sysctl --system

$ cat > /etc/sysconfig/modules/ipvs.modules <<script chmod="" grep="" ip_vs="" ip_vs_rr="" ip_vs_sh="" ip_vs_wrr="" lsmod="" modprobe="" nf_conntrack_ipv4="" script=""></script></eof>

Instalação e Configuração do Docker

Instale o Docker seguindo a documentação oficial para sua distribuição. Em seguida, personalize o daemon do Docker:

$ vi /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {"max-size": "150m", "max-file": "2"}
}
$ systemctl restart docker.service

Instalação das Ferramentas do Kubernetes

$ yum install -y kubelet-1.24.8 kubeadm-1.24.8 kubectl-1.24.8 --disableexcludes=kubernetes

Substitua as versões conforme a necessidade do seu cluster.

Geração de Token para Junção

Crie um token novo e exiba o comando de junção:

$ kubeadm token create --print-join-command
kubeadm join 172.16.0.10:6443 --token a1b2c3.d4e5f6g7h8i9j0 --discovery-token-ca-cert-hash sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890

Geração de Certificdao Adicional

Para adicionar um master, gere uma chave de certificado:

$ kubeadm init phase upload-certs --upload-certs
[upload-certs] Usando chave de certificado:
1f2e3d4c5b6a79887766554433221100ffaabbbccddeeff001122334455667788

Nota: Em versões anteriores à 1.16, utilize a flag --experimental-upload-certs.

Adicionar o Novo Master ao Cluster

$ kubeadm join 172.16.0.10:6443 --token a1b2c3.d4e5f6g7h8i9j0 --discovery-token-ca-cert-hash sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890 --control-plane --certificate-key 1f2e3d4c5b6a79887766554433221100ffaabbbccddeeff001122334455667788

Para versões anteriores à 1.16, substitua --control-plane por --experimental-control-plane.

Integração de um Nó Worker

Para adicionar um nó ao cluster, gere um comando de junção e execute-o no servidor do nó:

$ kubeadm token create --print-join-command
kubeadm join 172.16.0.10:6443 --token a1b2c3.d4e5f6g7h8i9j0 --discovery-token-ca-cert-hash sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890

Tags: kubeadm kubernetes Docker kubectl ipvs

Publicado em 6-23 19:04