Para esse artigo, vamos usar as seguintes configurações:
- 3 Server com CentOS 8.2
- 7 GB de Memória
- 100GB de Disco
Onde teremos um (01) Master e dois (02) Works com os seguinte IPs:
- 192.168.0.199 master-node
- 192.168.0.198 node-1
- 192.168.0.197 node-2
Após a instalação do
CentOS 8.2 e atualização, vamos desativar o SELinux e também o Firewalld.
Desative o
SELinux nos 3 server:
# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Desative o
Firewalld:
# systemctl disable firewalld
E reinicie os 3 server:
# reboot
Agora vamos instalar o
Docker-CE. Adicione o repositório:
# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Instale o containerd.io:
# dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
Agora instale o docker-ce:
# dnf install docker-ce -y
Ative na inicialização e inicie o serviço:
# systemctl enable --now docker
Agora vamos instalar o
kubernetes nos 3 server. Adicione o repo do kubernetes:
# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cl oud.google.com/yum/doc/rpm-package-key.gpg
EOF
Instale o
kubeadm:
# dnf install kubeadm -y
Inicie e ative na inicialização:
# systemctl enable kubelet
# systemctl start kubelet
Desative a SWAP nos 3 server:
# swapoff -a
Agora vamos iniciar o Kubernetes Master no server master:
# kubeadm init
Armazene esse comando:
kubeadm join 192.168.0.199:6443 --token rxwdpt.k12smt65egul5xg9 \
--discovery-token-ca-cert-hash sha256:69650ee0348f01723ee23beffbeed5e070abd1c5e18cfc84f101a43657db2acf
Vamos ativar nosso usuário para usar o cluster:
# mkdir -p $HOME/.kube
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# chown $(id -u):$(id -g) $HOME/.kube/config
Vamos verificar se está OK, o Master:
# kubectl get nodes
Rede do Pod
A implantação do cluster de rede é um processo altamente flexível, dependendo de suas necessidades e há muitas opções disponíveis. Como queremos manter nossa instalação o mais simples possível, usaremos o plugin Weavenet que não requer nenhuma configuração, ou código extra, e fornece um endereço IP por pod, o que é ótimo para nós
# export kubever=$(kubectl version | base64 | tr -d '\n')
# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$kubever
Verifica o status novamente:
# kubectl get nodes
Agora vamos adicionar os Nodes ao cluster. Usaremos aquele comando que pedi pra armazenar.
Execute nos 2 nodes:
# kubeadm join 192.168.0.199:6443 --token rxwdpt.k12smt65egul5xg9 \
--discovery-token-ca-cert-hash sha256:69650ee0348f01723ee23beffbeed5e070abd1c5e18cfc84f101a43657db2acf
E por fim, no Master:
# kubectl get nodes
Feito! Temos aí o nosso cluster em Kubernetes.
Espero que ajude.
Para saber mais sobre kubernetes, acesse os vídeos da
LINUXtips - YouTube.
Guia de referência:
Kubernetes Documentation | Kubernetes