IBM Cloud Docs
Auf Cluster zugreifen

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

  1. 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.
  2. Erstellen Sie Ihren IBM Cloud Kubernetes Service-Cluster.
  3. 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.
  4. Ü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.
  5. Überprüfen Sie in der Ausgabe der Clusterdetails im vorherigen Schritt die öffentliche URL oder die URL des privaten Serviceendpunkts des Clusters.
  6. 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.

  1. 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.
    1. Laden Sie die Konfigurationsdatei kubeconfig für Ihren Cluster herunter und fügen Sie sie zu Ihrer vorhandenen Datei kubeconfig in ~/.kube/config oder zur letzten Datei in der Umgebungsvariablen KUBECONFIG hinzu.
      ibmcloud ks cluster config -c <cluster_name_or_ID>
      
    2. Überprüfen Sie, ob kubectl-Befehle ordnungsgemäß ausgeführt werden und ob der Kubernetes-Kontext auf Ihren Cluster gesetzt ist.
      kubectl config current-context
      
      Beispielausgabe
      <cluster_name>/<cluster_ID>
      
  2. Starten Sie Ihr Kubernetes-Dashboard über den Standardport 8001.
    1. Legen Sie die Standardportnummer für den Proxy fest.
      kubectl proxy
      
      Starting to serve on 127.0.0.1:8001
      
    2. Ö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/
      

Ü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.

  1. Richten Sie Ihr IBM Cloud VPC-VPN ein und stellen Sie über das VPN eine Verbindung zu Ihrem privaten Netz her.

    1. Konfigurieren Sie ein VPN-Gateway auf Ihrer lokalen Maschine.
    2. 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/14 in 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.
    3. Überprüfen Sie, ob Sie über Ihre IBM Cloud VPC-VPN-Verbindung mit dem privaten Netz verbunden sind.
  2. Laden Sie die Konfigurationsdatei kubeconfig für Ihren Cluster herunter und fügen Sie sie zu Ihrer vorhandenen Datei kubeconfig in ~/.kube/config oder zur letzten Datei in der Umgebungsvariablen KUBECONFIG hinzu.

    ibmcloud ks cluster config -c <cluster_name_or_ID> --endpoint private
    
  3. Überprüfen Sie, ob kubectl-Befehle ordnungsgemäß ausgeführt werden und ob der Kubernetes-Kontext auf Ihren Cluster gesetzt ist.

    kubectl config current-context
    

    Beispielausgabe

    <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.

  1. 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.
    ...
    
  2. Erstellen Sie eine YAML-Datei namens kube-api-via-nlb.yaml. Diese YAML-Datei erstellt einen privaten LoadBalancer-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
    
  3. 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.

      1. Klicken Sie auf der Seite „Cluster“ auf den Cluster, auf den Sie zugreifen möchten.
      2. Klicken Sie auf der Seite mit den Clusterdetails auf Kubernetes-Dashboard.
      3. Klicken Sie auf + Erstellen.
      4. Wählen Sie Aus Datei erstellen aus, laden Sie die Datei kube-api-via-nlb.yaml hoch und klicken Sie auf Hochladen.
      5. Überprüfen Sie auf der Seite Übersicht, ob der Service kube-api-via-nlb erstellt 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.

      1. Laden Sie die Konfigurationsdatei kubeconfig für Ihren Cluster herunter und fügen Sie sie zu Ihrer vorhandenen Datei kubeconfig in ~/.kube/config oder zur letzten Datei in der Umgebungsvariablen KUBECONFIG hinzu.
        ibmcloud ks cluster config -c <cluster_name_or_ID>
        
      2. Erstellen Sie die NLB und den Endpunkt.
        kubectl apply -f kube-api-via-nlb.yaml
        
      3. Überprüfen Sie, ob die NLB kube-api-via-nlb erstellt wurde. Notieren Sie die Adresse 10.x.x.x unter 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.
        kubectl get svc -o wide
        
        In dieser Beispielausgabe lautet die IP-Adresse für den Private-Cloud-Serviceendpunkt des Kubernetes-Masters 10.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>
        ...
        
  4. 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/hosts hinzu. Schließen Sie keine Ports in die IP-Adresse und URL ein und schließen Sie https:// 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\hosts
      

      Abhä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
      
  5. Stellen Sie sicher, dass Sie über eine VPN- oder IBM Cloud Direct Link-Verbindung mit dem privaten Netz verbunden sind.

  6. Laden Sie die Konfigurationsdatei kubeconfig für Ihren Cluster herunter und fügen Sie sie zu Ihrer vorhandenen Datei kubeconfig in ~/.kube/config oder zur letzten Datei in der Umgebungsvariablen KUBECONFIG hinzu.

    ibmcloud ks cluster config -c <cluster_name_or_ID> --endpoint private
    
  7. Überprüfen Sie, ob kubectl-Befehle ordnungsgemäß ausgeführt werden und ob der Kubernetes-Kontext auf Ihren Cluster gesetzt ist.

    kubectl config current-context
    

    Beispielausgabe

    <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.

  1. Richten Sie Ihr IBM Cloud VPC-VPN ein und stellen Sie über VPN eine Verbindung zu Ihrer VPC her.

    1. 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.
    2. 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/16 und der Aktion translate bereitgestellt wurde.
    3. 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.
    4. Vergewissern Sie sich, dass Sie über Ihre VPN-Verbindung „ IBM Cloud VPC “ mit der VPC verbunden sind.
  2. Laden Sie die Konfigurationsdatei kubeconfig für Ihren Cluster herunter und fügen Sie sie zu Ihrer vorhandenen Datei kubeconfig in ~/.kube/config oder zur letzten Datei in der Umgebungsvariablen KUBECONFIG hinzu.

    ibmcloud ks cluster config -c <cluster_name_or_ID> --endpoint vpe
    
  3. 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 Sie ibmcloud ks cluster get -c CLUSTER ausführen.

    ibmcloud is sg-rulec kube-vpegw-<clusterID> inbound tcp --port-min 30829  --port-max 30829 --remote 192.168.192.0/22
    
  4. Überprüfen Sie, ob der Kubernetes-Kontext für Ihren Cluster festgelegt ist.

    kubectl config current-context
    

    Beispielausgabe

    <cluster_name>/<cluster_ID>
    
    kubectl version
    

    Beispielausgabe

    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