Tutorials
Questa sezione della documentazione di Kubernetes contiene i tutorials.
Un tutorial mostra come raggiungere un obiettivo più complesso di un singolo
task. Solitamente un tutorial ha diverse sezioni, ognuna delle quali
consiste in una sequenza di più task.
Prima di procedere con vari tutorial, raccomandiamo di aggiungere il
Glossario ai tuoi bookmark per riferimenti successivi.
Per cominciare
Configurazione
Stateless Applications
Stateful Applications
Clusters
Servizi
Voci correlate
Se sei interessato a scrivere un tutorial, vedi
Utilizzare i Page Templates
per informazioni su come creare una tutorial page e sul tutorial template.
1 - Hello Minikube
Questo tutorial mostra come eseguire una semplice applicazione in Kubernetes
utilizzando Minikube e Katacoda.
Katacoda permette di operare su un'installazione di Kubernetes dal tuo browser.
Obbiettivi
- Rilasciare una semplice applicazione su Minikube.
- Eseguire l'applicazione.
- Visualizzare i log dell'applicazione.
Prima di cominciare
Questo tutorial fornisce una container image che utilizza NGINX per risponde a tutte le richieste
con un echo che visualizza i dati della richiesta stessa.
Crea un Minikube cluster
Click Launch Terminal
Nota:
Se hai installato Minikube localmente, esegui minikube start
.Apri la console di Kubernetes nel browser:
Katacoda environment only: In alto alla finestra del terminale, fai click segno più, e a seguire click su Select port to view on Host 1.
Katacoda environment only: Inserisci 30000
, a seguire click su Display Port.
Crea un Deployment
Un Kubernetes Pod è un gruppo di uno o più Containers,
che sono uniti tra loro dal punto di vista amministrativo e che condividono lo stesso network.
Il Pod in questo tutorial ha un solo Container. Un Kubernetes
Deployment monitora lo stato del Pod ed
eventualmente provvedere a farlo ripartire nel caso questo termini. L'uso dei Deployments è la
modalità raccomandata per gestire la creazione e lo scaling dei Pods.
Usa il comando kubectl create
per creare un Deployment che gestisce un singolo Pod. Il Pod
eseguirà un Container basato sulla Docker image specificata.
kubectl create deployment hello-node --image=registry.k8s.io/echoserver:1.4
Visualizza il Deployment:
L'output del comando è simile a:
NAME READY UP-TO-DATE AVAILABLE AGE
hello-node 1/1 1 1 1m
Visualizza il Pod creato dal Deployment:
L'output del comando è simile a:
NAME READY STATUS RESTARTS AGE
hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m
Visualizza gli eventi del cluster Kubernetes:
Visualizza la configurazione di kubectl
:
Crea un Service
Con le impostazioni di default, un Pod è accessibile solamente dagli indirizzi IP interni
al Kubernetes cluster. Per far si che il Container hello-node
sia accessibile dall'esterno
del Kubernetes virtual network, è necessario esporre il Pod utilizzando un
Kubernetes Service.
Esponi il Pod su internet untilizzando il comando kubectl expose
:
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
Il flag --type=LoadBalancer
indica la volontà di esporre il Service
all'esterno del Kubernetes cluster.
Visualizza il Servizio appena creato:
L'output del comando è simile a:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23m
Nei cloud providers che supportano i servizi di tipo load balancers,
viene fornito un indirizzo IP pubblico per permettere l'acesso al Service. Su Minikube,
il service type LoadBalancer
rende il Service accessibile attraverso il comando minikube service
.
Esegui il comando:
minikube service hello-node
Katacoda environment only: Fai click segno più, e a seguire click su Select port to view on Host 1.
Katacoda environment only: Fai attenzione al numero di 5 cifre visualizzato a fianco di 8080
nell'output del comando. Questo port number è generato casualmente e può essere diverso nel tuo caso. Inserisci il tuo port number nella textbox, e a seguire fai click su Display Port. Nell'esempio precedente, avresti scritto 30369
.
Questo apre un finestra nel browser dove l'applicazione visuallizza l'echo delle richieste ricevute.
Attiva gli addons
Minikube include un set addons che possono essere attivati, disattivati o eseguti nel ambiente Kubernetes locale.
Elenca gli addons disponibili:
L'output del comando è simile a:
addon-manager: enabled
dashboard: enabled
default-storageclass: enabled
efk: disabled
freshpod: disabled
gvisor: disabled
helm-tiller: disabled
ingress: disabled
ingress-dns: disabled
logviewer: disabled
metrics-server: disabled
nvidia-driver-installer: disabled
nvidia-gpu-device-plugin: disabled
registry: disabled
registry-creds: disabled
storage-provisioner: enabled
storage-provisioner-gluster: disabled
Attiva un addon, per esempio, metrics-server
:
minikube addons enable metrics-server
L'output del comando è simile a:
metrics-server was successfully enabled
Visualizza i Pods ed i Service creati in precedenza:
kubectl get pod,svc -n kube-system
L'output del comando è simile a:
NAME READY STATUS RESTARTS AGE
pod/coredns-5644d7b6d9-mh9ll 1/1 Running 0 34m
pod/coredns-5644d7b6d9-pqd2t 1/1 Running 0 34m
pod/metrics-server-67fb648c5 1/1 Running 0 26s
pod/etcd-minikube 1/1 Running 0 34m
pod/influxdb-grafana-b29w8 2/2 Running 0 26s
pod/kube-addon-manager-minikube 1/1 Running 0 34m
pod/kube-apiserver-minikube 1/1 Running 0 34m
pod/kube-controller-manager-minikube 1/1 Running 0 34m
pod/kube-proxy-rnlps 1/1 Running 0 34m
pod/kube-scheduler-minikube 1/1 Running 0 34m
pod/storage-provisioner 1/1 Running 0 34m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/metrics-server ClusterIP 10.96.241.45 <none> 80/TCP 26s
service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 34m
service/monitoring-grafana NodePort 10.99.24.54 <none> 80:30002/TCP 26s
service/monitoring-influxdb ClusterIP 10.111.169.94 <none> 8083/TCP,8086/TCP 26s
Disabilita metrics-server
:
minikube addons disable metrics-server
L'output del comando è simile a:
metrics-server was successfully disabled
Clean up
Adesso puoi procedere a fare clean up delle risorse che hai creato nel tuo cluster:
kubectl delete service hello-node
kubectl delete deployment hello-node
Eventualmente, puoi stoppare la Minikube virtual machine (VM):
Eventualmente, puoi cancellare la Minikube VM:
Voci correlate