O tipo de mércia estratégica tenta "fazer a coisa precisa" ao mesclar as especificações fornecidas com a especificação atual. Mais explicitamente, tenta mesclar matrizes e objetos. Por exemplo, especificar um patch que contém uma variável única ou nova em uma especificação de contêiner de pod resulta nessa variável incluída nas variáveis atuais, não substituindo -as. Apagando um elemento de matriz através de um patch de mesclagem estratégico é mais difícil, que precisa do uso de ordens de mesclagem.
Como a abordagem estratégica, o método JSON Merge Patch leva uma especificação parcial de Kubernetes como entrada e mantém os objetos de fusão. Dessa forma, é bastante diferente da abordagem acima do citado, pois só suporta a substituição de matrizes. Ao usar essa abordagem, você precisa transmitir especificações completas para todos os contêineres; Se você precisar modificar qualquer propriedade de contêiner na CLI, poderá escolher o JSON Merge Patch via Kubectl Patch.
Por outro lado, o método JSON Patch usa uma ilustração JSON das variações que você deseja fazer para um recurso. JSON Patch é uma maneira mais robusta e eficiente de declarar as modificações que você deseja fazer.
Pré-requisitos
Precisamos de um cluster de Kubernetes ou uma configuração da CLI KUBECTL para interagir com o cluster. Se você não tem um cluster, precisará gerar um com a ajuda do Minikube. Enquanto trabalhamos com comandos de patch no Kubernetes, precisamos instalar o cluster Minikube em seu sistema para executar o Kubernetes no Linux.
Comando Kubectl Patch
Venha, vamos ilustrar o funcionamento dos comandos de patch com a ajuda de comandos ou instruções Kubectl.
Na barra de pesquisa de aplicativos, escreva "Terminal" ou pressione as teclas "Ctrl+Alt+T" simultaneamente. Agora escreva o comando "Minikube start" no terminal e espere um pouco até que ele comece com sucesso.
$ minikube Iniciar
Enquanto trabalhamos com comandos de patch, primeiro precisamos gerar uma implantação em Kubernetes. Para esse fim, usamos a implantação do toque.Comando YAML para criar um arquivo no Ubuntu 20.04, e a palavra -chave Touch é usada para gerar um arquivo.
$ touch implanting1.Yaml
Salvar e executar o arquivo de comando kubectl. Você então verá o arquivo que é criado com sucesso.
O arquivo de configuração de implantação abaixo mencionado possui duas cópias ou réplicas, e cada cópia é uma vagem que contém um contêiner.
Para criar a implantação, usamos o 'Aplicar -f' com o nome do arquivo para criar com êxito a implantação.
$ KUBECTL APLICAR -F DESPONSÃO1.Yaml
Para visualizar as informações ou verificar as vagens vinculadas à sua implantação, usamos o comando get Pods, assim como fizemos na captura de tela abaixo:
Depois de executar o comando acima, você exibirá o nome, pronto, status, reinicialização e idade de todos os pods executando em seu PC.
Lembre -se de que o nome especifica as vagens atualmente em execução. Depois de alguns minutos, você verá que essas vagens terminaram e trocadas por novos.
$ kubectl Obtenha pods
Nesta fase, cada pod contém um recipiente que executa a imagem nginx. Agora, se você deseja que cada pod para segurar dois recipientes: um que executa o nginx e outro que executa Redis. Para o nosso comando abaixo, gerar um arquivo de patch.
$ touch patchfile.Yaml
Depois de executar este comando, você pode ver o PatchFile com o “.Extensão Yaml ”.
Depois de salvar e abrir o arquivo, você pode ver que o seu "PatchFile" contém o conteúdo desejado.
Agora nosso próximo foco é corrigir a implantação. Portanto, o comando abaixo é muito útil para remendar a implantação.
Para exibir a implantação corrigida, você precisará executar o comando abaixo. O resultado mostra que o podspec na implantação contém dois contêineres:
O comando abaixo mostra se os pods estão ligados à sua implantação corrigida ou não. Nesta saída, os pods atualmente em execução mudaram de nomes dos pods que estavam executando anteriormente. A implantação terminou as vagens anteriores e criou dois outros novos pods que estão em conformidade com a especificação de implantação atualizada.
$ kubectl Obtenha pods
Conclusão:
Então, aqui neste artigo, elaboramos o conceito de comando de patch em Kubernetes. Usamos o patch kubectl para alterar a configuração do objeto de implantação ao vivo. Espero que agora você possa prender todo o conceito de patch em Kubernetes.