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.
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.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.26.8+vmware.1 <none> dev v1.26.8---vmware.2-tkg.1
workload-cluster-2 default running 1/1 1/1 v1.26.8+vmware.1 <none> dev v1.26.8---vmware.2-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.26.8+vmware.1 management dev v1.26.8---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.
È 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.
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.26.8+vmware.1",
"roles": [],
"tkr": "v1.26.8---vmware.2-tkg.1",
"labels": {
"cluster.x-k8s.io/cluster-name": "workload-cluster-1",
"run.tanzu.vmware.com/tkr": "v1.26.8---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.26.8+vmware.1",
"roles": [],
"tkr": "v1.26.8---vmware.2-tkg.1",
"labels": {
"tanzuKubernetesRelease": "v1.26.8---vmware.2-tkg.1",
"tkg.tanzu.vmware.com/cluster-name": "workload-cluster-2"
}
}
]
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.26.8+vmware.1
roles: []
tkr: v1.26.8---vmware.2-tkg.1
labels:
cluster.x-k8s.io/cluster-name: workload-cluster-1
run.tanzu.vmware.com/tkr: v1.26.8---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.26.8+vmware.1
roles: []
tkr: v1.26.8---vmware.2-tkg.1
labels:
tanzuKubernetesRelease: v1.26.8---vmware.2-tkg.1
tkg.tanzu.vmware.com/cluster-name: workload-cluster-1
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.
kubeconfig
del cluster del carico di lavoroDopo 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
ImportanteSe 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
ImportanteSe 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
amministratorePer 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
standardSe 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
ImportantePer impostazione predefinita, a meno che non si specifichi l'opzione
--export-file
per salvare ilkubeconfig
per un cluster in un file specifico, le credenziali per tutti i cluster distribuiti dalla CLI di Tanzu vengono aggiunte a un filekubeconfig
condiviso. Se si elimina il filekubeconfig
condiviso, tutti i cluster diventano inutilizzabili.
Dopo aver aggiunto le credenziali a kubeconfig
, è possibile connettersi al cluster utilizzando kubectl
.
Recuperare i contesti disponibili:
kubectl config get-contexts
Fare in modo che kubectl
punti al cluster. Ad esempio:
kubectl config use-context my-cluster-admin@my-cluster
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.26.8+vmware.1
my-dev-cluster-md-0-infra-n62lq-hq4k9 Ready <none> 2d2h v1.26.8+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.
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
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.
Prima di eseguire questa attività, assicurarsi:
apt
anziché snap
per installare Docker da una CLI.kubeconfig
per il cluster del carico di lavoro, come indicato in Recupero di kubeconfig
del cluster del carico di lavoroNella CLI di Tanzu, eseguire il comando seguente:
tanzu context create --endpoint https://MANAGEMENT-CLUSTER-CONTROL-PLANE-ENDPOINT:PORT --name SERVER-NAME
In cui:
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:
OIDC:
Accedere al provider di gestione delle identità.
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
.