Como criar contêineres inits em Kubernetes

Como criar contêineres inits em Kubernetes
Este tutorial lhe dará uma visão geral dos contêineres inits em Kubernetes. Kubernetes funciona bem com recipientes, qual é a razão pela qual se tornou a principal preferência dos desenvolvedores. Kubernetes permite que você gerencie todos os contêineres em um só lugar com apenas um painel de controle. Neste artigo, discutiremos o que são contêineres em Kubernetes e focaremos especificamente em contêineres inits em Kubernetes. Com a ajuda de exemplos, mostraremos como você pode criar facilmente um contêiner init em Kubernetes.

O que é um contêiner em Kubernetes?

Um contêiner é um pacote completo que contém tudo o necessário para executar um aplicativo. É uma imagem de um pacote de software pronto para executar que permite que um aplicativo execute a função desejada. Ele contém código, bibliotecas de sistemas, valores essenciais de configuração padrão e quaisquer outros requisitos de tempo de execução. Você só precisa codificar o contêiner de uma vez por conta disso, ele pode ser executado em qualquer lugar. É independente da plataforma, para que você não tenha problemas ao executar seus aplicativos em nenhuma plataforma usando contêineres. Os contêineres podem virtualizar o sistema operacional que permite executar seus aplicativos de qualquer lugar da sua plataforma ou data center privado ou mesmo para a nuvem pública.

O que é um contêiner init em Kubernetes?

O contêiner init em Kubernetes é um método para executar a primeira rotina de inicialização de execução em uma cápsula de Kubernetes. É um contêiner especializado leve que sempre é executado antes do aplicativo ou de qualquer outro contêiner principal que seja executado em uma vagem. Ele contém o script de configuração e outros utilitários que geralmente não estão presentes na imagem do aplicativo. Geralmente é definido na especificação do pod junto com a matriz de contêineres. O uso básico de um contêiner init é inicializar o Appian com drivers JDBC ou RDBMS que não estão incluídos na imagem do WebApp Docker. Ele pode ser usado para atrasar ou bloquear o aplicativo ou outros contêineres para iniciar quando você precisar esperar que o script de bootstrap seja concluído ou para que recursos e dependências estejam disponíveis.

Como criar um contêiner init no ambiente Kubernetes?

Como vários contêineres de aplicativos são executados no pod, mais de um contêiner init também pode ser executado em uma única poda. e todos eles completarão sua execução antes de qualquer contêiner de aplicativo iniciar sua execução. Os contêineres iniciais são executados em uma sequência, quando um contêiner de init conclui sua execução, o próximo inicia sua execução e quando todos os contêineres iniciais concluem sua execução, qualquer contêiner de aplicativo inicia sua execução.

Além disso, se a execução de qualquer contêiner init falhar, o Kubernetes reiniciará repetidamente o contêiner até concluir sua execução com sucesso. Agora, vamos criar um contêiner init em Kubernetes. Mas antes disso, verifique se seu sistema atende a todas as necessidades básicas para criar um contêiner init. Para criar um contêiner init que você deve ter:

  • Ubuntu 20.04 ou qualquer outra versão mais recente
  • Ferramenta de linha de comando kubectl
  • Cluster Minikube

Agora, vamos para a implementação.

Etapa 1: Inicie o cluster Minikube

Você precisa iniciar o cluster Minikube para usar o ambiente Kubernetes para executar comandos Kubectl. Para iniciar o cluster Minikube, usaremos o seguinte comando:

> Minikube Start

Isso acordará o cluster Minikube e permitirá que você execute os comandos Kubectl no terminal.

Etapa 2: Crie o arquivo de configuração da YAML

Agora, o processo de criação de um contêiner init começou. A primeira e principal coisa que você precisa para criar o contêiner init é criar um arquivo de configuração da YAML. Você pode usar o comando 'nano' para criar um novo arquivo YAML ou abrir um arquivo YAML já existente contendo os detalhes da configuração. O comando dado abaixo permitirá que você crie um arquivo YAML do nome escolhido:

> Nano podin.Yaml

Depois que o arquivo YAML for criado, você poderá salvar os detalhes da configuração, como o dado no instantâneo abaixo:

Etapa 3: Implante o arquivo YAML

Agora que nosso arquivo de configuração está pronto, vamos implantá -lo usando o comando kubectl Aplicar. O comando a seguir permitirá que você execute o pod no arquivo de configuração que acabamos de criar:

> kubectl Aplicar -f podin.Yaml

A saída mostra claramente que o pod chamado MyApp-Pod foi criado.

Etapa 4: verifique o status do pod

Agora, vamos verificar o status do pod com a ajuda do comando abaixo:

> kubectl get -f podin.Yaml

Isso está simplesmente mostrando o nome, prontos, status, reiniciar e parâmetros de idade da vagem. Se você precisar olhar para o status detalhado do pod, poderá usar o seguinte abaixo:

> kubectl descrever -f podin.Yaml

Aqui, você pode ver o status de detalhe, que está dizendo quando a vagem começou, em qual endereço IP está sendo executado, em qual nó está funcionando, etc. dando a você uma imagem detalhada do status da vagem.

Etapa 5: verifique os logs do contêiner init

A partir da saída fornecida na etapa anterior, você pode ver que a vagem que criamos está em funcionamento e em execução. Agora, se você quiser ver os logs do contêiner init que está em execução nesse pod, você pode usar o comando dado abaixo:

> Kubectl Logs MyApp-Pod -C Init-MyService

O nome do contêiner init é 'init-myService', que mencionamos especificamente para verificar seu log. Agora, quando você executa este comando, você obterá uma saída semelhante à da abaixo:

Conclusão

Neste artigo, aprendemos sobre o conceito básico do que os contêineres são especificamente focados no contêiner init em Kubernetes. O contêiner init é um contêiner especializado leve que é executado antes de qualquer outro contêiner iniciar na vagem. Suas funcionalidades às vezes se sobrepõem à inicialização e à prontidão sondas. Essas sondas podem ser usadas para realizar uma atividade como bloquear ou atrasar a inicialização do aplicativo até que uma determinada condição seja atendida. Ao demonstrar um exemplo simples, aprendemos a criar um contêiner init em Kubernetes.