La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
Questo documento descrive la configurazione per il provisioning di un cluster Kubernetes di produzione da Cisco Intersight (SaaS) con l'utilizzo di Cisco Intersight™ Kubernetes Service (IKS).
Kubernetes, in tempi recenti, è diventato di fatto uno strumento di gestione dei contenitori, in quanto le organizzazioni tendono ad investire maggiormente nella modernizzazione delle applicazioni con soluzioni container. Con Kubernetes, i team di sviluppo possono distribuire, gestire e scalare le applicazioni in container con facilità, rendendo le innovazioni più accessibili alle pipeline di distribuzione continua.
Kubernetes, tuttavia, si trova ad affrontare sfide operative, in quanto richiede tempo e competenze tecniche per l'installazione e la configurazione.
L'installazione di Kubernetes e dei diversi componenti software richiesti, la creazione di cluster, la configurazione di storage, reti e sicurezza, nonché le operazioni (ad esempio l'aggiornamento, l'aggiornamento e l'applicazione di patch ai bug critici relativi alla sicurezza) richiedono un investimento significativo in capitale umano.
IKS è una soluzione SaaS chiavi in mano per la gestione di Kubernetes coerenti e di livello produttivo ovunque. Per ulteriori informazioni sulle funzionalità di IKS, fare clic qui su questo collegamento.
Per questo documento, l'idea è quella di mostrare la capacità di IKS di integrarsi perfettamente con l'infrastruttura locale, eseguendo VMware ESXi e vCenter.
Con pochi clic è possibile installare un cluster Kubernetes di livello produzione nell'infrastruttura VMware.
Tuttavia, per fare ciò è necessario integrare il vCenter locale con Intersight, noto come 'claim a target', dove vCenter è l'obiettivo.
È necessaria un'appliance virtuale Cisco Intersight Assist, che consente di aggiungere destinazioni endpoint a Cisco Intersight. È possibile installare Intersight Assist utilizzando l'OAV bootstrap disponibile sul sito Web ufficiale di Cisco.
Per limitare l'ambito di questo documento, non ci concentreremo sull'installazione di Cisco Intersight Assist Virtual Appliance. Ma qui potete dare un'occhiata al processo
Cisco raccomanda la conoscenza dei seguenti argomenti:
Il documento può essere consultato per tutte le versioni software o hardware.
Poiché l'implementazione di un'appliance Cisco Intersight non rientra nell'ambito di questo documento.
Si presume che l'utente disponga già di un account Intersight funzionante e che abbia richiesto un vCenter/Esxi locale.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Le regole consentono una gestione semplificata in quanto astraggono la configurazione in modelli riutilizzabili.
Di seguito sono elencati alcuni dei criteri da configurare. Tutte queste policy verrebbero create nella sezione Configura >> Criteri e configura >> Pool in Intersight.
Puoi vedere il percorso del criterio anche sopra ogni schermata, indicato di seguito.
Questo pool IP verrà utilizzato per gli indirizzi IP sui sistemi virtuali dei nodi di controllo e di lavoro, quando viene avviato sull'host ESXi.
Qui si definisce il POD e la rete di servizi CIDR, per le reti interne all'interno del cluster Kubernetes.
Questo criterio definisce la configurazione NTP e DNS.
Con questo criterio è possibile definire la configurazione proxy per il runtime del contenitore docker.
In questo criterio viene definita la configurazione necessaria sulle macchine virtuali distribuite come nodi Master e Worker.
Una volta create le politiche sopra descritte, le vincoleremmo in un profilo che potremo poi distribuire.
La distribuzione della configurazione mediante criteri e profili astrae il livello di configurazione in modo che possa essere distribuito più volte e rapidamente.
In pochi minuti è possibile copiare questo profilo e crearne uno nuovo con poche o più modifiche ai criteri sottostanti, in uno o più cluster Kubernetes attivi in una frazione di tempo necessaria con un processo manuale.
Visualizzare in Nome e impostare Tag.
Impostare il pool, il sistema operativo dei nodi e i criteri CIDR di rete. Inoltre, è necessario configurare un ID utente e una chiave SSH (pubblica).
La chiave privata corrispondente verrebbe utilizzata per eseguire il protocollo ssh nei nodi Master & Worker.
Configurare il Control Plane: È possibile definire il numero di nodi principali necessari sul piano di controllo.
Configurare i nodi Worker: A seconda dei requisiti dell'applicazione, è possibile aumentare o ridurre la scalabilità dei nodi di lavoro.
Configurare il componente aggiuntivo. Da ora, è possibile installare automaticamente, Kubernetes Dashboard e Graffana con monitoraggio Prometheus.
In futuro, sarà possibile aggiungere altri componenti aggiuntivi da distribuire automaticamente utilizzando IKS.
Controllare il riepilogo e fare clic su Distribuisci.
Per verificare che la configurazione funzioni correttamente, consultare questa sezione.
Nella parte superiore destra è possibile tenere traccia dello stato di avanzamento dell'installazione.
Man mano che l'implementazione procede, è possibile verificare che i nodi Kubernetes Master e Worker saranno disponibili su vCenter.
Se è necessario visualizzare i passaggi dettagliati per la distribuzione, è possibile eseguire il drill-down più a fondo.
È possibile connettersi al cluster Kubernetes nei modi seguenti:
Utilizzando il file KubeConfig, scaricabile da Operate > Kubernetes > Selezionare le opzioni all'estrema destra.
È necessario che KubeCtl sia installato nella workstation di gestione dalla quale si desidera accedere al cluster.
È possibile anche configurare SSH direttamente nel nodo master usando applicazioni SSH come Putty con le credenziali e la chiave privata configurate al momento della distribuzione
Se si distribuisce 'Kubernetes Dashboard' come componente aggiuntivo, è possibile utilizzare anche quello, per distribuire le applicazioni direttamente tramite GUI.
Per ulteriori informazioni, consultare la sezione 'Accesso ai cluster Kubernetes', qui:
Una volta stabilita la connessione al cluster Kubernetes utilizzando kubeCtl, è possibile utilizzare i comandi seguenti per verificare se nel cluster sono installati e in esecuzione tutti i componenti.
Verificare che i nodi nel cluster siano nello stato 'ready'.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kubek8scl1-caaskubew-6ba6bf794e Ready
6d4h v1.19.5 kubek8scl1-caaskubew-caa202993e Ready
6d4h v1.19.5 kubek8scl1-controlpl-b8a50f8235 Ready master 6d4h v1.19.5
Verificare lo stato dei pod creati al momento dell'installazione dei componenti essenziali nel cluster.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get pod -n iks | grep apply-
apply-ccp-monitor-2b7tx 0/1 Completed 0 6d3h
apply-cloud-provider-qczsj 0/1 Completed 0 6d3h
apply-cni-g7dcc 0/1 Completed 0 6d3h
apply-essential-cert-ca-jwdtk 0/1 Completed 0 6d3h
apply-essential-cert-manager-bg5fj 0/1 Completed 0 6d3h
apply-essential-metallb-nzj7h 0/1 Completed 0 6d3h
apply-essential-nginx-ingress-8qrnq 0/1 Completed 0 6d3h
apply-essential-registry-f5wn6 0/1 Completed 0 6d3h
apply-essential-vsphere-csi-tjfnq 0/1 Completed 0 6d3h
apply-kubernetes-dashboard-rslt4 0/1 Completed 0 6d3h
Verificare lo stato dell'alloggiamento operatore ccp-helm che gestisce l'alloggiamento dell'alloggiamento in esecuzione localmente e installa i componenti aggiuntivi.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get helmcharts.helm.ccp.----.com -A
NAMESPACE NAME STATUS VERSION INSTALLED VERSION SYNCED
iks ccp-monitor INSTALLED 0.2.61-helm3
iks essential-cert-ca INSTALLED 0.1.1-helm3
iks essential-cert-manager INSTALLED v1.0.2-cisco1-helm3
iks essential-metallb INSTALLED 0.12.0-cisco3-helm3
iks essential-nginx-ingress INSTALLED 2.10.0-cisco2-helm3
iks essential-registry INSTALLED 1.8.3-cisco10-helm3
iks essential-vsphere-csi INSTALLED 1.0.1-helm3
iks kubernetes-dashboard INSTALLED 3.0.2-cisco3-helm3
iks vsphere-cpi INSTALLED 0.1.3-helm3
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ helm ls -A
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /home/iksadmin/.kube/config
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
addon-operator iks 1 2021-11-05 07:45:15.44180913 +0000 UTC deployed ccp-helm-operator-9.1.0-alpha.44.g415a48c4be1.0
ccp-monitor iks 1 2021-11-05 08:23:11.309694887 +0000 UTC deployed ccp-monitor-0.2.61-helm3
essential-cert-ca iks 1 2021-11-05 07:55:04.409542885 +0000 UTC deployed cert-ca-0.1.1-helm3 0.1.0
essential-cert-manager iks 1 2021-11-05 07:54:41.433212634 +0000 UTC deployed cert-manager-v1.0.2-cisco1-helm3 v1.0.2
essential-metallb iks 1 2021-11-05 07:54:48.799226547 +0000 UTC deployed metallb-0.12.0-cisco3-helm3 0.8.1
essential-nginx-ingress iks 1 2021-11-05 07:54:46.762865131 +0000 UTC deployed ingress-nginx-2.10.0-cisco2-helm3 0.33.0
essential-registry iks 1 2021-11-05 07:54:36.734982103 +0000 UTC deployed docker-registry-1.8.3-cisco10-helm3 2.7.1
essential-vsphere-csi kube-system 1 2021-11-05 07:54:58.168305242 +0000 UTC deployed vsphere-csi-1.0.1-helm3 v2.0.0
kubernetes-dashboard iks 1 2021-11-05 07:55:10.197905183 +0000 UTC deployed kubernetes-dashboard-3.0.2-cisco3-helm3 2.1.0
vsphere-cpi kube-system 1 2021-11-05 07:54:38.292088943 +0000 UTC deployed vsphere-cpi-0.1.3-helm3 1.1.0
Verificare lo stato dei pod Essential-* che gestiscono i componenti aggiuntivi Essential (core), installati per impostazione predefinita, in ogni cluster tenant IKS.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get pod -n iks | grep ^essential-
essential-cert-manager-6bb7d776d-tpkhj 1/1 Running 0 6d4h
essential-cert-manager-cainjector-549c8f74c-x5sjp 1/1 Running 0 6d4h
essential-cert-manager-webhook-76f596b686-drf79 1/1 Running 0 6d4h
essential-metallb-controller-6557847d57-djs9b 1/1 Running 0 6d4h
essential-metallb-speaker-7t54v 1/1 Running 0 6d4h
essential-metallb-speaker-ggmbn 1/1 Running 0 6d4h
essential-metallb-speaker-mwmfg 1/1 Running 0 6d4h
essential-nginx-ingress-ingress-nginx-controller-k2hsw 1/1 Running 0 6d4h
essential-nginx-ingress-ingress-nginx-controller-kfkm9 1/1 Running 0 6d4h
essential-nginx-ingress-ingress-nginx-defaultbackend-695fbj4mnd 1/1 Running 0 6d4h
essential-registry-docker-registry-75b84457f4-4fmlh 1/1 Running 0 6d4h
Verificare lo stato dei servizi e del bilanciamento del carico distribuito nello spazio dei nomi IKS.
iksadmin@kubek8scl1-controlpl-b8a50f8235:~$ kubectl get svc -n iks
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ccp-monitor-grafana ClusterIP 192.168.23.161
80/TCP 6d3h ccp-monitor-prometheus-alertmanager ClusterIP 192.168.23.70
80/TCP 6d3h ccp-monitor-prometheus-kube-state-metrics ClusterIP None
80/TCP 6d3h ccp-monitor-prometheus-node-exporter ClusterIP None
9100/TCP 6d3h ccp-monitor-prometheus-pushgateway ClusterIP 192.168.23.130
9091/TCP 6d3h ccp-monitor-prometheus-server ClusterIP 192.168.23.95
443/TCP 6d3h essential-cert-manager ClusterIP 192.168.23.178
9402/TCP 6d4h essential-cert-manager-webhook ClusterIP 192.168.23.121
443/TCP 6d4h essential-nginx-ingress-ingress-nginx-controller LoadBalancer 192.168.23.26 192.168.10.11 80:31121/TCP,443:31753/TCP 6d4h essential-nginx-ingress-ingress-nginx-defaultbackend ClusterIP 192.168.23.205
80/TCP 6d4h essential-registry-docker-registry ClusterIP 192.168.23.12
443/TCP 6d4h kubernetes-dashboard ClusterIP 192.168.23.203
443/TCP 6d4h
Le informazioni contenute in questa sezione permettono di risolvere i problemi relativi alla configurazione.
Nel caso in cui un particolare pod non venga verso l'alto, è possibile utilizzare questi comandi per approfondire la causa.
Syntax : kubectl describe pod
-n
Example : kubectl describe pod vsphere-csi-controller-7d56dc7c8-qgbhw -n kube-system Name: vsphere-csi-controller-7d56dc7c8-qgbhw Namespace: kube-system Priority: 0 Node: kubek8scl1-controlpl-eb44cf1bf3/192.168.58.11 Start Time: Tue, 28 Sep 2021 02:39:41 +0000 Labels: app=vsphere-csi-controller pod-template-hash=7d56dc7c8 role=vsphere-csi Annotations:
Status: Running IP: 192.168.58.11 IPs: IP: 192.168.58.11 Controlled By: ReplicaSet/vsphere-csi-controller-7d56dc7c8 Containers: csi-attacher: Container ID: docker://60002693136d00f3b61237304a1fbc033df92f86dc1352965328fe3c4d264fdb Image: registry.ci.x----x.com/cpsg_kaas-images/quay.io/k8scsi/csi-attacher:v2.0.0 Image ID: docker-pullable://registry.ci.x------x.com/cpsg_kaas-images/quay.io/k8scsi/csi-attacher@sha256:71e2b9b5b8c52d789ef89ba901c8fba270fa623789a988c77c52ebb0257bf723 Port:
Host Port:
Args: --v=4 --timeout=300s --csi-address=$(ADDRESS) --leader-election State: Running Started: Thu, 30 Sep 2021 05:44:11 +0000 Last State: Terminated Reason: Error Message: Lost connection to CSI driver, exiting Exit Code: 255 Started: Thu, 30 Sep 2021 05:38:20 +0000 Finished: Thu, 30 Sep 2021 05:39:06 +0000 Ready: True Restart Count: 531 X----------------------- Log Text Omitted ---------X----------------------X--------------------X
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
18-Jan-2022 |
Versione iniziale |