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.

Setup do Ambiente

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

Requisitos da Instalaçã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