Existem diversas formar de criar o seu cluster Kubernetes, aqui, o objetivo vai ser criar o seu cluster de forma on-premisse utilizando o kubeadm.
O kubeadm é uma ferramenta com o objetivo de facilitar a criação de um cluster Kubernetes padrão, que segue todos os requisitos de um cluster certificado. Ou seja, você vai ter o básico de um cluster Kubernetes validado pela Cloud Native Computing Foundation. Mas você também vai usar o kubeadm pra alguns processos de manutenção do cluster, como renovação de certificados e atualizações do cluster.
Você pode utilizar o kubeadm em qualquer abordagem on-premisse de uso do Kubernetes, seja máquinas virtuais, máquinas baremetal e até mesmo Raspberry Pi.
Aqui eu vou mostrar como criar um cluster Kubernetes utilizando 3 máquinas, uma máquina vai ter o papel de Control Plane e as outras duas de Worker Nodes. Lembrando que dessa forma eu não estou criando um cluster com alta disponibilidade ou HA. Pois eu tenho apenas um control plane e caso ele fique fora do ar, o cluster vai ficar inoperável. Então utiliza esse setup em ambientes de estudo, teste, desenvolvimento e caso você não preciso de alta disponibilidade, homologação. NUNCA utilize em PRODUÇÃO
Abaixo segue os requisitos mínimos pra cada máquina:
Além da conexão de rede entre as máquinas, é importante garantir que as portas utilizadas pelo Kubernetes estejam abertas. Segue abaixo a tabela com as portas para as máquinas que atuam como control plane e as máquinas que atuam como worker node:
Portas para o control plane
Protocolo | Range de Porta | Uso | Quem consome |
---|---|---|---|
TCP | 6443 | Kubernetes API server | Todos |
TCP | 2379-2380 | etcd server client API | kube-apiserver, etcd |
TCP | 10250 | Kubelet API | Self, Control plane |
TCP | 10259 | kube-scheduler | Self |
TCP | 10257 | kube-controller-manager | Self |