Kubectl Force Excluir Pod

Kubectl Force Excluir Pod
Usando os comandos kubectl, remover uma vagem de um nó Kubernetes é uma operação simples e não requer nenhuma etapa longa. Se você precisa depurar um nó, realizar uma atualização ou reduzir o tamanho do seu cluster, a exclusão de pods é um processo simples. No entanto, antes de excluir uma vagem, você deve seguir um conjunto de etapas para garantir que o aplicativo funcione sem problemas.

Neste artigo, discutiremos essas etapas. Lembre -se, no entanto, que apressar esse processo pode resultar em erros e tempo de inatividade do aplicativo. Agora, vamos discutir o tópico em detalhes.

Como excluir o Kubernetes em vá da maneira mais fácil?

Você deve primeiro listar os pods para excluir a postagem da maneira mais eficiente. Você pode fazer isso se você usar o comando get pods que é dado abaixo.

$ KUBECTL Get Pods -O Wide

Aqui, você pode ver que o comando get pods listado nas vagens com detalhes.

Agora, se excluirmos a cápsula "Pod-Three". Digite o seguinte comando:

$ KUBECTL DELETE POD POD-Three

O comando acima em que especificamos o nome da vagem (pod-três) excluiu a vagem com sucesso.

$ KUBECTL Get Pods -O Wide

Ao listar todos os pods, você pode confirmar que o em questão foi excluído.

Como você pode verificar na imagem afixada acima, não há 'pod-três.'

Como forçar a exclusão de kubernetes?

Por que a exclusão de pods de força é necessária? Após um tempo limite, o pod pode ficar preso em um estado térmico/desconhecido em um nó inacessível. Esses status também podem ocorrer quando um usuário tenta excluir graciosamente uma vagem de um nó inacessível. Em algumas situações, você pode remover/excluir com força a vagem.

Se uma exclusão de força é ou não eficaz na destruição de uma vagem, o nome será removido do apiserver imediatamente. Isso permitiria ao Controlador Statefulset estabelecer um POD de substituição com a mesma identidade; Isso pode levar a duplicação de uma vagem já que já atualizou, que, se o POD ainda puder interagir com outros membros do Statefulset, violariam a em apenas uma semântica que o Statefulset foi feito para garantir.

A exclusão de força manual deve ser usada com cuidado, pois pode quebrar pelo menos uma das semânticas do Statefulset. O StatefulSets pode ser usado para executar aplicativos distribuídos e agrupados que requerem uma identidade de rede consistente e armazenamento persistente.

A configuração desses aplicativos é frequentemente baseada em um conjunto compreendendo um número predeterminado de membros com identidades fixas. Vários membros que compartilham as mesmas identidades podem ser perigosos e podem acabar na perda de dados.

Quando você exclui um pods de statefulset pela força, você garante que ele nunca mais se comunique com outros pods no Statefulset, e que sua identidade possa ser libertada com segurança para um substituto.

Siga estes procedimentos para destruir com força um pod usando Kubectl> = 1.5:

$ kubectl exclua pods nome-de-cod --grace-period = 0-force

Se você estiver usando Kubectl> = 1.4, você pode pular o argumento da força e, em vez disso, usar:

$ kubectl exclua pods nome-de-cod --grace-period = 0

Agora, usando a maneira acima, exclua o pod "Pod-dois":

$ KUBECTL DELETE POD POD-TWO-Force-Grace-Períod = 0-Namespace = Padrão

Aqui está o resultado do comando acima quando executado.

Observe que as deleções de força de força não dependem da confirmação de Kubelet de que o pod foi encerrado.

Se o pod permanecer no status desconhecido após a execução desses comandos, use o seguinte comando para removê -lo do cluster:

$ KUBECTL Patch Pod POD -TWO -P '"Metadata": "Finalizadores": null'

Verifique se o pod foi removido.

Como remover os pods de um nó de uma só vez?

Se o seu nó estiver tendo vagens não essenciais ou vagens com estado, você pode usar o comando de drenagem Kubectl. Esta etapa removerá todos os pods do nó. Antes de progredir, verifique duas vezes a identidade do nó que você está excluindo e verifique se as vagens em um determinado nó podem ser encerradas com segurança. A tarefa será realizada para você com a seguinte instrução.

$ kubectl Get nós

Após o comando Get Pod, use o seguinte comando citado, dado abaixo.

Em seguida, tente usar as seguintes instruções citadas para drenar todas as vagens.

$ kubectl drenagem

Para garantir que nenhuma vagem ainda esteja operando no nó, execute o comando Get Pods novamente. Se você estiver usando o NoExecute para executar pods, eles ainda estarão no nó.

Execute o comando de drenagem mais uma vez. Mas desta vez a bandeira da força deve ser incluída. Isso eliminará todas as vagens do nó. Por fim, use o comando Kubectl Excluir Node para excluir o nó do cluster relevante.

Como permitir as vagens de volta nos nós?

Depois de terminar de realizar a manutenção em um nó, use o comando Kubectl Uncordon para reativar a programação nesse nó. Então, à medida que os pods ficam disponíveis para agendamento, eles reaparecem nesse nó.

$ KUBECTL Uncordon Docker-Desktop

Se você tem um nó recém -incorporado ou um novo nó em seu cluster, equilibrar vagens específicas pode ser um problema. Embora seja melhor permitir que o Kubernetes Scheduler alocem pods conforme necessário ao alterar sua implantação/statefulset, você pode forçar o processo removendo pods e agendando -os em outros lugares empregando algumas das fases anteriores.

Conclusão

Pode ser necessário excluir um único pod ou várias vagens de um de seus nós ao executar seu cluster Kubernetes. Existe a possibilidade de que você precise solucionar dificuldades de nó, atualizar um nó específico ou diminuir seu cluster. Embora a exclusão de qualquer pod ou vagem de um nó não seja muito difícil, existem algumas dicas e técnicas que você deve seguir para garantir que seu aplicativo/programa não seja interrompido. É disso que falamos e expandimos neste artigo. Antes de executar quaisquer instruções, certifique -se de ler e compreender completamente cada etapa para evitar cometer erros que podem resultar em tempo de inatividade.