Ricerca nel sito web

Creare la tua prima distribuzione su un cluster Kubernetes


In questo articolo vedremo come creare il tuo primo deployment su un cluster Kubernetes. Ad esempio, creeremo una distribuzione per Nginx.

Una volta disposto su un cluster Kubernetes in esecuzione, possiamo distribuire le nostre applicazioni containerizzate su di esso. Possiamo creare una configurazione di distribuzione Kubernetes per raggiungere questo obiettivo.

Un deployment fornisce aggiornamenti dichiarativi per pod e replicaset. Descriviamo uno stato desiderato nel deployment e il controller deployment cambia lo stato effettivo nello stato desiderato a una velocità controllata.

Possiamo creare e gestire un deployment utilizzando l'interfaccia a riga di comando \kubectl\ di Kubernetes. Kubectl utilizza l'API Kubernetes per interagire con il cluster.

Ci sono tre fasi in un ciclo di vita della distribuzione:

  1. In corso: Kubernetes contrassegna un Deployment come in corso quando il Deployment crea un nuovo ReplicaSet, il Deployment aumenta il proprio ReplicaSet più recente o riduce il precedente ReplicaSet o i nuovi pod essere pronto o disponibile
  2. Completo: Kubernetes contrassegna un deployment come completo quando tutte le repliche associate al deployment sono state aggiornate, sono disponibili e non sono in esecuzione repliche precedenti per il deployment .
  3. Non riuscito: ciò può verificarsi a causa di quota insufficiente, errori del probe di disponibilità, errori di pull dell'immagine o autorizzazioni insufficienti.

Prerequisiti

  1. Account AWS (creane uno se non ne hai uno)
  2. Un cluster Kubernetes

Nota: puoi utilizzare anche le macchine virtuali per creare un cluster se non desideri provare le istanze AWS EC2.

Cosa faremo

  1. Crea un deployment Kubernetes per Nginx.

Crea un deployment Kubernetes per Nginx

Per creare il nostro primo deployment, basta creare una nuova directory per creare il nostro file oggetto/deployment. Utilizza il seguente comando per creare una nuova directory nel tuo sistema

mkdir my-first-deployment
cd my-first-deployment/

Prima di procedere, verificare lo stato del cluster.

Per verificare i nodi disponibili nel cluster e per verificare la versione di \kubectl\ utilizzare i seguenti comandi.

sudo kubectl version
sudo kubectl get nodes

Una volta che hai nodi disponibili nel tuo cluster, sei pronto per creare il tuo deployment.

Crea un file \my-first-deployment.yml\ con il seguente blocco di codice

vim my-first-deployment.yml

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

Qui,

  • apiVersion: APIVersion definisce lo schema con versione di questa rappresentazione di un oggetto.
  • kind: il tipo di oggetto che vuoi creare come Deployment, Service, Configmap e altro.
  • nome: il nome deve essere univoco all'interno di uno spazio dei nomi.
  • etichette: mappa di stringhe di chiavi e valori che possono essere utilizzate per organizzare e categorizzare gli oggetti
  • spec: Specifica del comportamento desiderato del deployment.
  • repliche: numero di pod desiderati.
  • selettore: selettore di etichette per i pod. I ReplicaSet esistenti i cui pod sono selezionati da questo saranno quelli interessati da questa distribuzione. Deve corrispondere alle etichette del modello di pod.

Ora sei pronto per creare la tua distribuzione utilizzando i seguenti comandi.

sudo kubectl apply -f my-first-deployment.yml
sudo kubectl  get deployments

Nello screenshot sopra, puoi vedere che la distribuzione è stata creata con due pod disponibili per l'uso.

Puoi ottenere i dettagli dei pod utilizzando il seguente comando.

sudo kubectl get pods

Se vuoi saperne di più sul deployment, puoi utilizzare questo comando \kubectl describe\ per ottenere i dettagli completi del deployment.

sudo kubectl get deployments
sudo kubectl describe  deployments nginx-deployment

Se non hai più bisogno del deployment, puoi eliminarlo utilizzando il \kubectl delete command\.

sudo kubectl  get deployments
sudo kubectl delete deployments nginx-deployment
sudo kubectl  get deployments

Nello screenshot sopra, puoi vedere che la distribuzione non è più disponibile dopo che è stata eliminata.

Una volta eliminato il deployment, anche i pod vengono eliminati.

Puoi verificare la disponibilità dei pod utilizzando il seguente comando.

sudo  kubectl  get pods

Nello screenshot sopra, puoi vedere che i pod sono stati eliminati dopo l'eliminazione della distribuzione e non sono disponibili.

Conclusione

In questo articolo, abbiamo visto i passaggi per creare la tua prima distribuzione Nginx su Kubernetes. Abbiamo anche visto come estrarre i dettagli relativi alla distribuzione. Insieme a questo, abbiamo esplorato i comandi per eliminare la distribuzione.