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.
example@unixlinux.online:~# 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ó:
example@unixlinux.online:~/pod-create# kubectl delete deployments my-dep
deployment.apps "my-dep" deleted
Puede verificarlo comprobando las implementaciones disponibles:
example@unixlinux.online:~/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:
example@unixlinux.online:~# 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:
example@unixlinux.online:~# 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:
example@unixlinux.online:~# kubectl delete deployments --namespace=webapps webapps-dep
deployment.apps "webapps-dep" deleted
Como puede ver, webapps-dep ha sido eliminado.
example@unixlinux.online:~# 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í:
example@unixlinux.online:~/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.
example@unixlinux.online:~/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:
example@unixlinux.online:~# 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:
example@unixlinux.online:~/pod-create# kubectl apply -f deployment-definition.yml
deployment.apps/my-dep created
Puede ver la implementación ahora:
example@unixlinux.online:~# 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.
example@unixlinux.online:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Puede verificarlo enumerando todas las implementaciones:
example@unixlinux.online:~/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.