Una implementación de Kubernetes ejecuta múltiples réplicas de su aplicación y reemplaza automáticamente cualquier instancia que falle o deje de responder.
Cuando practique Kubernetes, a menudo necesitará eliminar las implementaciones de Kubernetes.
Eliminar implementaciones es fácil, gracias al comando kubectl delete deployments:
kubectl delete deployment deployment_name
Lo discutiré con un poco más de detalle con los pasos para obtener el nombre de la implementación. También le mostraré otra forma de eliminar implementaciones en Kubernetes.
Use el comando kubectl delete deployment para eliminar implementaciones de Kubernetes
Aunque generalmente se completa la pestaña, sería mejor con el nombre de la implementación que desea eliminar.
[email protected]:~# kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
my-dep 2/2 2 2 4m22s
Una vez que tenga el nombre de implementación, simplemente utilícelo así:
kubectl delete deployments my-dep
Debería mostrar un resultado que le indique que su implementación se eliminó:
[email protected]:~/pod-create# kubectl delete deployments my-dep
deployment.apps "my-dep" deleted
Puede verificarlo revisando las implementaciones disponibles:
[email protected]:~/pod-create# kubectl get deployments
No resources found in default namespace.
También puede usar deployment o deployments (con una s) en lugar de deployment en el kubectl delete deployment
mando. Todo es lo mismo.
Eliminación de la implementación de Kubernetes de un espacio de nombres específico
los kubectl delete deployments
El comando elimina las implementaciones que están presentes en el espacio de nombres “predeterminado”, a menos que proporcione un espacio de nombres diferente.
¿Qué es el espacio de nombres en Kubernetes?
Los espacios de nombres están pensados para su uso en entornos con muchos usuarios repartidos en varios equipos o proyectos. Es como un clúster virtual separado dentro del clúster de Kubernetes.
Para examplepuede tener espacios de nombres separados para aislar sus cargas de trabajo para entornos de producción, ensayo y desarrollo.
Listar todos los espacios de nombres disponibles y sus implementaciones
Para ver todos los espacios de nombres, use el siguiente comando:
[email protected]:~# kubectl get namespaces
NAME STATUS AGE
default Active 46d
kube-node-lease Active 46d
kube-public Active 46d
kube-system Active 46d
webapps Active 22d
También puede enumerar todas las implementaciones de todos los espacios de nombres:
[email protected]:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep2 2/2 2 2 3h29m
kube-system calico-kube-controllers 1/1 1 1 46d
kube-system coredns 2/2 2 2 46d
webapps webapps-dep 2/2 2 2 5h19m
Cuando tenga el espacio de nombres y el nombre de la implementación, puede especificarlo en el comando kubectl delete deployment:
[email protected]:~# kubectl delete deployments --namespace=webapps webapps-dep
deployment.apps "webapps-dep" deleted
Como puedes ver, webapps-dep
ha sido eliminado.
[email protected]:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep2 2/2 2 2 3h29m
kube-system calico-kube-controllers 1/1 1 1 46d
kube-system coredns 2/2 2 2 46d
Eliminación de múltiples implementaciones
Puede eliminar más de una implementación de Kubernetes proporcionando sus nombres de esta manera:
[email protected]:~/pod-create# kubectl delete deployment my-dep my-dep-2 --namespace=default
Eliminación de implementaciones de Kubernetes mediante su archivo de configuración YAML
También puede usar el archivo de configuración YAML para eliminar el recurso asociado con él.
[email protected]:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Déjame mostrártelo paso a paso.
Cree una nueva implementación utilizando el archivo deployment-definition.yml:
[email protected]:~# cat pod-create/deployment-definition.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-dep
labels:
app: webapp
namespace: default
spec:
template:
metadata:
name: my-dep-pods
labels:
app: webapp
tier: front-end
spec:
containers:
- name: httpd
image: httpd
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
replicas: 2
selector:
matchLabels:
tier: front-end
Cree la implementación utilizando el archivo YAML anterior:
[email protected]:~/pod-create# kubectl apply -f deployment-definition.yml
deployment.apps/my-dep created
Puedes ver el Despliegue ahora:
[email protected]:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep 2/2 2 2 1m13s
Ahora, si hace referencia al mismo archivo YAML con fines de eliminación, se eliminarán los recursos (implementaciones aquí) asociados con ese archivo.
[email protected]:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Puede verificarlo enumerando todas las implementaciones:
[email protected]:~/pod-create# kubectl get deployments
No resources found in default namespace.
Espero que les guste este consejo rápido de K8s. Cubriremos más tutoriales de Kubernetes. Suscríbete para obtener más materiales de aprendizaje.