Cluster Kubernetes no RHel 7 (Parte 2)

Cenário

Para a situação proposta iremos criar um cluster composto por:

admin

work01

work02

Irei nomeá-los respectivamente para:

sedek8admin

sedek8work01

sedek8work02

Requisitos mínimos

Docker-ce

2 Cores

2 GB RAM

Vamos começa com a instalação do Docker

Instalação do Docker

Executar os comando abaixo:

yum -y install lvm2 device-mapper device-mapper-persistent-data device-mapper-event device-mapper-libs device-mapper-event-libsyum install wget -ywget https://download.docker.com/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

Logo após executar os comando acima será necessário acessar o arquivo: docker-ce.repo, localizado em: /etc/yum.repos.d/ e modificar o valor do baseurl para: https://download.docker.com/linux/centos/7/$basearch/stable

Outra modificação que precisa ser feita é no arquivo search-disabled-repos.conf, localizado em: /etc/yum/pluginconf.d/. Nele existe o atributo notify_only com valor 1 é necessário que seu valor seja 0.

notify_only=0

Algumas dependências são necessárias antes de instalar o Docker de fato e para isso vamos executar os comando abaixo:

yum install http://ftp.riken.jp/Linux/cern/centos/7/extras/x86_64/Packages/container-selinux-2.74-1.el7.noarch.rpm

Agora é só executar o comando abaixo para instalar o Docker

yum -y install docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io

O procedimento acima deve ser realizado em todas as máquinas do cluster.

Instalação do Kubernetes

Para instalar o Kubernetes precisamos configurar o container runtime, que é o software responsável por executar os contêineres. Como estamos utilzando o Docker será necessário executar os comando abaixo:

mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF

executado o comando acima, agora é executar os comandos abaixo:

systemctl enable docker
systemctl daemon-reload
systemctl restart docker

Agora chegamos ao momento esperado… Instalaremos o Kubernetes com os seguintes comandos:

Nesse momento iremos instalar o kubeadm, kubelet e o kubectl

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
yum install -y kubelet kubeadm kubectl — disableexcludes=kubernetessystemctl enable --now kubelet

Adicionar parâmetro abaixo ao arquivo 10-kubeadm.conf, localizado em: /usr/lib/systemd/system/kubelet.service.d

Environment="KUBELET_ARGS=--fail-swap-on=false"

Adicionando ao final da linha ExecStart $KUBELET_ARGS

swapoff -a
systemctl daemon-reload
systemctl restart kubelet.service

Irei desabilitar o firewall da máquina, pois outro firewall controlando a segurança.

systemctl stop firewalld
systemctl disable firewalld
systemctl mask --now firewalld

Realizar outra configuração no arquivo bridge-nf-call-iptables, localizado em: /proc/sys/net/bridge/ alterando seu valor de 0 para 1.

Agora todos os comando serão executados na máquina sedek8admin.

Iniciar o cluster com o comando abaixo:

kubeadm init --ignore-preflight-errors=Swap

Ao executar o comando acima a seguinte saída será exibida:

Ele solicita que seja executado outros três comandos:

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

Além de exibir o token para que os nós entrem no cluster.

Ao executar o comando kubectl get nodes você perceberá que o cluster apresenta como status NotReady, para resolver isso basta execitar outro comando:

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

Agora chegou a hora de juntar os nós no cluster, para isso basta pegar a instrução que foi fornecida ao iniciar o cluster kubernetes e aplicar nas máquinas sedek8work01 e sedek8work02.

Depois de aplicado, basta executar o comando kubectl get nodes para visualizar os nós do cluster kubernetes.

Finalizamos a configuração do cluster Kubernetes, próximo post iremos realizar a configuração do dashboard.

--

--