Una implementación de Kubernetes ejecuta varias 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.
Utilice 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 la 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 comprobando 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 kubectl delete deployment
dominio. Es todo lo mismo.
Eliminación de la implementación de Kubernetes de un espacio de nombres específico
Las 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.
Por ejemplo, puede tener espacios de nombres separados para aislar sus cargas de trabajo para entornos de producción, ensayo y desarrollo.
Lista de 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 puede 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 así:
[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 usando 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
Puede ver la implementación 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.