Creazione di pod di Kubernetes
La configurazione dei pod di Kubernetes può avvenire con approccio imperativo, dichiarativo o per mezzo di interfacce API. Durante la configurazione puoi anche indicare e modificare risorse supplementari per i container interessati.
Creazione di pod di Kubernetes: i requisiti
Per realizzare un pod di Kubernetes è necessario un cluster Kubernetes in esecuzione, in locale o su un sistema di sviluppo, all’interno di un ambiente cloud oppure on-premises. Per l’installazione ti consigliamo di seguire il tutorial di Kubernetes. Inoltre, devi assicurarti che sul tuo computer sia presente e configurato lo strumento a riga di comando kubectl per poter interagire con il cluster Kubernetes. Verifica anche che il file kubeconfig sia configurato correttamente per stabilire una connessione funzionante con il cluster.
Managed Kubernetes di IONOS garantisce l’elevata disponibilità delle tue distribuzioni K8s, ottimizzando i costi al tempo stesso. L’integrazione nell’ecosistema cloud di IONOS offre inoltre un avanzato sistema di memoria dati persistente e completamente integrato.
Guida: creazione di pod di Kubernetes
In Kubernetes è possibile creare i pod in tre modi diversi:
- Configurazione imperativa
- Configurazione dichiarativa
- Utilizzo dell’interfaccia API
Configurazione imperativa
Con l’approccio imperativo fornisci al sistema istruzioni esplicite tramite la riga di comando kubectl
su come creare un pod di Kubernetes senza aver prima predisposto un file di configurazione dettagliato.
kubectl run nginx --image=nginx --restart=Never
shellQuesto comando crea un singolo pod di nome nginx che contiene il server web Nginx.
Poiché il metodo imperativo apporta modifiche direttamente senza definire chiaramente lo stato previsto, in genere si consiglia l’approccio dichiarativo.
Configurazione dichiarativa
L’approccio dichiarativo in Kubernetes richiede la definizione dello stato desiderato delle risorse utilizzando i file di configurazione YAML.
Apri un editor di testo e crea un file YAML, ad esempio nginx-pod.yaml
, che descriva lo stato desiderato del pod Nginx.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
minReadySeconds: 5
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-container
image: nginx:latest
ports:
- containerPort: 80
yamlUtilizza il comando kubectl apply
per attivare il pod di Kubernetes in base alla configurazione dichiarativa.
kubectl apply -f nginx-pod.yaml
shellLe configurazioni dichiarative che indichi nel file YAML sono una definizione concreta dello stato previsto, inclusa la versione del pod da creare. Questa soluzione ti permette di gestire e monitorare le risorse nel tuo cluster Kubernetes in modo più trasparente.
Utilizzo dell’interfaccia API
Kubernetes mette a tua disposizione una API RESTful che ti permette di interagire con il cluster Kubernetes. Prima di utilizzare l’API devi autenticarti e ottenere l’autorizzazione. A tal fine, di solito devi fornire token o certificati di accesso, a seconda della configurazione del cluster Kubernetes.
A seguire trovi un esempio di creazione di un file JSON per un pod Nginx utilizzando l’API REST.
cat > nginx-pod.json <<EOF
{
"apiVersion": "apps/v1",
"kind": "Deployment",
"metadata": {
"name": "nginx-deployment"
},
"spec": {
"selector": {
"matchLabels": {
"app": "nginx"
}
},
"minReadySeconds": 5,
"template": {
"metadata": {
"labels": {
"app": "nginx"
}
},
"spec": {
"containers": [
{
"name": "nginx-container",
"image": "nginx:latest",
"ports": [
{
"containerPort": 80
}
]
}
]
}
}
}
}
EOF
shellPer attivare il pod di Kubernetes utilizza curl
, che ti permette di comunicare con l’API REST del cluster Kubernetes:
curl -k -v -X POST -H "Authorization: Bearer <JWT_TOKEN>" -H "Content-Type: application/json" https://cluster-ip:6443/api/v1/namespaces/default/pods -d@nginx-pod.json
shellQuesto comando curl
invia una richiesta HTTPS POST a un endpoint del cluster Kubernetes. Le opzioni -k
e -v
servono rispettivamente a ignorare la verifica del certificato SSL e a utilizzare la modalità Verbose. Con -X
POST puoi definire una richiesta POST. L’intestazione Authorization contiene un token bearer (sostituisci <JWT_TOKEN>
con il token vero e proprio), mentre Content-Type specifica il tipo di formato dati JSON. L’opzione -d@nginx-pod.json
trasmette i dati al server.
Visualizzazione dei pod
Per verificare lo stato corrente di tutti i pod nello spazio dei nomi, utilizza il seguente comando:
kubectl get pods
shellIl risultato è un elenco di pod esistenti con il loro stato, l’ora di avvio e altri dettagli.
Per ottenere informazioni più dettagliate utilizza il comando seguente:
kubectl describe pod my-pod
shellQuesto comando restituisce informazioni dettagliate sul pod, compresa la configurazione, gli eventi e le transizioni di stato.
Per visualizzare i registri del container principale del pod di Kubernetes utilizza il comando seguente:
kubectl logs my-pod
shellIn presenza di più container puoi contrassegnare il container con l’opzione -c
.
Eliminazione di un pod
Eliminare un pod è facile ed è possibile farlo con un semplice comando.
kubectl delete pod nginx
shellQuesto comando arresta il pod di Kubernetes selezionato e chiude il container corrispondente. In questo esempio abbiamo eliminato correttamente il pod Nginx dal cluster.
- Configurazione automatica dei cluster Kubernetes
- Archiviazione persistente completamente integrata
- Assistenza clienti 24/7