Cómo eliminar una implementación de Kubernetes [Quick K8s Tips]

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.

Related Posts