Ricerca nel sito web

Pod statici in Kuberentes


Su questa pagina

  1. Prerequisiti
  2. Cosa faremo?
  3. Crea pod statici
  4. Conclusione

I pod statici sono gestiti direttamente dal kubelet e il server API non ha alcun controllo su questi pod. Il kubelet è responsabile della sorveglianza di ogni pod statico e del riavvio in caso di arresto anomalo. I pod statici in esecuzione su un nodo sono visibili sul server API ma non possono essere controllati dal server API. Il pod statico non ha alcun controller di replica associato, il servizio kubelet stesso lo controlla e lo riavvia quando si arresta in modo anomalo. Non è previsto alcun controllo di integrità per i pod statici. Il processo kubelet controlla la directory specifica designata per i pod statici.

Per saperne di più sui pod statici, visita la pagina ufficiale di Kubernetes qui.

In questo articolo, vedremo i passaggi per creare un pod statico dal file salvato nella posizione predefinita da cui kubelet legge i manifest e inoltre cambieremo la posizione predefinita in un'altra directory e vedremo come ottenere il pod statico creato da lì. Creeremo pod statici sul nodo di lavoro.

Prerequisiti

  1. Cluster Kubernetes con almeno 1 nodo di lavoro.
    Se vuoi imparare a creare un cluster Kubernetes, fai clic qui. Questa guida ti aiuterà a creare un cluster Kubernetes con 1 master e 2 nodi su istanze AWS Ubuntu 18.04 EC2.

Che cosa faremo?

  1. Crea pod statici

Crea pod statici

Esegui i seguenti comandi dal nodo master per ottenere i dettagli dei nodi e dei pod nel cluster.

$master kubectl  get nodes
$master kubectl  get pods

Puoi controllare i container in esecuzione come parte dei pod

$worker docker ps
$worker docker ps -a

Ora, accedi al nodo di lavoro e crea un nuovo file con i seguenti contenuti nel percorso predefinito dei manifest dei pod statici.

$worker vim /etc/kubernetes/manifests/static-web.yaml
apiVersion: v1
kind: Pod
metadata:
  name: static-web
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP

Non appena crei una definizione di pod nella posizione predefinita del manifesto dei pod statici, viene creato il pod che non è controllato dal server API.

Puoi controllare il pod appena creato con il seguente comando per elencare i pod da tutti gli spazi dei nomi dal nodo master.

$master kubectl  get pods
$master kubectl  get pods --all-namespaces

Per controllare i container creati come parte del pod, esegui il seguente comando sul nodo di lavoro

$worker docker ps
$worker docker ps -a

Possiamo anche modificare la posizione predefinita da cui kubelet legge i manifest.

Ora crea una nuova cartella in cui archiviare i manifest dei pod statici.

Qui stiamo creando \/etc/kubelet.d/\.

$worker mkdir -p /etc/kubelet.d/

Crea un file di definizione del pod nella directory che abbiamo creato.

$worker vim /etc/kubelet.d/static-web.yaml
apiVersion: v1
kind: Pod
metadata:
  name: static-web-2
  labels:
    role: myrole
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - name: web
          containerPort: 80
          protocol: TCP

Per modificare il percorso predefinito da cui Kubelets legge i manifest dei pod statici, modifica il file /var/lib/kubelet/config.yaml e cambia il valore di \staticPodPath\ in \staticPodPath=/etc/kubelet.d\.

Una volta completata la configurazione, riavvia il servizio Kubelet

$worker systemctl restart kubelet

Non appena il servizio viene riavviato, Kubelet rileva la nuova posizione e legge i manifest da quella posizione e crea i pod.

Controlla se il pod è stato creato o meno.

$master kubectl  get pods

Controlla il container creato come parte del pod sul nodo di lavoro utilizzando il seguente comando.

$worker docker ps

Conclusione

In questo articolo, abbiamo visto i passaggi per creare pod statici e abbiamo visto anche la modifica della configurazione richiesta in Kubelet per modificare la directory predefinita per i manifest dei pod statici.