Uso del Cluster Kind

Creazione di Pod

Specifichiamo un single-container pod, editando il file di manifest scripts/pod.yml:

mkdir -p ~/scripts
vim ~/scripts/pod.yml
kind: Pod
apiVersion: v1
metadata:
  name: hello-pod
  labels:
    zone: prod
    version: v1
spec:
  containers:
  - name: hello-ctr
    image: nigelpoulton/k8sbook:1.0
    ports:
    - containerPort: 8080

Creazione del pod:

kubectl apply -f scripts/pod.yml

Impiega un po' di tempo poichè deve scaricare un'immagine dalla rete.

Check:

kubectl get pods
NAME        READY   STATUS    RESTARTS   AGE
hello-pod   1/1     Running   0          6m53s

Si può monitorare il progresso degli eventi del pod con:

kubectl describe pod hello-pod

Il control-plane decide quale nodo avrà il pod. L’immagine per il container del pod è un pull dal registry principale Docker Hub.

Kindpod

Ispezione del pod

Verifica delle proprietà del pod:

kubectl get pods hello-pod -o yaml
  • spec è il desired state
  • status è il current state
  • col tempo devono convergere

Descrivere il pod:

kubectl describe pods hello-pod
  • Include gli eventi del pod

Pod logs:

kubectl logs hello-pod
  • Nessuno nel nostro caso

Eseguire un comando nel pod:

kubectl exec hello-pod -- ps aux
PID   USER     TIME  COMMAND
    1 root      0:00 node ./app.js
   20 root      0:00 ps aux

Connettersi ad un pod

Run di una shell in un pod:

kubectl exec -it hello-pod -- sh

Entro il pod ciò che è possibile fare dipende dal software installato.

Check dello hostname:

env | grep HOSTNAME
HOSTNAME=hello-pod
  • Il nome di un pod è il suo hostname DNS

Uscire dal pod:

exit

Rimuovere il pod tramite il suo manifest:

kubectl delete -f scripts/pod.yml

La rimozione di un pod è un'azione relativamente lenta, anche se il messaggio compare subito.

Pulizia Globale

Listare i cluster:

kind get clusters
kind

Rimuovere il cluster:

kind delete cluster --name kind
Deleting cluster "kind" ...