Instale e implante o Kubernetes no Ubuntu 18.04 LTS
O que é Kubernetes?
Kubernetes é um sistema de gerenciamento de contêineres gratuito e de código aberto que fornece uma plataforma para automação de implantação, dimensionamento e operações de contêineres de aplicativos em clusters de computadores host. Com o Kubernetes, você pode usar livremente a infraestrutura de nuvem híbrida, local e pública para executar tarefas de implantação de sua organização.
Neste tutorial, explicaremos como instalar o Kubernetes em um sistema Ubuntu e também implantar o Kubernetes em um cluster Ubuntu de dois nós.
Os comandos e procedimentos mencionados neste artigo foram executados em um sistema Ubuntu 18.04 LTS. Como usaremos a linha de comando do Ubuntu, o Terminal, para executar todos os comandos, você pode abri-lo através do Dash do sistema ou do atalho Ctrl+Alt+T.
Instalação do Kubernetes
O cluster de dois nós que formaremos neste artigo consistirá em um nó mestre e um nó escravo. Ambos os nós precisam ter o Kubernetes instalado. Portanto, siga as etapas descritas abaixo para instalar o Kubernetes em ambos os nós do Ubuntu.
Etapa 1: instale o Docker em ambos os nós
Instale o utilitário Docker em ambos os nós executando o seguinte comando como sudo no Terminal de cada nó:
sudo apt install docker.io
Você será solicitado com uma opção S/n para prosseguir com a instalação. Digite Y e pressione Enter para continuar. O Docker será então instalado em seu sistema. Você pode verificar a instalação e também verificar o número da versão do Docker através do seguinte comando:
docker --version
Etapa 2: habilite o Docker em ambos os nós
Habilite o utilitário Docker em ambos os nós executando o seguinte comando em cada um:
sudo systemctl enable docker
Etapa 3: adicione a chave de assinatura do Kubernetes em ambos os nós
Execute o seguinte comando para obter a chave de assinatura do Kubernetes:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
Se o Curl não estiver instalado em seu sistema, você pode instalá-lo através do seguinte comando como root:
sudo apt install curl
Você será solicitado com uma opção S/n para prosseguir com a instalação. Digite Y e pressione Enter para continuar. O utilitário Curl será então instalado em seu sistema.
Etapa 4: adicionar o repositório Xenial Kubernetes em ambos os nós
Execute o seguinte comando em ambos os nós para adicionar o repositório Xenial Kubernetes:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Etapa 5: instalar o Kubeadm
A etapa final do processo de instalação é instalar o Kubeadm em ambos os nós por meio do seguinte comando:
sudo apt install kubeadm
Você será solicitado com uma opção S/n para prosseguir com a instalação. Digite Y e pressione Enter para continuar. O Kubeadm será então instalado em seu sistema.
Você pode verificar o número da versão do Kubeadm e também verificar a instalação através do seguinte comando:
kubeadm version
Implantação do Kubernetes
Etapa 1: desative a memória swap (se estiver em execução) em ambos os nós
Você precisa desabilitar a memória swap em ambos os nós, pois o Kubernetes não funciona corretamente em um sistema que usa memória swap. Execute o seguinte comando em ambos os nós para desabilitar a memória swap
sudo swapoff -a
Etapa 2: forneça nomes de host exclusivos para cada nó
Execute o seguinte comando no nó mestre para atribuir a ele um nome de host exclusivo:
sudo hostnamectl set-hostname master-node
Execute o seguinte comando no nó escravo para atribuir a ele um nome de host exclusivo:
hostnamectl set-hostname slave-node
Etapa 3: inicializar o Kubernetes no nó mestre
Execute o seguinte comando como sudo no nó mestre:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
O processo pode demorar um minuto ou mais dependendo da sua conexão com a Internet. A saída deste comando é muito importante:
Anote as seguintes informações da saída:
Para começar a usar seu cluster, você precisa executar o seguinte como usuário regular:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Agora você pode ingressar em qualquer número de máquinas executando o seguinte em cada nó
como raiz:
kubeadm join 192.168.100.6:6443 --token 06tl4c.oqn35jzecidg0r0m --discovery-token-ca-cert-hash sha256:c40f5fa0aba6ba311efcdb0e8cb637ae0eb8ce27b7a03d47be6d966142f2204c
Agora execute os comandos sugeridos na saída para começar a usar o cluster:
Você pode verificar o status do nó mestre executando o seguinte comando:
kubectl get nodes
Você verá que o status do nó mestre ainda não está pronto. Isso ocorre porque nenhum pod ainda foi implantado no nó mestre e, portanto, a Container Networking Interface está vazia.
Etapa 4: implantar uma rede de pods por meio do nó mestre
Uma rede pod é um meio de comunicação entre os nós de uma rede. Neste tutorial, estamos implantando uma rede Flannel pod em nosso cluster por meio do seguinte comando:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Use o seguinte comando para visualizar o status da rede:
kubectl get pods --all-namespaces
Agora, ao ver o status dos nós, você verá que o nó mestre está pronto:
sudo kubectl get nodes
Etapa 5: Adicione o nó escravo à rede para formar um cluster
No nó escravo, execute o seguinte comando gerado ao inicializar o Kubernetes no nó mestre:
sudo kubeadm join 192.168.100.6:6443 --token 06tl4c.oqn35jzecidg0r0m --discovery-token-ca-cert-hash sha256:c40f5fa0aba6ba311efcdb0e8cb637ae0eb8ce27b7a03d47be6d966142f2204c
Agora, quando você executar o seguinte comando no nó mestre, ele confirmará que dois nós, o nó mestre e os nós do servidor, estão em execução em seu sistema.
sudo kubectl get nodes
Isso mostra que o cluster de dois nós agora está funcionando por meio do sistema de gerenciamento de contêineres Kubernetes.
Neste artigo, explicamos a instalação do sistema de gerenciamento de contêineres Kubernetes em dois nós Ubuntu. Em seguida, formamos um cluster simples de dois nós e implantamos o Kubernetes nele. Agora você pode implantar e usar qualquer serviço, como o servidor Nginx ou o contêiner Apache, para usar essa rede em cluster.