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.

Consiglio

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:

  1. Configurazione imperativa
  2. Configurazione dichiarativa
  3. 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
shell

Questo 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
yaml

Utilizza il comando kubectl apply per attivare il pod di Kubernetes in base alla configurazione dichiarativa.

kubectl apply -f nginx-pod.yaml
shell

Le 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
shell

Per 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
shell

Questo 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
shell

Il 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
shell

Questo 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
shell

In 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
shell

Questo comando arresta il pod di Kubernetes selezionato e chiude il container corrispondente. In questo esempio abbiamo eliminato correttamente il pod Nginx dal cluster.

Managed Kubernetes
Orchestrazione sicura dei carichi di lavoro dei container
  • Configurazione automatica dei cluster Kubernetes
  • Archiviazione persistente completamente integrata
  • Assistenza clienti 24/7
Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top