In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
In diesem Dokument wird die Konfiguration zur Bereitstellung eines Kubernetes-Clusters der Produktionsklasse aus Cisco Intersight (SaaS) unter Verwendung des Cisco Intersight™ Kubernetes Service (IKS) beschrieben.
Kubernetes hat sich in letzter Zeit zu einem De-facto-Tool für das Containermanagement entwickelt, da Unternehmen tendenziell mehr in die Modernisierung von Anwendungen mit Containerized-Lösungen investieren. Mit Kubernetes können Entwicklungsteams ihre containerisierten Anwendungen einfach bereitstellen, verwalten und skalieren, sodass Innovationen für ihre kontinuierlichen Bereitstellungspipelines leichter zugänglich sind.
Kubernetes bringt jedoch auch betriebliche Herausforderungen mit sich, da die Installation und Konfiguration Zeit und technisches Fachwissen erfordert.
Die Installation von Kubernetes und der verschiedenen erforderlichen Softwarekomponenten, die Erstellung von Clustern, die Konfiguration von Storage, Netzwerk und Sicherheit sowie die damit verbundenen Betriebsabläufe (z. B. Upgrades, Updates und Patches für kritische Sicherheitslücken) erfordern erhebliche Investitionen in das Humankapital.
Geben Sie IKS ein, eine schlüsselfertige SaaS-Lösung für das Management von konsistentem Kubernetes in Produktionsqualität, unabhängig vom Standort. Weitere Informationen zu den Funktionen von IKS finden Sie hier.
In diesem Dokument soll die Fähigkeit von IKS zur nahtlosen Integration in die standortbasierte Infrastruktur mit VMware ESXi und vCenter erläutert werden.
Mit wenigen Klicks können Sie einen Kubernetes-Cluster der Produktionsklasse auf Ihrer VMware-Infrastruktur bereitstellen.
Um dies zu erreichen, müssen Sie jedoch Ihr standortbasiertes vCenter mit Intersight integrieren. Dieses Verfahren wird als "Anspruchsberechtigung für ein Ziel" bezeichnet, wobei vCenter hier das Ziel ist.
Sie benötigen eine virtuelle Cisco Intersight Assist Appliance, mit der Sie Cisco Intersight Endpunktziele hinzufügen können. Sie können Intersight Assist mithilfe der Bootstrap-OVA installieren, die auf der offiziellen Website von Cisco verfügbar ist.
Um den Umfang dieses Dokuments einzuschränken, gehen wir nicht auf die Installation der Cisco Intersight Assist Virtual Appliance ein. Aber Sie können sich den Prozess hier ansehen
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
Dieses Dokument ist nicht auf bestimmte Software- und Hardware-Versionen beschränkt.
Die Bereitstellung einer Cisco Intersight Appliance wird in diesem Dokument nicht behandelt.
Wir gehen davon aus, dass Sie bereits über ein Intersight-Konto verfügen und erfolgreich vCenter/ESXi vor Ort angefordert haben.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Richtlinien vereinfachen das Management, da sie die Konfiguration in wiederverwendbare Vorlagen abstrahieren.
Einige der Richtlinien, die konfiguriert werden müssen, sind unten aufgeführt. Bitte beachten Sie, dass alle diese Richtlinien im Abschnitt Konfigurieren >> Richtlinien & Konfigurieren >> Pools unter Intersight erstellt werden.
Sie können den Pfad der Richtlinie auch oben auf jedem Screenshot sehen, wie unten angegeben.
Dieser IP-Pool wird für IP-Adressen auf Ihren virtuellen Steuerungs- und Arbeitsknoten verwendet, wenn er auf dem ESXi-Host gestartet wird.
Hier definieren Sie den Pod und Services Network CIDR für die interne Vernetzung innerhalb des Kubernetes-Clusters.
Services und Netzwerk-CIDR
Diese Richtlinie definiert Ihre NTP- und DNS-Konfiguration.
NTP- und DNS-Konfiguration
Mit dieser Richtlinie können Sie die Proxykonfiguration für die Laufzeit des Docker-Containers definieren.
Proxy-Konfiguration für Docker
In dieser Richtlinie definieren Sie die erforderliche Konfiguration auf den virtuellen Systemen, die als Master- und Worker-Knoten bereitgestellt werden.
Konfiguration der verwendeten VMs
Nachdem wir die oben genannten Richtlinien erstellt haben, binden wir sie in ein Profil, das wir dann bereitstellen können.
Durch die Bereitstellung von Konfigurationen mithilfe von Richtlinien und Profilen wird die Konfigurationsebene abstrahiert, sodass sie wiederholt und schnell bereitgestellt werden kann.
Sie können dieses Profil kopieren und innerhalb von Minuten ein neues Profil mit kleinen oder mehr Änderungen an den zugrunde liegenden Richtlinien erstellen, das in einem Bruchteil der Zeit, die ein manueller Prozess benötigt, in einen oder mehrere Kubernetes-Cluster kopiert werden kann.
GIve im Namen und setzen Tags.
Profilkonfiguration mit Name und Tags
Legen Sie die Pool-, Node-OS- und Netzwerk-CIDR-Richtlinien fest. Sie müssen auch eine Benutzer-ID und einen SSH-Schlüssel (öffentlich) konfigurieren.
Der entsprechende private Schlüssel wird für SSH-Vorgänge in Master- und Worker-Knoten verwendet.
Profilkonfiguration mit zugewiesenen Richtlinien
Konfigurieren Sie die Kontrollebene: Sie können festlegen, wie viele Master-Knoten auf der Kontrollebene benötigt werden.
Konfiguration des Master-Knotens
Konfigurieren Sie die Worker-Knoten: Abhängig von den Anwendungsanforderungen können Sie Ihre Arbeitsknoten skalieren oder erweitern.
Konfiguration der Arbeitskräfteknoten
Add-on konfigurieren. Ab sofort können Sie Kubernetes Dashboard und Graffana mit Prometheus-Überwachung automatisch bereitstellen.
In Zukunft können Sie weitere Add-ons hinzufügen, die Sie automatisch mithilfe von IKS bereitstellen können.
Add-ONs hinzufügen, falls vorhanden
Überprüfen Sie die Zusammenfassung, und klicken Sie auf Bereitstellen.
Zusammenfassung der Profilerstellung
Nutzen Sie diesen Abschnitt, um zu überprüfen, ob Ihre Konfiguration ordnungsgemäß funktioniert.
Oben rechts können Sie den Fortschritt der Bereitstellung verfolgen.
Verifizieren über IKS-GUI
Im Verlauf der Bereitstellung können Sie sehen, dass Ihre Kubernetes Master- und Worker-Knoten in vCenter verfügbar sind.
IKS-Cluster kommt in vCenter
Wenn Sie detaillierte Schritte für die Bereitstellung benötigen, können Sie die Ausführung genauer untersuchen.
Profilerstellung
Sie können eine Verbindung zum Kubernetes-Cluster auf folgende Weise herstellen:
Verwenden Sie die KubeConfig-Datei, die Sie von Operate > Kubernetes herunterladen können > Wählen Sie die Optionen ganz rechts aus.
Sie müssen KubeCtl auf der Management-Workstation installieren, von wo aus Sie auf diesen Cluster zugreifen möchten.
KubeConfig-Datei von IKS herunterladen
Sie können SSH auch direkt in den Master-Knoten einbinden, indem Sie SSH-Anwendungen wie Putty mit den Anmeldeinformationen und dem privaten Schlüssel verwenden, die zum Zeitpunkt der Bereitstellung konfiguriert wurden.
Wenn Sie "Kubernetes Dashboard" als Add-on bereitstellen, können Sie auch dieses verwenden, um Anwendungen direkt über die GUI bereitzustellen.
Weitere Informationen finden Sie im Abschnitt 'Zugriff auf Kubernetes-Cluster' hier :
Sobald Sie mithilfe von kubeCtl eine Verbindung zum Kubernetes-Cluster herstellen können, können Sie mithilfe der folgenden Befehle überprüfen, ob im Cluster alle Komponenten installiert sind und ausgeführt werden.
Überprüfen Sie, ob die Knoten im Cluster bereit sind.
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
Überprüfen Sie den Status der PODs, die zum Zeitpunkt der Installation der wesentlichen Komponenten auf dem Cluster erstellt wurden.
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
Überprüfen Sie den Status des ccp-helm-operator POD, der den lokal ausgeführten Helm verwaltet und Add-ons installiert.
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
Überprüfen Sie den Status der Essential-* PODs, die die standardmäßig auf jedem IKS-Tenant-Cluster installierten Essential (Core) Add-ons verwalten.
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
Überprüfen Sie den Status der Dienste und des im IKS-Namespace bereitgestellten Load Balancers.
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
In diesem Abschnitt finden Sie Informationen zur Behebung von Fehlern in Ihrer Konfiguration.
Falls ein bestimmter Pod nicht verfügbar ist, können Sie diese Befehle verwenden, um die Ursache zu ermitteln.
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
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
18-Jan-2022
|
Erstveröffentlichung |