Como usar o Kubectl Dry Run

Como usar o Kubectl Dry Run
O gerenciamento de formação declarativo, também chamado de configuração como código, é a principal força de Kubernetes. Isso oferece aos usuários para definir o status preferido do cluster, dar um caminho para diferentes formas e aprimorar a auditoria e a mecanização sobre o pipeline. Pode ser "servidor" ou "cliente". A abordagem do cliente imprime simplesmente os itens direcionados sem direcioná -los. A estratégia do servidor é direcionar os requisitos do lado do servidor sem reter recursos. Ainda existem algumas deficiências na obtenção de uma prática declarativa contínua com Kubernetes. O compilador e o Linter identificam corretamente as falhas da solicitação de puxar o código, mas não têm validação adequada da pasta de configuração Kubernetes. A solução atual é executar o comando 'Kubectl Aplicar a seca', que executa uma corrida a seco local e não se comunica com o servidor. Não há autenticação do servidor e não pode passar pelo controlador de acesso à validação. Por exemplo, os nomes dos recursos do cliente são confirmados pela primeira vez no servidor; portanto, executar a corrida seca local é inútil. Saber como um objeto está sendo usado por um servidor pode ser difícil por vários motivos.

Pré-requisitos:

Para executar os comandos em Kubernetes, temos que instalar o Ubuntu 20.04. Aqui usamos o sistema operacional Linux para executar os comandos Kubectl. Agora instalamos o cluster Minikube para executar o Kubernetes no Linux. O Minikube oferece um entendimento extremamente suave, pois fornece um modo eficiente para testar os comandos e aplicativos.

Vamos ver como usar o Kubectl Dry Run:

Inicie o Minikube:

Depois de instalar o cluster Minikube, começamos o Ubuntu 20.04. Agora temos que abrir um terminal para executar os comandos. Para esse fim, pressionamos a combinação de 'ctrl+alt+t' do teclado.

No terminal, escrevemos o comando 'minikube start' e, depois disso, esperamos um pouco até que ele seja efetivamente iniciado. A saída deste comando é dada por baixo.

Ao atualizar um item atual, Kubectl Aplicar envia apenas o patch, não o objeto completo. Imprimir qualquer item atual ou original no modo seco não está completamente correto. O resultado da combinação seria impresso.

A lógica do aplicativo do lado do servidor deve estar disponível no lado do cliente para Kubectl ser capaz de imitar exatamente os resultados do aplicativo, mas esse não é o objetivo.

O esforço existente está focado em afetar a lógica do aplicativo no servidor. Depois então, adicionamos a capacidade de secar a seco no lado do servidor. Kubectl Aplicar a corrida a seco faz o trabalho necessário produzindo o resultado da fusão de aplicativos privados de mantê-lo.

Talvez atualizemos a ajuda da bandeira, emitir um aviso se a corrida a seco for usada ao avaliar itens usando os limites de aplicação, documentar a seca e usar o servidor a secar a secar.

O KUBECTL DIFF deve ser o mesmo que o Kubectl se aplicar. Ele mostra as diferenças entre as fontes no arquivo. Também podemos utilizar o programa diff selecionado com a variável de ambiente.

Quando utilizamos o Kubectl para aplicar o serviço a um cluster a seco, o resultado aparece como a forma do serviço, não a saída de uma pasta. O conteúdo devolvido deve incluir recursos locais.

Construa um arquivo YAML usando o serviço anotado e relacione -o ao servidor. Modifique as notas no arquivo e execute o comando 'Kubectl Aplicar -f -dry -run = client'. A saída mostra observações do lado do servidor em vez de anotações modificadas. Isso autenticará o arquivo YAML, mas não o construirá. A conta que estamos utilizando para validação tem a permissão de leitura solicitada.

Este é um exemplo em que -DRY -RUN = Client não é apropriado para o que estamos testando. E essa condição em particular é frequentemente vista quando várias pessoas levam o acesso da CLI a um cluster. Isso ocorre porque ninguém parece lembrar constantemente a aplicação ou criação de arquivos após depurar um aplicativo.

Este comando Kubectl oferece uma breve observação dos recursos salvos pelo servidor API. Numerosos campos são salvos e ocultos por apiserver. Podemos utilizar o comando pelo resultado do recurso para gerar nossas formações e comandos. Por exemplo, é difícil descobrir um problema em um cluster com vários espaços para names e colocações; No entanto, a instância a seguir utiliza a API bruta para testar todas as distribuições no cluster e tem uma réplica com falha. Filtrar simplesmente a implantação.

Executamos o comando 'sudo snap install kube-apiserver' para instalar o apiserver.

A corrida a seco do lado do servidor é ativada através de portões funcionais. Esse recurso seria assistido por padrão; No entanto, podemos habilitá-lo/desativá-lo usando o comando “'kube-apiserver -feature-gates dryrun = true'.

Se estamos usando um controlador de acesso dinâmico, precisamos corrigi -lo das seguintes maneiras:

  • Eliminamos todos os efeitos colaterais depois de especificar restrições de corrida a seco em uma solicitação de webhook.
  • Afirmamos o campo de pertences do item para especificar que o item não tem efeitos colaterais durante a corrida a seco.

Conclusão:

A função solicitada depende do módulo de permissão que consente a corrida a seco na conta para imitar a formação de um item de Kubernetes sem ignorar o papel a ser considerado.

Isso certamente está fora da descrição do papel atual. Como sabemos, nada é formado/removido/remendado na comissão em relação às ações executadas no cluster. No entanto, também permitimos que isso distingue entre -dry -run = servidor e -dry -run = sem saída para as contas. Podemos utilizar o Kubectl Aplicar -erver-run-run para ativar uma função de Kubectl. Isso elaborará a demanda através da bandeira a seco e recorrência do item.