Cómo eliminar un namespace obstinado en Kubernetes
Los namespaces de Kubernetes son una forma de dividir los recursos entre usuarios y equipos para evitar la contaminación cruzada o la confusión sobre a quién pertenece cada cosa y dónde van las implementaciones. Los namespaces son una excelente manera de distribuir esos recursos entre tus equipos y proyectos.
A medida que tú y tus equipos trabajen con los namespaces, eventualmente te encontrarás en una situación en la que uno de esos namespaces ya no es necesario, pero por alguna razón, no se puede eliminar. Eso puede ser problemático cuando necesitas usar ese mismo namespace para un proyecto o cuando el namespace obstinado causa problemas en otros proyectos.
Afortunadamente, hay una forma de deshacerte de esos molestos namespaces. No es fácil, pero es repetible y confiable. Permíteme mostrarte cómo.
Lo que necesitarás para eliminar un namespace obstinado en Kubernetes
Lo único que necesitarás para este proceso es un clúster de Kubernetes funcionando, un namespace estancado y un usuario que pueda ejecutar el comando kubectl
.
Cómo editar la configuración del namespace
Imagina que nuestro namespace problemático se llama "projectx". Lo primero que debemos hacer es editar el archivo de configuración del namespace para "projectx".
Domina el desarrollo web full stack online ¡Aprovecha la oferta por tiempo limitado!Comienza abriendo una ventana de terminal en el controlador de Kubernetes y volcando el contenido de esa configuración de namespace en un archivo con el siguiente comando:
kubectl get ns projectx -o json > tmp.json
A continuación, necesitamos editar ese archivo con el siguiente comando:
nano tmp.json
En ese archivo, encontrarás un bloque de código que incluye una sección como esta:
"spec": {
"finalizers": [
"kubernetes"
]
}
También podría lucir así:
"spec": {
"finalizers": [
]
}
De esa sección, debes eliminar la entrada "kubernetes", de modo que se vea así:
"spec": {
"finalizers": [
]
}
O así:
"spec": {
"finalizers": [ ]
}
Ahora debes guardar y cerrar el archivo. Deja esta terminal abierta.
Cómo aplicar el nuevo archivo de configuración
Necesitamos aplicar el archivo de configuración alterado. Para ello, abre una segunda ventana de terminal en el controlador de Kubernetes y ejecuta el comando de proxy:
kubectl proxy
Regresa a la terminal original y aplica el archivo de configuración editado con el siguiente comando:
curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/projectx/finalize
La aplicación de la configuración eliminará el namespace. Una vez que el archivo de configuración se haya aplicado, puedes verificar que el namespace se haya eliminado con el siguiente comando:
Cómo instalar Jenkins en Rocky Linux 9: Guía paso a pasokubectl get ns projectx
El resultado debería verse algo así:
Error from server (NotFound): namespaces "projectx" not found
Eliminación de namespaces y otros tutoriales
¡Eso es todo! Has eliminado con éxito ese namespace obstinado. Esta es una tarea a la que deberías acostumbrarte a hacer, ya que los namespaces pueden volverse problemáticos y deberás ser capaz de deshacerte de ellos cuando surjan. Ahora ya sabes cómo hacerlo.
Nuestra biblioteca de tutoriales de Newsmatic cubre una variedad de problemas relacionados con Kubernetes y otras tecnologías que puedas enfrentar. Para obtener más información sobre cómo aprovechar al máximo tus proyectos de desarrollo, echa un vistazo a nuestra biblioteca de tutoriales para desarrolladores aquí.
Consulta estos recursos de Newsmatic Academy para obtener más información sobre el desarrollo en Kubernetes:
The Docker and Kubernetes Certification Training Bundle
The Ultimate Kubernetes & Cloud Certification Training Bundle
The 2022 DevOps Cloud Engineering Prep Bundle
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Cómo eliminar un namespace obstinado en Kubernetes , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados