Connessione e controllo dei cluster del carico di lavoro

Dopo aver distribuito i cluster del carico di lavoro, utilizzare i comandi tanzu cluster list e tanzu cluster kubeconfig get per ottenere l'elenco dei cluster in esecuzione e le relative credenziali. È quindi possibile connettersi ai cluster tramite kubectl e iniziare a utilizzarli.

Elenco dei cluster del carico di lavoro distribuiti

Per elencare i cluster del carico di lavoro e il cluster di gestione che li gestisce, utilizzare il comando tanzu cluster list.

  • Per elencare tutti i cluster del carico di lavoro in esecuzione nello spazio dei nomi default del cluster di gestione, eseguire il comando tanzu cluster list:

    tanzu cluster list
    

    Nell'output sono elencati tutti i cluster del carico nello spazio dei nomi predefinito, inclusi i nomi dei cluster, il loro stato corrente, i numeri dei nodi del piano di controllo e dei nodi worker effettivi e necessari, nonché la versione di Kubernetes in esecuzione nel cluster.

    I cluster possono avere gli stati seguenti:

    • creating: è in corso la creazione del piano di controllo.
    • createStalled: il processo di creazione del piano di controllo è bloccato.
    • deleting: è in corso l'eliminazione del cluster.
    • failed: la creazione del piano di controllo non è riuscita.
    • running: il piano di controllo è stato inizializzato completamente.
    • updating: nel cluster è in esecuzione l'implementazione di un aggiornamento o la modifica del numero dei nodi.
    • updateFailed: il processo di aggiornamento del cluster non è riuscito.
    • updateStalled: il processo di aggiornamento del cluster è bloccato.
    • Nessuno stato: la creazione del cluster non è ancora stata avviata.

    Se un cluster è bloccato, verificare che sia presente la connettività di rete al registro esterno, assicurarsi che nella piattaforma di destinazione siano disponibili risorse sufficienti per il completamento dell'operazione e controllare che DHCP emetta indirizzi IPv4 correttamente.

  • Per elencare i cluster in tutti gli spazi dei nomi a cui è possibile accedere, specificare l'opzione -A o --all-namespaces.

    tanzu cluster list --all-namespaces
    
  • Per elencare solo i cluster in esecuzione in un determinato spazio dei nomi, specificare l'opzione --namespace.

    tanzu cluster list --namespace=NAMESPACE
    

    In cui NAMESPACE è lo spazio dei nomi in cui sono in esecuzione i cluster.

    In vSphere with Tanzu, i tecnici DevOps devono includere un valore --namespace quando eseguono tanzu cluster list, per specificare uno spazio dei nomi a cui possono accedere. Vedere Ruoli utente e flussi di lavoro di vSphere with Tanzu nella documentazione di VMware vSphere.

  • Se si è connessi a un cluster di gestione autonomo, per includere il cluster di gestione autonomo corrente nell'output di tanzu cluster list, specificare le opzioni --include-management-cluster -A.

    tanzu cluster list --include-management-cluster -A
    

    È possibile verificare che il cluster di gestione sia in esecuzione nello spazio dei nomi tkg-system e disponga del ruolo management.

    NAME                   NAMESPACE   STATUS         CONTROLPLANE  WORKERS  KUBERNETES        ROLES       PLAN  TKR
    workload-cluster-1     default     running        1/1           1/1      v1.27.5+vmware.1 <none>      dev   v1.27.5---vmware.2-tkg.1
    workload-cluster-2     default     running        1/1           1/1      v1.27.5+vmware.1 <none>      dev   v1.27.5---vmware.2-tkg.1
    mgmt-cluster           tkg-system  running        1/1           1/1      v1.27.5+vmware.1 management  dev   v1.27.5---vmware.2-tkg.1
    
  • Per visualizzare tutti i cluster di gestione e modificare il contesto della CLI di Tanzu con un cluster di gestione diverso, eseguire il comando tanzu context use. Per ulteriori informazioni, vedere Elenco dei cluster di gestione e modifica del contesto.

Esportazione dei dettagli di un cluster del carico di lavoro in un file

È possibile esportare in formato JSON o YAML i dettagli dei cluster a cui è possibile accedere. È possibile salvare il formato JSON o YAML in un file che possa essere utilizzato negli script per eseguire operazioni in blocco nei cluster.

Esporta come file JSON

Per esportare i dettagli del cluster come JSON, eseguire tanzu cluster list con l'opzione --output specificando json:

tanzu cluster list --output json > clusters.json

L'output mostra le informazioni del cluster come JSON:

[
  {
    "name": "workload-cluster-1",
    "namespace": "default",
    "status": "running",
    "plan": "dev",
    "controlplane": "1/1",
    "workers": "1/1",
    "kubernetes": "v1.27.5+vmware.1",
    "roles": [],
    "tkr": "v1.27.5---vmware.2-tkg.1",
    "labels": {
      "cluster.x-k8s.io/cluster-name": "workload-cluster-1",
      "run.tanzu.vmware.com/tkr": "v1.27.5---vmware.2-tkg.1",
      "tkg.tanzu.vmware.com/cluster-name": "workload-cluster-1",
      "topology.cluster.x-k8s.io/owned": ""
    }
  },
  {
    "name": "workload-cluster-2",
    "namespace": "default",
    "status": "running",
    "plan": "dev",
    "controlplane": "1/1",
    "workers": "1/1",
    "kubernetes": "v1.27.5+vmware.1",
    "roles": [],
    "tkr": "v1.27.5---vmware.2-tkg.1",
    "labels": {
      "tanzuKubernetesRelease": "v1.27.5---vmware.2-tkg.1",
      "tkg.tanzu.vmware.com/cluster-name": "workload-cluster-2"
    }
  }
]

Esporta come file YAML

Per esportare i dettagli del cluster come YAML, eseguire tanzu cluster list con l'opzione --output specificando yaml:

tanzu cluster list --output yaml > clusters.yaml

L'output mostra le informazioni del cluster come YAML:

- name: workload-cluster-1
  namespace: default
  status: running
  plan: dev
  controlplane: 1/1
  workers: 1/1
  kubernetes: v1.27.5+vmware.1
  roles: []
  tkr: v1.27.5---vmware.2-tkg.1
  labels:
    cluster.x-k8s.io/cluster-name: workload-cluster-1
    run.tanzu.vmware.com/tkr: v1.27.5---vmware.2-tkg.1
    tkg.tanzu.vmware.com/cluster-name: workload-cluster-1
    topology.cluster.x-k8s.io/owned: ""
- name: workload-cluster-1
  namespace: default
  status: running
  plan: dev
  controlplane: 1/1
  workers: 1/1
  kubernetes: v1.27.5+vmware.1
  roles: []
  tkr: v1.27.5---vmware.2-tkg.1
  labels:
    tanzuKubernetesRelease: v1.27.5---vmware.2-tkg.1
    tkg.tanzu.vmware.com/cluster-name: workload-cluster-1

Dettagli esportazione per più cluster

Per informazioni su come salvare i dettagli di più cluster di gestione, inclusi il contesto e i file kubeconfig, vedere Gestione dei cluster di gestione.

Recupero di kubeconfig del cluster del carico di lavoro

Dopo aver creato un cluster del carico di lavoro, è possibile ottenere il contesto e le impostazioni di kubeconfig tramite il comando tanzu cluster kubeconfig get specificando il nome del cluster. Per impostazione predefinita, il comando aggiunge le impostazioni di kubeconfig del cluster al file kubeconfig corrente.

tanzu cluster kubeconfig get my-cluster
Importante

Se la gestione delle identità non è configurata nel cluster, è necessario specificare l'opzione --admin.

Per esportare kubeconfig in un file, specificare l'opzione --export-file.

tanzu cluster kubeconfig get my-cluster --export-file my-cluster-kubeconfig
Importante

Se si elimina il file kubeconfig non sarà possibile accedere a tutti i cluster distribuiti dalla CLI di Tanzu.

Se nel cluster sono configurati la gestione delle identità e il controllo degli accessi basato sui ruoli (RBAC), gli utenti con credenziali kubeconfig standard e non amministrative dovranno autenticarsi con un fornitore di identità esterno per poter accedere al cluster.

kubeconfig amministratore

Per generare un file kubeconfig amministratore autonomo con credenziali incorporate, aggiungere l'opzione --admin. Questo file kubeconfig concede al suo utente l'accesso completo alle risorse del cluster e consente a tale utente di accedere al cluster senza eseguire l'accesso a un provider di identità.

tanzu cluster kubeconfig get my-cluster --admin

L'output dovrebbe essere il seguente:

You can now access the cluster by running 'kubectl config use-context my-cluster-admin@my-cluster'

kubeconfig standard

Se la gestione delle identità è configurata nel cluster di destinazione, è possibile generare un kubeconfig standard non amministratore che richiede all'utente di eseguire l'autenticazione nel provider di identità esterno e concede all'utente l'accesso alle risorse del cluster in base ai ruoli di cui dispone. In questo caso, eseguire tanzu cluster kubeconfig get senza l'opzione --admin.

tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE

In cui CLUSTER-NAME e NAMESPACE sono il cluster e lo spazio dei nomi di destinazione.

L'output dovrebbe essere il seguente:

You can now access the cluster by running 'kubectl config use-context ...'

Per salvare le informazioni di configurazione in un file kubeconfig autonomo, ad esempio per distribuirle agli sviluppatori, specificare l'opzione --export-file. Questo file kubeconfig richiede all'utente di eseguire l'autenticazione in un provider di identità esterno e concede all'utente l'accesso alle risorse del cluster in base ai ruoli di cui dispone.

tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE --export-file PATH-TO-FILE
Importante

Per impostazione predefinita, a meno che non si specifichi l'opzione --export-file per salvare il kubeconfig per un cluster in un file specifico, le credenziali per tutti i cluster distribuiti dalla CLI di Tanzu vengono aggiunte a un file kubeconfig condiviso. Se si elimina il file kubeconfig condiviso, tutti i cluster diventano inutilizzabili.

Controllo del cluster distribuito

Dopo aver aggiunto le credenziali a kubeconfig, è possibile connettersi al cluster utilizzando kubectl.

  1. Recuperare i contesti disponibili:

    kubectl config get-contexts
    
  2. Fare in modo che kubectl punti al cluster. Ad esempio:

    kubectl config use-context my-cluster-admin@my-cluster
    
  3. Utilizzare kubectl per visualizzare lo stato dei nodi nel cluster:

    kubectl get nodes
    

    Ad esempio, se il cluster my-dev-cluster è stato distribuito con il piano dev, viene visualizzato l'output seguente.

    NAME                                       STATUS   ROLES           AGE    VERSION
    my-dev-cluster-control-plane-9qx88-p88cp   Ready    control-plane   2d2h   v1.27.5+vmware.1
    my-dev-cluster-md-0-infra-n62lq-hq4k9      Ready    <none>          2d2h   v1.27.5+vmware.1
    

    Poiché la rete con Antrea è abilitata per impostazione predefinita nei cluster del carico di lavoro, tutti i cluster si trovano in stato Ready senza che siano necessarie configurazioni aggiuntive.

  4. Utilizzare kubectl per visualizzare lo stato dei pod in esecuzione nel cluster:

    kubectl get pods -A
    

    L'esempio seguente mostra i pod in esecuzione nello spazio dei nomi kube-system nel cluster my-dev-cluster in Azure.

    NAMESPACE              NAME                                                             READY   STATUS    RESTARTS        AGE
    kube-system            antrea-agent-ck7lv                                               2/2     Running   4 (3h7m ago)    2d2h
    kube-system            antrea-agent-fpq79                                               2/2     Running   4 (3h7m ago)    2d2h
    kube-system            antrea-controller-66d7978fd7-nkzgb                               1/1     Running   4 (3h7m ago)    2d2h
    kube-system            coredns-77d74f6759-b68ht                                         1/1     Running   2 (3h7m ago)    2d2h
    kube-system            coredns-77d74f6759-qfp8b                                         1/1     Running   2 (3h7m ago)    2d2h
    kube-system            csi-azuredisk-controller-5957dc576c-42tsd                        6/6     Running   12 (3h7m ago)   2d2h
    kube-system            csi-azuredisk-node-5hmkw                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-azuredisk-node-k7fr7                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-azurefile-controller-5d48b98756-rmrxp                        5/5     Running   10 (3h7m ago)   2d2h
    kube-system            csi-azurefile-node-brnf2                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-azurefile-node-vqghv                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-snapshot-controller-7ffbf75bd9-5m64r                         1/1     Running   2 (3h7m ago)    2d2h
    kube-system            etcd-my-dev-cluster-control-plane-9qx88-p88cp                    1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-apiserver-my-dev-cluster-control-plane-9qx88-p88cp          1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-controller-manager-my-dev-cluster-control-plane-9qx88-p88cp 1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-proxy-hqhfx                                                 1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-proxy-s6wwf                                                 1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-scheduler-my-dev-cluster-control-plane-9qx88-p88cp          1/1     Running   2 (3h7m ago)    2d2h
    kube-system            metrics-server-545546cdfd-qhbxc                                  1/1     Running   2 (3h7m ago)    2d2h
    secretgen-controller   secretgen-controller-7b7cbc6d9d-p6qww                            1/1     Running   2 (3h7m ago)    2d2h
    tkg-system             kapp-controller-868f9469c5-j58pn                                 2/2     Running   5 (3h7m ago)    2d2h
    tkg-system             tanzu-capabilities-controller-manager-b46dcfc7f-7dzd9            1/1     Running   4 (3h7m ago)    2d2h
    

Accesso a un cluster del carico di lavoro come utente standard (cluster di gestione autonomo)

In questa sezione viene descritto come un utente standard non amministratore può accedere a un cluster del carico di lavoro distribuito da un cluster di gestione autonomo. Questo workflow è diverso dal modo in cui un amministratore del cluster che ha creato il cluster di gestione del cluster può accedere al cluster del carico di lavoro.

Prerequisiti

Prima di eseguire questa attività, assicurarsi:

  • Di disporre di un'applicazione Docker in esecuzione nel sistema. Se il sistema esegue Microsoft Windows, impostare la modalità Docker su Linux e configurare il sottosistema Windows per Linux.
    • In una macchina Linux, utilizzare apt anziché snap per installare Docker da una CLI.
  • Di aver ottenuto dall'amministratore del cluster:

Accesso al cluster del carico di lavoro

  1. Nella CLI di Tanzu, eseguire il comando seguente:

    tanzu context create --endpoint https://MANAGEMENT-CLUSTER-CONTROL-PLANE-ENDPOINT:PORT --name SERVER-NAME
    

    In cui:

    • Per impostazione predefinita, PORT è 6443. Se l'amministratore del cluster imposta CLUSTER_API_SERVER_PORT o VSPHERE_CONTROL_PLANE_ENDPOINT_PORT durante la distribuzione del cluster, utilizzare il numero di porta definito nella variabile.
    • SERVER-NAME è il nome del server del cluster di gestione.

    Se nel cluster di gestione è configurata la gestione delle identità, nel browser predefinito viene aperta la schermata di accesso per il provider di gestione delle identità (LDAP oppure OIDC).

    LDAPS:

    Pagina di accesso di LDAPS

    OIDC:

    Pagina di accesso di OIDC

  2. Accedere al provider di gestione delle identità.

  3. Eseguire il comando seguente per passare al cluster del carico di lavoro:

    kubectl config use-context CONTEXT --kubeconfig="MY-KUBECONFIG"
    

    In cui CONTEXT e MY-KUBECONFIG sono il contesto del cluster e il file kubeconfig ottenuto dall'amministratore del cluster.

Ai successivi accessi alla CLI di Tanzu, sarà presente un'opzione per scegliere l'ambiente di Tanzu Kubernetes Grid in un elenco che verrà visualizzato dopo l'accesso a tanzu context use.

check-circle-line exclamation-circle-line close-line
Scroll to top icon