domingo, 16 de janeiro de 2022

Kubernetes na prática I

        Em outro Post, falamos do que trata o Kubernetes, mas complementando a explicação, trata-se de uma engine de orquestração de contêineres Open Source utilizado para automatizar a implantação, dimensionamento e gerenciamento de aplicativos em contêiner. Algum POD caiu? ele se encarrega de provisionar um novo POD. Aumentou o uso da aplicação? Ele possibilita a criação de novos Pods, para escalar essa aplicação. 

Agora vejamos na prática como trabalhar como implantar um aplicativo em contêiner em um cluster.

  • Atualizar o aplicativo em contêiner com uma nova versão do software.
  • Depurar o aplicativo em contêiner.

Instalação

Quando você realiza a instalação de um cluster Kubernetes, deve decidir o tipo de instalação baseado em critérios como facilidade de manutenção, segurança, controle, quantidade de recursos disponíveis e a experiência necessária para gerenciar e operar o cluster.

Você pode criar um cluster Kubernetes em uma máquina local, na nuvem, em um datacenter on-premises ou ainda escolher uma oferta de um cluster Kubernetes gerenciado pelo seu provedor de computação em nuvem.

Para estudo, uma boa opção é a instalação do Minikube.

Instalou o Minikube? verifique se a instalação foi feita corretamente, executando o comando:

minikube version

Verifique o status do Kubernets executando o comando:

minikube status

Caso o mesmo esteja parado, você pode deletar um cluster. 

minikube delete

Inicialize o cluster, executando o comando:

minikube start

Assim que o seu cluster Kubernetes estiver em execução você pode implementar seu aplicativo em contêiners nele. Para fazer isso, você precisa criar uma configuração do tipo Deployment do Kubernetes. O Deployment define como criar e atualizar instâncias do seu aplicativo. Depois de criar um Deployment, o Master do Kubernetes agenda as instâncias do aplicativo incluídas nesse Deployment para ser executado em nós individuais do Cluster. Na prática fazer um deploy seria criar um Pod em um node. 

kubectl run nginx --image nginx

Podemos verificar se o pod foi criado através do comando 

kubectl get pods

Podemos ter mais informações sobre o Pod, através do comando

kubectl get pods -o wide

Quer mais detalhes sobre um pod específico? Utilize o comando

kubectl describe pod nginx

Até o momento, executamos os comandos via terminal. Contudo podemos fazer isso através de arquivos yaml.

apiVersion: v1

kind: Pod

metadata:

  name: nginx-pod

  labels:

    env: production

spec:

  containers:

    - name: nginx-container

      image: nginx

Com o arquivo em mãos criamos o pod com o seguinte comando:

kubectl create -f pod.yaml ou kubectl apply -f pod.yaml