Una distribuzione Kubernetes esegue più repliche della tua applicazione e sostituisce automaticamente tutte le istanze che hanno esito negativo o che non rispondono.
Quando fai pratica con Kubernetes, dovrai spesso eliminare le distribuzioni Kubernetes.
Eliminare le distribuzioni è facile, grazie al comando kubectl delete deployments:
kubectl delete deployment deployment_name
Ne parlerò un po' più in dettaglio con i passaggi per ottenere il nome della distribuzione. Ti mostrerò anche un altro modo per eliminare le implementazioni in Kubernetes.
Utilizza il comando kubectl delete deployment per eliminare le distribuzioni Kubernetes
Anche se in genere viene completata la scheda, faresti meglio con il nome della distribuzione che desideri eliminare.
[email protected]:~# kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
my-dep 2/2 2 2 4m22s
Una volta ottenuto il nome della distribuzione, utilizzalo semplicemente in questo modo:
kubectl delete deployments my-dep
Dovrebbe mostrare un output che ti dice che la tua distribuzione è stata eliminata:
[email protected]:~/pod-create# kubectl delete deployments my-dep
deployment.apps "my-dep" deleted
Puoi verificarlo controllando le implementazioni disponibili:
[email protected]:~/pod-create# kubectl get deployments
No resources found in default namespace.
Puoi anche utilizzare deploy o deployments (con una s) invece di deployment nel kubectl delete deployment
comando. È lo stesso.
Eliminazione di Kubernetes Deployment da uno specifico spazio dei nomi
Il kubectl delete deployments
comando elimina le distribuzioni che sono presenti nello spazio dei nomi "predefinito" a meno che tu non fornisca uno spazio dei nomi diverso.
Cos'è lo spazio dei nomi in Kubernetes?
Gli spazi dei nomi sono destinati all'uso in ambienti con molti utenti distribuiti su più team o progetti. È come un cluster virtuale separato all'interno del cluster Kubernetes.
Ad esempio, puoi avere spazi dei nomi separati per isolare i carichi di lavoro per gli ambienti di produzione, staging e sviluppo.
Elenca tutti gli spazi dei nomi disponibili e le relative implementazioni
Per vedere tutti gli spazi dei nomi, usa il seguente 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
Puoi anche elencare tutte le distribuzioni da tutti gli spazi dei nomi:
[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
Quando hai lo spazio dei nomi e il nome della distribuzione, puoi specificarlo nel comando kubectl delete deployment:
[email protected]:~# kubectl delete deployments --namespace=webapps webapps-dep
deployment.apps "webapps-dep" deleted
Come puoi vedere, webapps-dep
è stato eliminato.
[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
Eliminazione di più implementazioni
Puoi eliminare più di una distribuzione Kubernetes fornendo i loro nomi in questo modo:
[email protected]:~/pod-create# kubectl delete deployment my-dep my-dep-2 --namespace=default
Eliminazione delle distribuzioni Kubernetes utilizzando il suo file di configurazione YAML
Puoi anche utilizzare il file di configurazione YAML per eliminare la risorsa ad esso associata.
[email protected]:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Lascia che te lo mostri passo dopo passo.
Crea una nuova distribuzione utilizzando il file 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
Crea la distribuzione utilizzando il file YAML sopra:
[email protected]:~/pod-create# kubectl apply -f deployment-definition.yml
deployment.apps/my-dep created
Puoi vedere la distribuzione ora:
[email protected]:~# kubectl get deployments --all-namespaces
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
default my-dep 2/2 2 2 1m13s
Ora, se fai riferimento allo stesso file YAML a scopo di eliminazione, eliminerà le risorse (distribuzioni qui) associate a quel file.
[email protected]:~/pod-create# kubectl delete -f deployment-definition.yml
deployment.apps "my-dep" deleted
Puoi verificarlo elencando tutte le implementazioni:
[email protected]:~/pod-create# kubectl get deployments
No resources found in default namespace.
Spero che questo rapido suggerimento di K8 ti piaccia. Tratteremo più tutorial di Kubernetes. Iscriviti per ulteriori materiali didattici.