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
EOFsetenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/configyum 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.