Auf Cluster zugreifen
Nach der Erstellung des IBM Cloud® Kubernetes Service-Clusters können Sie anfangen, mit Ihrem Cluster zu arbeiten, indem Sie auf den Cluster zugreifen.
Voraussetzungen
- Erforderliche CLI-Tools installieren, einschließlich der IBM Cloud-CLI, des Kubernetes Service-Plug-ins (
ibmcloud ks) und der Kubernetes-CLI (kubectl). Für einen schnellen Zugriff auf Testfunktionen in Ihrem Cluster können Sie auch die IBM Cloud Shell verwenden. - Erstellen Sie Ihren IBM Cloud Kubernetes Service-Cluster.
- Wenn Ihr Netz durch eine Firewall des Unternehmens geschützt ist, ermöglichen Sie den Zugriff auf die IBM Cloud- und IBM Cloud Kubernetes Service-API-Endpunkte und -Ports. Für Cluster, die nur für private Cloud-Serviceendpunkte bestimmt sind, können Sie die Verbindung zu Ihrem Cluster erst testen, wenn Sie Zugriff auf das Teilnetz des Cloud-Service-Endpunkts konfigurieren.
- Überprüfen Sie, ob sich Ihr Cluster in einem einwandfreien Zustand befindet, indem Sie
ibmcloud ks cluster get -c <cluster_name_or_ID>ausführen. Wenn sich der Cluster nicht in einwandfreiem Zustand befindet, finden Sie weitere Informationen unter Cluster debuggen. Wenn Ihr Cluster beispielsweise in einem Konto bereitgestellt wird, das durch eine Firewall-Firewall-Gateway geschützt ist, müssen Sie Ihre Firewalleinstellungen so konfigurieren, dass sie ausgehenden Datenverkehr zu den entsprechenden Ports und IP-Adressen zulassen. - Überprüfen Sie in der Ausgabe der Clusterdetails im vorherigen Schritt die öffentliche URL oder die URL des privaten Serviceendpunkts des Clusters.
- Nur öffentliche Serviceendpunkt-URL: Fahren Sie mit Über Public-Cloud-Serviceendpunkt auf Cluster zugreifen fort.
- Nur private Serviceendpunkt-URL: Fahren Sie mit Über Private-Cloud-Serviceendpunkt auf Cluster zugreifen fort.
- Beide Serviceendpunkt-URLs: Sie können über den öffentlichen oder den privaten Serviceendpunkt auf Ihren Cluster zugreifen.
- Sie können auch über den Virtual Private Endpoint auf Ihren VPC-Cluster zugreifen.
Über den Public-Cloud-Serviceendpunkt auf Cluster zugreifen
Damit Sie mit Ihrem Cluster arbeiten können, legen Sie den von Ihnen erstellten Cluster als Kontext für eine CLI-Sitzung fest, um kubectl-Befehle auszuführen.
Wenn Sie stattdessen die IBM Cloud-Konsole verwenden möchten, können Sie CLI-Befehle direkt über Ihren Web-Browser in IBM Cloud Shell ausführen.
- Legen Sie den von Ihnen erstellten Cluster als Kontext für diese Sitzung fest. Führen Sie diese Konfigurationsschritte jedes Mal aus, wenn Sie mit Ihrem Cluster arbeiten.
- Laden Sie die Konfigurationsdatei
kubeconfigfür Ihren Cluster herunter und fügen Sie sie zu Ihrer vorhandenen Dateikubeconfigin~/.kube/configoder zur letzten Datei in der UmgebungsvariablenKUBECONFIGhinzu.ibmcloud ks cluster config -c <cluster_name_or_ID> - Überprüfen Sie, ob
kubectl-Befehle ordnungsgemäß ausgeführt werden und ob der Kubernetes-Kontext auf Ihren Cluster gesetzt ist.
Beispielausgabekubectl config current-context<cluster_name>/<cluster_ID>
- Laden Sie die Konfigurationsdatei
- Starten Sie Ihr Kubernetes-Dashboard über den Standardport
8001.- Legen Sie die Standardportnummer für den Proxy fest.
kubectl proxyStarting to serve on 127.0.0.1:8001 - Öffnen Sie die folgende URL in einem Web-Browser, damit das Kubernetes-Dashboard angezeigt wird.
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
- Legen Sie die Standardportnummer für den Proxy fest.
Über den Private-Cloud-Serviceendpunkt auf Cluster zugreifen
Ermöglichen Sie berechtigten Clusterbenutzern den Zugriff auf Ihren VPC- oder klassischen Cluster über den Private-Cloud-Serviceendpunkt.
Über den Private-Cloud-Serviceendpunkt auf VPC-Cluster zugreifen
Der Kubernetes-Master über den Private-Cloud-Serviceendpunkt zugänglich, wenn sich berechtigte Clusterbenutzer in Ihrem privaten IBM Cloud-Netz befinden oder mit dem privaten Netz verbunden sind, z. B. über eine VPC-VPN-Verbindung.
Die Kommunikation mit dem Kubernetes-Master über den Private-Cloud-Serviceendpunkt muss jedoch über den IP-Adressbereich 166.X.X.X erfolgen, den Sie in Ihrem VPN-Gateway und in der Verbindungseinrichtung konfigurieren müssen.
-
Richten Sie Ihr IBM Cloud VPC-VPN ein und stellen Sie über das VPN eine Verbindung zu Ihrem privaten Netz her.
- Konfigurieren Sie ein VPN-Gateway auf Ihrer lokalen Maschine.
- Erstellen Sie ein VPN-Gateway in Ihrer VPC-Instanz und stellen Sie die Verbindung zwischen dem VPC-VPN-Gateway und Ihrem lokalen VPN-Gateway her. Fügen
Sie im Abschnitt Neue VPN-Verbindung für VPC das Teilnetz
166.8.0.0/14in das Feld Lokale Teilnetze ein. Wenn Sie über einen Mehrzonencluster verfügen, wiederholen Sie diesen Schritt, um ein VPC-Gateway für ein Teilnetz in jeder Zone, in der Sie Workerknoten haben, zu konfigurieren. - Überprüfen Sie, ob Sie über Ihre IBM Cloud VPC-VPN-Verbindung mit dem privaten Netz verbunden sind.
-
Laden Sie die Konfigurationsdatei
kubeconfigfür Ihren Cluster herunter und fügen Sie sie zu Ihrer vorhandenen Dateikubeconfigin~/.kube/configoder zur letzten Datei in der UmgebungsvariablenKUBECONFIGhinzu.ibmcloud ks cluster config -c <cluster_name_or_ID> --endpoint private -
Überprüfen Sie, ob
kubectl-Befehle ordnungsgemäß ausgeführt werden und ob der Kubernetes-Kontext auf Ihren Cluster gesetzt ist.kubectl config current-contextBeispielausgabe
<cluster_name>/<cluster_ID>
Über den Private-Cloud-Serviceendpunkt auf klassische Cluster zugreifen
Der Kubernetes-Master ist über den Private-Cloud-Serviceendpunkt zugänglich, wenn sich berechtigte Clusterbenutzer in Ihrem privaten IBM Cloud-Netz befinden oder mit dem privaten Netz verbunden sind, z. B. durch eine klassische VPN-Verbindung oder IBM Cloud Direct Link. Die Kommunikation mit dem Kubernetes-Master über den Private-Cloud-Serviceendpunkt muss jedoch über den IP-Adressbereich 166.X.X.X erfolgen,
der über eine klassische VPN-Verbindung oder über IBM Cloud Direct Link nicht angesteuert werden kann. Sie können den Private-Cloud-Serviceendpunkt des Masters für Ihre Clusterbenutzer mithilfe einer privaten Netzlastausgleichsfunktion (NLB)
zugänglich machen. Die private NLB macht den Private-Cloud-Serviceendpunkt des Masters als internen 10.X.X.X-IP-Adressbereich zugänglich, auf den Benutzer über eine VPN- oder IBM Cloud Direct Link-Verbindung zugreifen können.
Wenn Sie nur den Private-Cloud-Serviceendpunkt aktivieren, können Sie das Kubernetes-Dashboard verwenden oder vorübergehend den Public-Cloud-Serviceendpunkt aktivieren, um die private NLB zu erstellen.
-
Rufen Sie die URL und den Port des Private-Cloud-Serviceendpunkts für Ihren Cluster ab.
ibmcloud ks cluster get -c <cluster_name_or_ID>In dieser Beispielausgabe lautet der Wert für Private Service Endpoint URL
https://c1.private.us-east.containers.cloud.ibm.com:25073.NAME: setest ID: b8dcc56743394fd19c9f3db7b990e5e3 State: normal Status: healthy cluster Created: 2019-04-25T16:03:34+0000 Location: wdc04 Master URL: https://c1.private.us-east.containers.cloud.ibm.com:25073 Public Service Endpoint URL: - Private Service Endpoint URL: https://c1.private.us-east.containers.cloud.ibm.com:25073 Master Location: Washington D.C. ... -
Erstellen Sie eine YAML-Datei namens
kube-api-via-nlb.yaml. Diese YAML-Datei erstellt einen privatenLoadBalancer-Service und macht den Private-Cloud-Serviceendpunkt durch diese NLB zugänglich. Ersetzen Sie<private_service_endpoint_port>durch den im vorherigen Schritt gefundenen Port.apiVersion: v1 kind: Service metadata: name: kube-api-via-nlb annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: private namespace: default spec: type: LoadBalancer ports: - protocol: TCP port: 8080 # Or, the <private_service_endpoint_port> that you found earlier. targetPort: 8080 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise. --- kind: Endpoints apiVersion: v1 metadata: name: kube-api-via-nlb subsets: - addresses: - ip: 172.20.0.1 ports: - port: 2040 -
Damit Sie die private NLB erstellen können, müssen Sie mit dem Cluster-Master verbunden sein. Da Sie noch keine Verbindung über den Endpunkt des privaten Cloud-Service von einem VPN oder IBM Cloud Direct Link herstellen können, müssen Sie eine Verbindung zum Cluster-Master herstellen und die NLB über den Endpunkt des öffentlichen Cloud-Service oder das Kubernetes-Dashboard erstellen.
-
Wenn Sie nur den Private-Cloud-Serviceendpunkt aktiviert haben, können Sie das Kubernetes-Dashboard verwenden, um die NLB zu erstellen. Das Dashboard leitet automatisch alle Anforderungen an den Private-Cloud-Serviceendpunkt des Masters weiter.
- Klicken Sie auf der Seite „Cluster“ auf den Cluster, auf den Sie zugreifen möchten.
- Klicken Sie auf der Seite mit den Clusterdetails auf Kubernetes-Dashboard.
- Klicken Sie auf + Erstellen.
- Wählen Sie Aus Datei erstellen aus, laden Sie die Datei
kube-api-via-nlb.yamlhoch und klicken Sie auf Hochladen. - Überprüfen Sie auf der Seite Übersicht, ob der Service
kube-api-via-nlberstellt wurde. Notieren Sie die Adresse ** in der Spalte **Externe Endpunkte10.x.x.x. Diese IP-Adresse macht den Private-Cloud-Serviceendpunkt für den Kubernetes-Master an dem Port zugänglich, den Sie in Ihrer YAML-Datei angegeben haben.
-
Wenn Sie auch den Public-Cloud-Serviceendpunkt aktiviert haben, haben Sie bereits Zugriff auf den Master.
- Laden Sie die Konfigurationsdatei
kubeconfigfür Ihren Cluster herunter und fügen Sie sie zu Ihrer vorhandenen Dateikubeconfigin~/.kube/configoder zur letzten Datei in der UmgebungsvariablenKUBECONFIGhinzu.ibmcloud ks cluster config -c <cluster_name_or_ID> - Erstellen Sie die NLB und den Endpunkt.
kubectl apply -f kube-api-via-nlb.yaml - Überprüfen Sie, ob die NLB
kube-api-via-nlberstellt wurde. Notieren Sie die Adresse10.x.x.xunter EXTERNAL-IP in der Ausgabe. Diese IP-Adresse macht den Private-Cloud-Serviceendpunkt für den Kubernetes-Master an dem Port zugänglich, den Sie in Ihrer YAML-Datei angegeben haben.
In dieser Beispielausgabe lautet die IP-Adresse für den Private-Cloud-Serviceendpunkt des Kubernetes-Masterskubectl get svc -o wide10.186.92.42.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR kube-api-via-nlb LoadBalancer 172.21.150.118 10.186.92.42 443:32235/TCP 10m <none> ...
- Laden Sie die Konfigurationsdatei
-
-
Fügen Sie auf den Clientmaschinen, auf denen Sie oder Ihre Benutzer
kubectl-Befehle ausführen, die NLB-IP-Adresse und die URL des Private-Cloud-Serviceendpunkts zur Datei/etc/hostshinzu. Schließen Sie keine Ports in die IP-Adresse und URL ein und schließen Siehttps://nicht in die URL ein.-
Für macOS- und Linux-Benutzer:
sudo nano /etc/hosts -
Für Windows-Benutzer:
notepad C:\Windows\System32\drivers\etc\hostsAbhängig von Ihren Berechtigungen für die lokale Maschine müssen Sie Notepad als Administrator ausführen, um die Datei 'hosts' bearbeiten zu können.
10.186.92.42 c1.private.us-east.containers.cloud.ibm.com
-
-
Stellen Sie sicher, dass Sie über eine VPN- oder IBM Cloud Direct Link-Verbindung mit dem privaten Netz verbunden sind.
-
Laden Sie die Konfigurationsdatei
kubeconfigfür Ihren Cluster herunter und fügen Sie sie zu Ihrer vorhandenen Dateikubeconfigin~/.kube/configoder zur letzten Datei in der UmgebungsvariablenKUBECONFIGhinzu.ibmcloud ks cluster config -c <cluster_name_or_ID> --endpoint private -
Überprüfen Sie, ob
kubectl-Befehle ordnungsgemäß ausgeführt werden und ob der Kubernetes-Kontext auf Ihren Cluster gesetzt ist.kubectl config current-contextBeispielausgabe
<cluster_name>/<cluster_ID>
Über Virtual Private Endpoint Gateway auf VPC-Cluster zugreifen
Virtual Private Endpoint Gateway wird für VPC-Cluster automatisch erstellt. Der Master „ Kubernetes “ ist über dieses virtuelle private Endpunkt-Gateway zugänglich, wenn autorisierte Clusterbenutzer
mit derselben VPC verbunden sind, in der der Cluster bereitgestellt ist, beispielsweise über ein VPN vom Typ „ IBM Cloud VPC “. In diesem Fall ist kubeconfig die mit dem Virtual Private
Endpoint (VPE) URL konfiguriert, einem privaten DNS-Namen, der nur vom privaten DNS-Dienst IBM Cloud VPC aufgelöst werden kann. Die Adressen des privaten DNS-Servers „ IBM Cloud VPC “ lauten 161.26.0.7 und 161.26.0.8.
-
Richten Sie Ihr IBM Cloud VPC-VPN ein und stellen Sie über VPN eine Verbindung zu Ihrer VPC her.
- Konfigurieren Sie ein Client-to-Site-oder Site-to-Site-VPN für Ihre VPC. Sie können beispielsweise eine Client-zu-Site-Verbindung mit einem VPN-Client einrichten.
- Im Falle eines Client-to-Site-VPN für den Service IBM Cloud VPC müssen Sie die privaten IBM Cloud VPC-DNS-Serviceadressen angeben, wenn Sie den VPN-Server wie in den Hinweisen beschrieben bereitstellen, und Sie müssen eine VPN-Route erstellen, nachdem der VPN-Server mit dem Ziel
161.26.0.0/16und der Aktiontranslatebereitgestellt wurde. - Wenn Sie ein Site-to-Site-VPN für den Service IBM Cloud VPC verwenden, folgen Sie den Anweisungen im Abschnitt Zugriff auf Serviceendpunkte über VPN und konfigurieren Sie die privaten DNS-Serviceadressen von IBM Cloud VPC.
- Vergewissern Sie sich, dass Sie über Ihre VPN-Verbindung „ IBM Cloud VPC “ mit der VPC verbunden sind.
-
Laden Sie die Konfigurationsdatei
kubeconfigfür Ihren Cluster herunter und fügen Sie sie zu Ihrer vorhandenen Dateikubeconfigin~/.kube/configoder zur letzten Datei in der UmgebungsvariablenKUBECONFIGhinzu.ibmcloud ks cluster config -c <cluster_name_or_ID> --endpoint vpe -
1.30 und höher Fügen Sie eine Sicherheitsgruppenregel zum
kube-vpegw-<clusterID>für Ihr VPN hinzu. Die ferne Ressource in diesem Beispiel stammt aus der Client-IP-CIDR des VPN. Sie können Ihren VPE-Port ermitteln, indem Sieibmcloud ks cluster get -c CLUSTERausführen.ibmcloud is sg-rulec kube-vpegw-<clusterID> inbound tcp --port-min 30829 --port-max 30829 --remote 192.168.192.0/22 -
Überprüfen Sie, ob der Kubernetes-Kontext für Ihren Cluster festgelegt ist.
kubectl config current-contextBeispielausgabe
<cluster_name>/<cluster_ID>kubectl versionBeispielausgabe
Client Version: v1.25.3 Kustomize Version: v4.5.7 Server Version: v1.25.4+IKS
Schutz von Clustern durch kontextbezogene Einschränkungen
Listen für private Dienstendpunkte werden nicht mehr unterstützt. Möglichst baldige Umstellung von privaten Endpunkt-Zulassungslisten für Dienste auf kontextbezogene Beschränkungen. Spezifische Migrationsschritte finden Sie unter Migrieren von einer privaten Service-Endpunkt-Zulassungsliste zu kontextbasierten Einschränkungen(CBR ).
Kontrollieren Sie den Zugang zu Ihren öffentlichen und privaten Service-Endpunkten mit kontextbasierten Beschränkungsregeln (CBR).
Nachdem Sie Benutzern über IBM Cloud IAM Zugriff auf Ihren Cluster gewährt haben, können Sie eine zweite Sicherheitsebene hinzufügen, indem Sie CBR-Regeln für den öffentlichen und privaten Service-Endpunkt Ihres Clusters erstellen. Nur autorisierte Anfragen an Ihren Cluster-Master, die von Subnetzen in den CBR-Regeln stammen, werden zugelassen.
Wenn Sie Anfragen aus einer anderen VPC als der, in der sich Ihr Cluster befindet, zulassen möchten, müssen Sie die IP-Adresse des Cloud-Service-Endpunkts für diese VPC in die CBR-Regeln aufnehmen.
Um z. B. auf den Private-Cloud-Serviceendpunkt Ihres Clusters zugreifen zu können, müssen Sie eine Verbindung zu Ihrem IBM Cloud klassischen Netz oder Ihrem VPC-Netz über ein VPN oder IBM Cloud Direct Link herstellen. Sie können in Ihren CBR-Regeln nur das Subnetz für den VPN- oder Direct Link-Tunnel angeben, sodass nur autorisierte Benutzer in Ihrer Organisation von diesem Subnetz aus auf den Endpunkt des Private Cloud-Dienstes zugreifen können.
Öffentliche CBR-Regeln (wenn Ihr Cluster über einen Endpunkt für öffentliche Dienste verfügt) können ebenfalls dazu beitragen, dass Benutzer nach dem Entzug ihrer Berechtigung nicht mehr auf Ihr Cluster zugreifen können. Wenn Benutzer Ihre
Organisation verlassen, entfernen Sie ihre IBM Cloud IAM-Berechtigungen, die ihnen zuvor den Zugriff auf den Cluster ermöglichten. Es kann jedoch sein, dass der Benutzer die Datei admin kubeconfig für einen Cluster kopiert hat,
wodurch er Zugriff auf diesen Cluster erhält. Wenn Sie eine öffentliche CBR-Regel haben, die den Zugriff auf Ihre Cluster-Master nur von bekannten öffentlichen Subnetzen erlaubt, die Ihrer Organisation gehören, dann wird der Zugriffsversuch
des Benutzers von einer anderen öffentlichen IP-Adresse blockiert.
Die Subnetze der Arbeitsknoten werden automatisch zur CBR-Implementierung im Backend hinzugefügt und daraus entfernt (nicht jedoch die CBR-Regeln/Zonen), so dass die Arbeitsknoten immer auf den Cluster-Master zugreifen können und die Benutzer diese nicht speziell zu ihren eigenen CBR-Regeln hinzufügen müssen.
Weitere Informationen zum Schutz Ihres Clusters mit CBR-Regeln finden Sie unter Schutz von Cluster-Ressourcen mit kontextbasierten Einschränkungen und Beispiel für kontextbasierte Einschränkungen