Tentei excluir um namespace no meu cluster do Amazon Elastic Kubernetes Service (Amazon EKS). No entanto, o namespace está preso no status “Terminating” (Encerrando).
Breve descrição
Para excluir um namespace, o Kubernetes deve primeiro excluir todos os recursos no namespace. Em seguida, ele deve verificar o status dos serviços de API registrados. Um namespace fica preso no status “Encerrando” pelos seguintes motivos:
- O namespace contém recursos que o Kubernetes não pode excluir.
- Um serviço de API tem o status “Falso”.
Resolução
Siga estas instruções para excluir namespaces presos no status “Encerrando”.
1. Salve um arquivo JSON semelhante ao seguinte:
kubectl get namespace <terminating-namespace> -o json > tempfile.json
2. Remova o bloco de matriz dos finalizadores da seção especificações do arquivo JSON. Veja a seguir um exemplo da seção especificações de um arquivo JSON que contém o bloco de matriz dos finalizadores a ser removido:
"spec": {
"finalizers": [
"kubernetes"
]
}
Depois de remover o bloco de matriz dos finalizadores, a seção especificações do arquivo JSON fica assim:
"spec" : {
}
3. Para aplicar as alterações, execute um comando semelhante ao seguinte:
kubectl replace --raw "/api/v1/namespaces/<terminating-namespace>/finalize" -f ./tempfile.json
4. Verifique se o namespace em encerramento foi removido:
kubectl get namespaces
Repita estas etapas para todos os namespaces restantes presos no status “Terminating”.
Informações relacionadas
O que é o Amazon EKS?
Kubernetes