IBM Cloud Docs
Auf Red Hat OpenShift-Cluster zugreifen

Auf Red Hat OpenShift-Cluster zugreifen

Nach der Erstellung des Red Hat® OpenShift® on IBM Cloud®-Clusters können Sie mit dem Cluster arbeiten. Greifen Sie dazu auf den Cluster zu.

Voraussetzungen

  1. Installieren Sie die erforderlichen CLI-Tools. Für den schnellen Zugriff auf Testfunktionen in Ihrem Cluster können Sie auch IBM Cloud Shell verwenden.
  2. Erstellen Sie Ihren Red Hat OpenShift-Cluster.
  3. Wenn Ihr Netz durch eine Firewall des Unternehmens geschützt ist, erteilen Sie den Zugriff auf die IBM Cloud- und Red Hat OpenShift on IBM Cloud-API-Endpunkte und -Ports. Für VPC-Cluster, bei denen nur der private Cloud-Serviceendpunkt aktiviert ist, können Sie die Verbindung zu Ihrem Cluster erst testen, wenn Sie VPC VPN mit dem Teilnetz des Cloud-Serviceendpunkts konfigurieren.
  4. Überprüfen Sie, ob sich Ihr Cluster in einem einwandfreien Zustand befindet, indem Sie ibmcloud oc cluster get -c <cluster_name_or_ID> ausführen. Befindet sich Ihr Cluster nicht in einem einwandfreien Status, dann lesen Sie die Informationen im Leitfaden zum Debuggen von Clustern. 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. Suchen Sie den Serviceendpunkt Ihres Clusters.
  6. Wenn Benutzer in Ihrem Konto die Multifaktor-Authentifizierung (MFA) wie TOTP verwenden, stellen Sie sicher, dass Sie sie für alle Benutzer auf Kontoebene aktivieren. Um MFA zu verwenden, muss es auf Kontoebene aktiviert werden, um Authentifizierungsfehler zu vermeiden.

Über den Public-Cloud-Serviceendpunkt auf Cluster zugreifen

Bei Red Hat OpenShift-Clustern mit einem Public-Cloud-Serviceendpunkt können Sie sich über die Konsole oder die Befehlszeilenschnittstelle (CLI) bei Ihrem Cluster anmelden.

Verbindung zum Cluster über Konsole herstellen

Über die Konsole können Sie schnell auf Ihren Red Hat OpenShift on IBM Cloud-Cluster zugreifen.

  1. Klicken Sie in der Konsole auf den Cluster, auf den Sie zugreifen möchten.
  2. Klicken Sie auf Red Hat OpenShift-Webkonsole.
  3. Um die Arbeit in der Befehlszeile fortzusetzen, klicken Sie auf den Namen Ihres Profils (z. B. IAM#name@email.com) und dann auf Anmeldebefehl kopieren. Melden Sie sich abhängig von Ihrer Clusterversion wie folgt über die Befehlszeile bei Ihrem Cluster an.
    • Version 4: Klicken Sie auf Token anzeigen, kopieren Sie den Befehl oc login und fügen Sie den kopierten Befehl in Ihre Befehlszeile ein.

Melden Sie sich aus Sicherheitsgründen zuerst von der IBM Cloud-Konsole ab und anschließend von der Red Hat OpenShift-Webkonsole ab, bevor Sie Ihren Browser schließen. Sie müssen beide Schritte in der angegebenen Reihenfolge ausführen, um sich erfolgreich von der Red Hat OpenShift-Webkonsole abzumelden.

Weitere Schritte
Versuchen Sie es mit dem Bereitstellen von Apps über die Konsole.

Verbindung zum Cluster über Befehlszeilenschnittstelle herstellen

Normalerweise können Sie die Red Hat OpenShift-Webkonsole verwenden, um das oc login-Token für den Zugriff auf Ihren Cluster abzurufen. Wenn Sie die Red Hat OpenShift-Konsole nicht öffnen können oder nicht öffnen möchten, wählen Sie eine der folgenden Optionen aus, um sich über die Befehlszeilenschnittstelle bei Ihrem Red Hat OpenShift on IBM Cloud-Cluster anzumelden.

Die folgenden Optionen stehen zur Auswahl.

  • Anmeldung als Administrator:
    1. Vergewissern Sie sich, dass Sie über die Plattformzugriffsrolle Administrator für den Cluster verfügen.
    2. Legen Sie den Befehlszeilenkontext für den Cluster fest und laden Sie die TLS-Zertifikate und die entsprechenden Berechtigungsdateien für den Administrator herunter.
      ibmcloud oc cluster config -c <cluster_name_or_ID> --admin
      
  • Anmeldung mit einem API-Schlüssel: Weitere Informationen hierzu finden Sie unter API-Schlüssel zur Anmeldung bei Red Hat OpenShift verwenden.
  • Anmeldung mit IBM Cloud-Kenncode:
    1. Ermitteln Sie die Master-URL des Clusters in der Ausgabe des folgenden Befehls.
      ibmcloud oc cluster get -c <cluster_name_or_ID>
      
    2. Öffnen Sie im Browser die folgende IBM Cloud IAM-Kenncode-Website.
      https://iam.cloud.ibm.com/identity/passcode
      
    3. Melden Sie sich mit Ihrer IBMid an und kopieren Sie den Kenncode.
    4. Melden Sie sich mit dem Kenncode beim Cluster an.
      oc login -u passcode -p <iam_passcode> --server=<master_URL>
      

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

Möchten Sie ein VPN einrichten, um eine Verbindung zu Ihrem Cluster von Ihrem lokalen System herzustellen? Überprüfen Sie die Option Zugriff auf private Cluster über das Wireguard- VPN.

Über den Private-Cloud-Serviceendpunkt auf VPC-Cluster zugreifen

Der Red Hat OpenShift-Master ist über den Private-Cloud-Serviceendpunkt zugänglich, wenn sich berechtigte Clusterbenutzer in Ihrem privaten IBM Cloud-Netz befinden oder z. B. über eine VPC-VPN-Verbindung mit dem privaten Netz verbunden sind. 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. Sie wählen z. B., StrongSwan auf Ihrer Maschine einzurichten.
    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. Melden Sie sich mit einer der folgenden Optionen bei Ihrem Cluster an.

    • Anmeldung als Administrator:
      1. Vergewissern Sie sich, dass Sie über die Plattformzugriffsrolle Administrator für den Cluster verfügen.
      2. Legen Sie den Befehlszeilenkontext für den Cluster fest und laden Sie die TLS-Zertifikate und die entsprechenden Berechtigungsdateien für den Administrator herunter.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
        
    • Anmeldung mit einem API-Schlüssel: Weitere Informationen hierzu finden Sie unter API-Schlüssel zur Anmeldung bei Red Hat OpenShift verwenden.
    • Anmeldung mit IBM Cloud-Kenncode:
      1. Ermitteln Sie die URL des privaten Serviceendpunkts für Ihren Cluster in der Ausgabe des folgenden Befehls.
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. Öffnen Sie im Browser die folgende IBM Cloud IAM-Kenncode-Website.
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Melden Sie sich mit Ihrer IBMid an und kopieren Sie den Kenncode.
      4. Melden Sie sich mit dem Kenncode beim Cluster an.
        oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
        
  3. Stellen Sie sicher, dass die oc-Befehle für Ihren Cluster ordnungsgemäß über den Private-Cloud-Serviceendpunkt ausgeführt werden. Überprüfen Sie dazu die Version wie folgt.

    oc version
    

    Beispielausgabe

    Client Version: 4.5.0-0.okd-2020-09-04-180756
    Server Version: 4.5.35
    Kubernetes Version: v1.18.3+cdb0358
    

Über den Private-Cloud-Serviceendpunkt auf klassische Cluster zugreifen

Der Red Hat OpenShift-Master ist über den Private-Cloud-Serviceendpunkt zugänglich, wenn sich berechtigte Clusterbenutzer in Ihrem privaten IBM Cloud-Netz befinden oder z. B. über eine klassische VPN-Verbindung oder IBM Cloud Direct Link mit dem privaten Netz verbunden sind. 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 die Red Hat OpenShift-Webkonsole verwenden, um die private NLB zu erstellen.

  1. Melden Sie sich bei Ihrem Red Hat OpenShift-Cluster über den Public-Cloud-Serviceendpunkt an.

  2. Rufen Sie die URL und den Port des Private-Cloud-Serviceendpunkts für Ihren Cluster ab.

    ibmcloud oc cluster get -c <cluster_name_or_ID>
    

    In dieser Beispielausgabe lautet der Wert für die URL des privaten Serviceendpunkts (Private Service Endpoint URL) https://c1.private.us-east.containers.cloud.ibm.com:31144.

    NAME:                           setest
    ID:                             b8dcc56743394fd19c9f3db7b990e5e3
    State:                          normal
    Status:                         healthy cluster
    Created:                        2019-04-25T16:03:34+0000
    Location:                       wdc04
    Pod Subnet:                     172.30.0.0/16
    Service Subnet:                 172.21.0.0/16
    Master URL:                     https://c1-e.us-east.containers.cloud.ibm.com:31144
    Public Service Endpoint URL:    https://c1-e.us-east.containers.cloud.ibm.com:31144
    Private Service Endpoint URL:   https://c1.private.us-east.containers.cloud.ibm.com:31144
    Master Location:                Washington D.C.
    ...
    
  3. Erstellen Sie eine YAML-Datei mit dem Namen oc-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: oc-api-via-nlb
      annotations:
        service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: private
      namespace: default
    spec:
      type: LoadBalancer
      ports:
      - protocol: TCP
        port: <private_service_endpoint_port>
        targetPort: <private_service_endpoint_port>
    ---
    kind: Endpoints
    apiVersion: v1
    metadata:
      name: oc-api-via-nlb
      namespace: default
    subsets:
      - addresses:
          - ip: 172.20.0.1
        ports:
          - port: 2040
    
    
    
  4. Gehen Sie wie folgt vor, um die private NLB und den Endpunkt zu erstellen:

    1. Wenden Sie die zuvor erstellte Konfigurationsdatei an.
      oc apply -f oc-api-via-nlb.yaml
      
    2. Überprüfen Sie, ob die NLB oc-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 Cluster-Master an dem Port zugänglich, den Sie in Ihrer YAML-Datei angegeben haben.
      oc get svc -o wide
      
      In dieser Beispielausgabe lautet die IP-Adresse für den Private-Cloud-Serviceendpunkt des Masters 10.186.92.42.
      NAME                     TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)          AGE   SELECTOR
      oc-api-via-nlb           LoadBalancer   172.21.150.118   10.186.92.42     443:32235/TCP    10m   <none>
      ...
      
  5. Fügen Sie auf den Clientmaschinen, auf denen Sie oder die Benutzer oc-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.

      Beispiel für hinzuzufügenden Text:

      10.186.92.42      c1.private.us-east.containers.cloud.ibm.com
      
  6. Stellen Sie sicher, dass Sie über eine VPN- oder IBM Cloud Direct Link-Verbindung mit dem privaten Netz verbunden sind.

  7. Melden Sie sich mit einer der folgenden Optionen bei Ihrem Cluster an.

    • Anmeldung als Administrator:
      1. Vergewissern Sie sich, dass Sie über die Plattformzugriffsrolle Administrator für den Cluster verfügen.
      2. Legen Sie den Befehlszeilenkontext für den Cluster fest und laden Sie die TLS-Zertifikate und die entsprechenden Berechtigungsdateien für den Administrator herunter.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
        
    • Anmeldung mit einem API-Schlüssel: Weitere Informationen hierzu finden Sie unter API-Schlüssel zur Anmeldung bei Red Hat OpenShift verwenden.
    • Anmeldung mit IBM Cloud-Kenncode:
      1. Ermitteln Sie die URL des privaten Serviceendpunkts für Ihren Cluster in der Ausgabe des folgenden Befehls.
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. Öffnen Sie im Browser die folgende IBM Cloud IAM-Kenncode-Website.
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Melden Sie sich mit Ihrer IBMid an und kopieren Sie den Kenncode.
      4. Melden Sie sich mit dem Kenncode beim Cluster an.
        oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
        
  8. Stellen Sie sicher, dass die oc-Befehle für Ihren Cluster ordnungsgemäß über den Private-Cloud-Serviceendpunkt ausgeführt werden. Überprüfen Sie dazu die Version wie folgt.

    oc version
    

    Beispielausgabe

    Client Version: 4.5.0-0.okd-2020-09-04-180756
    Server Version: 4.5.35
    Kubernetes Version: v1.18.3+cdb0358
    

Auf Red Hat OpenShift-Cluster in Satellite zugreifen

Nach dem Erstellen eines Red Hat OpenShift-Clusters an Ihrer Satellite-Position können Sie mit dem Cluster arbeiten. Greifen Sie dazu auf den Cluster zu.

Wenn Sie auf Ihren Cluster zugreifen und die Befehle oc get nodes oder oc describe node <worker_node> ausführen, sehen Sie möglicherweise, dass den Arbeitsknoten die Rollen master,worker zugewiesen sind. In OpenShift Container Platform-Clustern verwenden Operatoren die Masterrolle als nodeSelector (Knotenselektor), damit OCP von Operatoren gesteuerte Standardkomponenten wie beispielsweise die interne Registry, in Ihrem Cluster bereitstellen kann. Die Satellite-Hosts, die Sie Ihrem Cluster zugewiesen haben, dienen lediglich als Workerknoten und es werden keine Masterknotenprozesse wie der API-Server oder der Kubernetes-Scheduler auf Ihren Workerknoten ausgeführt.

Über Cluster-Service-URL auf Cluster zugreifen

Stellen Sie über die Service-URL eine Verbindung zu Ihrem Cluster her. Diese URL gibt eine Ihrer Satellite-Standortunterdomänen und einen entsprechenden Knotenport an und ist im Format https://p1iuql40jam23qiuxt833-q9err0fiffbsar61e78vv6e7ds8ne1tx-ce00.us-east.satellite.appdomain.cloud:30710 definiert.

Wenn die Hosts Ihres Standorts nur über private Netzkonnektivität verfügen oder wenn Sie Amazon Web Services-, Google Cloud Platform- und Microsoft Azure-Hosts verwenden, müssen Sie mit dem privaten Netz Ihres Hosts (z. B. über VPN-Zugriff) verbunden sein, um eine Verbindung zu Ihrem Cluster herzustellen und auf die Red Hat OpenShift-Webkonsole zuzugreifen. Wenn Ihre Hosts über öffentliche Netzkonnektivität verfügen, können Sie alternativ den Zugriff auf Ihren Cluster testen, indem Sie die DNS-Datensätze Ihres Clusters und des Standorts ändern, um öffentliche IP-Adressen der Hosts verwenden zu können.

Über die Konsole können Sie schnell auf Ihren Red Hat OpenShift on IBM Cloud-Cluster zugreifen.

  1. Klicken Sie in der Konsole auf den Cluster, auf den Sie zugreifen möchten.
  2. Klicken Sie auf Red Hat OpenShift-Webkonsole.
  3. Klicken Sie auf den Namen Ihres Profils (z. B. IAM#name@email.com) und dann auf Anmeldebefehl kopieren.
  4. Klicken Sie auf Token anzeigen und kopieren Sie den Befehl oc login.
  5. Fügen Sie den Befehl in Ihre Befehlszeile ein.

Melden Sie sich aus Sicherheitsgründen zuerst von der IBM Cloud-Konsole ab und anschließend von der Red Hat OpenShift-Webkonsole ab, bevor Sie Ihren Browser schließen. Sie müssen beide Schritte in der angegebenen Reihenfolge ausführen, um sich erfolgreich von der Red Hat OpenShift-Webkonsole abzumelden.

Wenn Sie die Red Hat OpenShift-Konsole nicht öffnen können oder nicht öffnen möchten, wählen Sie eine der folgenden Optionen aus, um sich über die Befehlszeilenschnittstelle bei Ihrem Red Hat OpenShift on IBM Cloud-Cluster anzumelden.

Über öffentliches Netz auf Cluster zugreifen

Wenn Ihre Hosts über öffentliche Netzkonnektivität verfügen und Sie über Ihre lokale Maschine auf Ihren Cluster zugreifen möchten, ohne mit dem privaten Netz Ihres Hosts verbunden zu sein, können Sie optional den DNS-Datensatz Ihrer Clusterunterdomäne und Ihres Standorts aktualisieren, um die öffentlichen IP-Adressen Ihres Hosts zu verwenden.

Für die meisten Standortkonfigurationen werden die privaten IP-Adressen Ihrer Hosts für den DNS-Datensatz des Standorts registriert, sodass Sie nur dann auf Ihren Cluster zugreifen können, wenn Sie mit dem privaten Netz Ihres Cloud-Providers verbunden sind.

Wenn Sie beispielsweise Amazon Web Services-, Google Cloud Platform- oder Microsoft Azure-Hosts verwenden oder wenn die Standardnetzschnittstelle Ihrer Hosts privat ist, ist der DNS-Datensatz Ihres Standorts nur im privaten Netz zugänglich.

Um kubectl- oder oc-Befehle für Ihren Cluster auszuführen oder auf die Red Hat OpenShift-Webkonsole zuzugreifen, müssen Sie mit dem privaten Netz Ihres Hosts (z. B. über VPN-Zugriff) verbunden sein. Wenn Sie jedoch über das öffentliche Netz auf Ihren Cluster zugreifen möchten, um z. B. den Zugriff auf Ihren Cluster über Ihre lokale Maschine zu testen, können Sie stattdessen die DNS-Datensätze für Ihren Standort und Ihre Clusterunterdomänen so ändern, dass die öffentlichen IP-Adressen Ihrer Hosts verwendet werden.

Die Bereitstellung Ihres Standorts und Ihrer Clusterunterdomänen für Ihre berechtigten Clusterbenutzer außerhalb des privaten Netzes Ihrer Hosts wird für Workloads auf Produktionsebene nicht empfohlen.

  1. Überprüfen Sie die Standortunterdomänen und die Datensätze für die privaten IP-Adressen der Hosts, die im DNS für die Unterdomäne registriert sind.
    ibmcloud sat location dns ls --location <location_name_or_ID>
    
  2. Rufen Sie die übereinstimmenden öffentlichen IP-Adressen Ihrer Host ab.
    ibmcloud sat host ls --location <location_name_or_ID>
    
  3. Aktualisieren Sie den DNS-Datensatz der Standortunterdomäne mit den öffentlichen IP-Adressen jedes Hosts in der Steuerebene.
    ibmcloud sat location dns register --location <location_name_or_ID> --ip <host_IP> --ip <host_IP> --ip <host_IP>
    
  4. Bestätigen Sie, dass die öffentlichen IP-Adressen im DNS-Datensatz Ihres Standorts registriert sind.
    ibmcloud sat location dns ls --location <location_name_or_ID>
    
  5. Rufen Sie den Hostnamen für Ihren Cluster im Format <service_name>-<project>.<cluster_name>-<random_hash>-0000.upi.containers.appdomain.cloud ab und notieren Sie die private(n) IP(s), die automatisch registriert wurde(n).
    ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
    
  6. Fügen Sie die öffentlichen IP-Adressen der Hosts, die diesem Cluster als Workerknoten zugeordnet sind, zur Unterdomäne Ihres Clusters hinzu. Wiederholen Sie diesen Befehl für die öffentliche IP-Adresse aller Hosts.
    ibmcloud oc nlb-dns add --ip <public_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname>
    
  7. Entfernen Sie die privaten IP-Adressen aus der Clusterunterdomäne. Wiederholen Sie diesen Befehl für alle privaten IP-Adressen, die Sie zuvor abgerufen haben.
    ibmcloud oc nlb-dns rm classic --ip <private_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname>
    
  8. Überprüfen Sie, ob die öffentlichen IP-Adressen bei der Clusterunterdomäne registriert sind.
    ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
    

Über Virtual Private Endpoint Gateway auf VPC-Cluster zugreifen

Virtual Private Endpoint Gateway wird für VPC-Cluster automatisch erstellt. Der Kubernetes-Master ist über dieses Virtual Private Endpoint Gateway zugänglich, wenn berechtigte Clusterbenutzer mit derselben VPC verbunden sind, in der der Cluster bereitgestellt wird, z. B. über ein IBM Cloud VPC VPN. In diesem Fall ist kubeconfig mit dem Virtual Private Endpoint (VPE) URL konfiguriert, der ein privater DNS-Name ist und nur vom privaten DNS-Dienst IBM Cloud VPC aufgelöst werden kann. Die Adressen des privaten DNS-Servers lauten IBM Cloud VPC, 161.26.0.7 und 161.26.0.8.

Für Cluster, auf denen Version 4.13ausgeführt wird: Wenn Sie nur den privaten Cloud-Serviceendpunkt während der Clustererstellung aktiviert haben, wird der virtuelle private Endpunkt Ihrer VPC standardmäßig für den Zugriff auf Red Hat OpenShift-Komponenten wie Red Hat OpenShift Webkonsole oder OperatorHubverwendet. Sie müssen (z. B. über eine VPN-Verbindung) mit dem privaten VPC-Netz verbunden sein, um auf diese Komponenten zugreifen oder kubectl-Befehle für Ihren Cluster ausführen zu können. Beachten Sie, dass Sie für den Zugriff auf die Konsole über VPE in der Lage sein müssen, auf cloud.ibm.com zuzugreifen, was öffentliche Konnektivität erfordert.

  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. Für Client-zu-Site-VPN-Konfigurationen müssen Sie die IBM Cloud VPC Private DNS-Serviceadressen angeben, wenn Sie den VPN-Server wie in den Hinweisen beschrieben bereitstellen. Außerdem müssen Sie nach der Bereitstellung des VPN-Servers eine VPN-Route mit dem Ziel 161.26.0.0/16 und der Aktion translate erstellen.
    3. Für Site-to-Site-VPN-Konfigurationen müssen Sie die Anweisungen im Handbuch Zugriff auf Serviceendpunkte über VPN befolgen und die IBM Cloud VPC Private DNS-Serviceadressen konfigurieren.
    4. Stellen Sie sicher, dass Sie über Ihre IBM Cloud VPC VPN-Verbindung mit der VPC verbunden sind.
  2. Melden Sie sich mit einer der folgenden Optionen bei Ihrem Cluster an.

    • Anmeldung als Administrator:
      1. Vergewissern Sie sich, dass Sie über die Plattformzugriffsrolle Administrator für den Cluster verfügen.
      2. Legen Sie den Befehlszeilenkontext für den Cluster fest und laden Sie die TLS-Zertifikate und die entsprechenden Berechtigungsdateien für den Administrator herunter.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint vpe
        
    • Anmeldung mit einem API-Schlüssel: Weitere Informationen hierzu finden Sie unter API-Schlüssel zur Anmeldung bei Red Hat OpenShift verwenden.
    • Anmeldung mit IBM Cloud-Kenncode:
      1. Ermitteln Sie die VPE-Adresse und den Master URL in der Ausgabe des folgenden Befehls.
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. Öffnen Sie im Browser die folgende IBM Cloud IAM-Kenncode-Website.
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Melden Sie sich mit Ihrer IBMid an und kopieren Sie den Kenncode.
      4. Melden Sie sich mit dem Kenncode beim Cluster an.
        oc login -u passcode -p <iam_passcode> --server=https://<VPE_URL>:<port_from_the_master_URL>
        
        Das Anmeldeverfahren benachrichtigt das von einer unbekannten Stelle signierte Zertifikat, da es sich um ein selbst signiertes Zertifikat handelt, das von IBMgeneriert wurde.
  3. Stellen Sie sicher, dass die oc-Befehle für Ihren Cluster ordnungsgemäß über den Private-Cloud-Serviceendpunkt ausgeführt werden. Überprüfen Sie dazu die Version wie folgt.

    oc version
    

    Beispielausgabe

    Client Version: 4.5.0-0.okd-2020-09-04-180756
    Server Version: 4.5.35
    Kubernetes Version: v1.18.3+cdb0358
    

Auf Cluster über Automatisierungstools mithilfe eines API-Schlüssels zugreifen

Red Hat OpenShift on IBM Cloud ist mit IBM Cloud Identity and Access Management (IAM) integriert. Mit IAM können Sie Benutzer und Services authentifizieren, indem Sie ihre IAM-Identitäten verwenden und Aktionen mit Zugriffsrollen und -richtlinien autorisieren. Wenn Sie sich als Benutzer über die Konsole Red Hat OpenShift authentifizieren, wird Ihre IAM-Identität verwendet, um ein Red Hat OpenShift Login-Token zu generieren, mit dem Sie sich in der Befehlszeile anmelden können. Sie können die Anmeldung in Ihrem Cluster automatisieren, indem Sie einen IAM-API-Schlüssel für die IAM-Service-ID erstellen, die für den Befehl oc login verwendet werden soll.

API-Schlüssel für die Anmeldung bei Clustern verwenden

Sie können einen IBM Cloud IAM-API-Schlüssel erstellen und sich dann mit diesem API-Schlüssel bei einem Red Hat OpenShift-Cluster anmelden. Mit API-Schlüsseln können Sie die Berechtigungsnachweise eines einzelnen Benutzers oder eines gemeinsam genutzten Kontos für den Zugriff auf einen Cluster verwenden und müssen keine individuelle Anmeldung durchführen. Sie können auch einen API-Schlüssel für eine Service-ID erstellen. Weitere Informationen finden Sie in Informationen zu API-Schlüsseln.

  1. Erstellen Sie einen IBM Cloud-API-Schlüssel. Speichern Sie Ihren API-Schlüssel an einem sicheren Ort. Sie können den API-Schlüssel nicht erneut abrufen. Wenn Sie die Ausgabe in eine Datei auf Ihrem lokalen Rechner exportieren möchten, geben Sie die Option --file <path>/<file_name> an.

    ibmcloud iam api-key-create <name>
    
  2. Konfigurieren Sie Ihren Cluster so, dass der API-Schlüsselbenutzer zu den RBAC-Richtlinien des Clusters hinzugefügt und Ihr Cluster-Server als Sitzungskontext verwendet wird.

    1. Melden Sie sich bei IBM Cloud mit den Berechtigungsnachweisen für den API-Schlüssel an.
      ibmcloud login --apikey <API_key>
      
    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. Hinweis: Wenn Sie den Endpunkt des privaten Cloud-Dienstes aktiviert haben und ihn für den Clusterkontext verwenden möchten, fügen Sie die Option --endpoint private hinzu. Wenn Sie über den Private-Cloud-Serviceendpunkt die Verbindung zu Ihrem Cluster herstellen möchten, müssen Sie sich in Ihrem privaten IBM Cloud-Netz befinden oder über eine VPC-VPN-Verbindung mit dem privaten Netz oder (in der klassischen Infrastruktur) über eine klassische VPN-Verbindung bzw. IBM Cloud Direct Link verfügen.
      ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
      
  3. Tauschen Sie Ihre IBM Cloud IAM-API-Schlüsselanmeldeinformationen gegen ein Red Hat OpenShift Zugriffstoken aus. Sie können sich über die CLI oder über die API anmelden. Weitere Informationen finden Sie in der Red Hat OpenShift-Dokumentation.

    Melden Sie sich über die oc-CLI an: Melden Sie sich mit dem Befehl oc login an Ihrem Cluster an. Der Benutzername (-u) ist apikey und das Kennwort (-p) der Wert Ihres IBM Cloud IAM-API-Schlüssels. Um den Endpunkt des privaten Cloud-Dienstes zu verwenden, geben Sie die Option --server=<private_service_endpoint> an.

    oc login -u apikey -p <API_key> [--server=<private_service_endpoint>]
    

    Melden Sie sich an, indem Sie Red Hat OpenShift-API-Anforderungen direkt für Ihren Cluster ausführen: Melden Sie sich bei Ihrem Cluster mit der API an, beispielsweise über eine curl-Anforderung.

    1. Rufen Sie die Master-URL Ihres Clusters ab.

      ibmcloud oc cluster get -c <cluster_name_or_ID>
      

      Beispielausgabe

      NAME:                           mycluster
      ID:                             1234567
      State:                          normal
      Created:                        2020-01-22T19:22:16+0000
      Location:                       dal10
      Master URL:                     https://c100-e.<region>.containers.cloud.ibm.com:<port>
      ...
      
      
    2. Rufen Sie den Tokenendpunkt des Red Hat OpenShift oauth-Servers ab.

      curl <master_URL>/.well-known/oauth-authorization-server | jq -r .token_endpoint
      

      Beispielausgabe

      <token_endpoint>/oauth/token
      

      : bildschirm}

    3. Melden Sie sich mit dem zuvor abgerufenen Endpunkt beim Cluster an. Ersetzen Sie <URL> durch die <token_endpoint> des Servers oauth.

      Beispiel für curl-Anforderung:

      curl -u 'apikey:<API_key>' -H "X-CSRF-Token: a" '<URL>/oauth/authorize?client_id=openshift-challenging-client&response_type=token' -vvv
      
    4. Suchen Sie in der Antwort zum Standort wie im folgenden Beispiel das Zugriffstoken access_token

      < HTTP/1.1 302 Found
      < Cache-Control: no-cache, no-store, max-age=0, must-revalidate
      < Cache-Control: no-cache, no-store, max-age=0, must-revalidate
      < Expires: 0
      < Expires: Fri, 01 Jan 1990 00:00:00 GMT
      < Location: <token_endpoint>/oauth/token/implicit#access_token=<access_token>&expires_in=86400&scope=user%3Afull&token_type=Bearer
      ...
      
    5. Verwenden Sie Ihre Cluster-Master-URL und das Zugriffstoken, um auf die Red Hat OpenShift-API zuzugreifen (z. B. um alle Pods im Ihrem Cluster aufzulisten). Weitere Informationen finden Sie in der API-Dokumentation von Red Hat OpenShift.

      Beispiel für curl-Anforderung:

      curl -H "Authorization: Bearer <access_token>" '<master_URL>/api/v1/pods'
      

Service-ID für die Anmeldung bei Clustern verwenden

Sie können eine IBM Cloud IAM-Dienst-ID erstellen, einen API-Schlüssel für die Dienst-ID erstellen und sich dann mit dem API-Schlüssel bei einem Red Hat OpenShift-Cluster anmelden. Die Verwendung von Service-IDs kann sinnvoll sein, wenn Apps, die in anderen Clustern oder Clouds gehostet werden, auf die Services Ihres Clusters zugreifen können sollen. Da Service-IDs nicht an einen bestimmten Benutzer gebunden sind, können sich Ihre Apps authentifizieren, wenn einzelne Benutzer Ihr Konto verlassen. Weitere Informationen finden Sie in Service-IDs erstellen und verwenden.

  1. Erstellen Sie eine IBM Cloud IAM-Service-ID für Ihren Cluster, die für die IAM-Richtlinien und die API-Schlüsselberechtigungsnachweise verwendet wird. Stellen Sie sicher, dass Sie die Service-ID mit einer Beschreibung versehen, die Ihnen später beim Abrufen der Service-ID hilft, zum Beispiel indem Sie den Clusternamen einfügen.

    ibmcloud iam service-id-create <cluster_name>-id --description "Service ID for Red Hat OpenShift on IBM Cloud cluster <cluster_name>"
    

    Beispielausgabe

    NAME          <cluster_name>-id
    Description   Service ID for Red Hat OpenShift on IBM Cloud cluster <cluster_name>
    CRN           crn:v1:bluemix:public:iam-identity::a/1aa111aa1a11111aaa1a1111aa1aa111::serviceid:ServiceId-bbb2b2b2-2bb2-2222-b222-b2b2b2222b22
    Bound To      crn:v1:bluemix:public:::a/1aa111aa1a11111aaa1a1111aa1aa111:::
    Version       1-c3c333333333ccccc33333c33cc3cc33
    Locked        false
    UUID          ServiceId-bbb2b2b2-2bb2-2222-b222-b2b2b2222b22
    
  2. Erstellen Sie eine angepasste IBM Cloud IAM-Richtlinie für Ihre Cluster-Service-ID, die Zugriff auf Red Hat OpenShift on IBM Cloud erteilt.

    ibmcloud iam service-policy-create <cluster_service_ID> --service-name containers-kubernetes --roles <service_access_role> --service-instance <cluster_ID>
    
    Erläuterungen zu den Komponenten dieses Befehls
    Parameter Beschreibung
    <cluster_service_ID> Erforderlich. Geben Sie die Service-ID ein, die Sie zuvor für Ihren Red Hat OpenShift-Cluster erstellt haben.
    --service-name containers-kubernetes Erforderlich. Geben Sie containers-kubernetes ein, damit die IAM-Richtlinie für Red Hat OpenShift on IBM Cloud-Cluster verwendet wird.
    --roles <service_access_role> Erforderlich. Geben Sie die Zugriffsrolle ein, über die die Service-ID für den Red Hat OpenShift-Cluster verfügen soll. Plattformzugriffsrollen ermöglichen Aktivitäten zur Clusterverwaltung, z. B. das Erstellen von Workerknoten. Servicezugriffsrollen entsprechen RBAC-Rollen, die Red Hat OpenShift-Managementaktivitäten im Cluster ermöglichen (z. B. Aktivitäten zum Verwalten von Kubernetes-Ressourcen wie Pods und Namensbereichen). Verwenden Sie eine durch Kommas unterteilte Auflistung, wenn Sie mehrere Rollen angeben. Mögliche Werte sind Administrator, Operator, Editor und Viewer (Plattformzugriffsrollen) sowie Reader, Writer und Manager (Servicezugriffsrollen).
    --service-instance <cluster_ID> Geben Sie die ID eines Clusters ein, wenn die Richtlinie auf einen bestimmten Cluster beschränkt werden soll. Führen Sie den Befehl ibmcloud oc clusters aus, um Ihre Cluster-ID abzurufen. Wenn Sie die Serviceinstanz nicht einschließen, erteilt die Zugriffsrichtlinie der Service-ID Zugriff auf alle Cluster, Kubernetes und Red Hat OpenShift. Sie können die Zugriffsrichtlinie auf eine Region (--region) oder Ressourcengruppe (--resource-group-name) begrenzen.
  3. Erstellen Sie einen API-Schlüssel für die Service-ID. Benennen Sie den API-Schlüssel ähnlich Ihrer Service-ID und geben Sie die Service-ID an, die Sie zuvor erstellt haben: <cluster_name>-id. Stellen Sie sicher, dass Sie für den API-Schlüssel eine Beschreibung angeben, die Ihnen später das Abrufen des Schlüssels erleichtert. Speichern Sie Ihren API-Schlüssel an einem sicheren Ort. Sie können den API-Schlüssel nicht erneut abrufen. Wenn Sie die Ausgabe in eine Datei auf Ihrem lokalen Rechner exportieren möchten, geben Sie die Option --file <path>/<file_name> an.

    ibmcloud iam service-api-key-create <cluster_name>-key <service_ID> --description "API key for service ID <service_ID> in Red Hat OpenShift cluster <cluster_name>"
    

    Beispielausgabe

    Please preserve the API key! It can't be retrieved after it's created.
    
    Name          <cluster_name>-key
    Description   API key for service ID <service_ID> in Red Hat OpenShift cluster <cluster_name>
    Bound To      crn:v1:bluemix:public:iam-identity::a/1bb222bb2b33333ddd3d3333ee4ee444::serviceid:ServiceId-ff55555f-5fff-6666-g6g6-777777h7h7hh
    Created At    2019-02-01T19:06+0000
    API Key       i-8i88ii8jjjj9jjj99kkkkkkkkk_k9-llllll11mmm1
    Locked        false
    UUID          ApiKey-222nn2n2-o3o3-3o3o-4p44-oo444o44o4o4
    
  4. Konfigurieren Sie Ihren Cluster so, dass der Service-ID-Benutzer zu den RBAC-Richtlinien des Clusters hinzugefügt und Ihr Cluster-Server als Sitzungskontext verwendet wird.

    1. Melden Sie sich bei IBM Cloud mit den Berechtigungsnachweisen für den API-Schlüssel der Service-ID an.

      ibmcloud login --apikey <API_key>
      
    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. Hinweis: Wenn Sie den Endpunkt des privaten Cloud-Dienstes aktiviert haben und ihn für den Clusterkontext verwenden möchten, fügen Sie die Option --endpoint private hinzu. Wenn Sie über den Private-Cloud-Serviceendpunkt die Verbindung zu Ihrem Cluster herstellen möchten, müssen Sie sich in Ihrem privaten IBM Cloud-Netz befinden oder über eine VPC-VPN-Verbindung mit dem privaten Netz oder (in der klassischen Infrastruktur) über eine klassische VPN-Verbindung bzw. IBM Cloud Direct Link verfügen.

      ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
      
  5. Melden Sie sich mit dem API-Schlüssel der Service-ID bei Ihrem Red Hat OpenShift-Cluster an. Der Benutzername (-u) lautet apikey und als Kennwort (-p) wird der Wert Ihres API-Schlüssels verwendet. Um den Endpunkt des privaten Cloud-Dienstes zu verwenden, geben Sie die Option --server=<private_service_endpoint> an.

    oc login -u apikey -p <API_key> [--server=<private_service_endpoint>]
    
  6. Überprüfen Sie, ob die Service-ID die von Ihnen autorisierten Aktionen ausführen kann.

    Beispiel: Wenn Sie die Servicezugriffsrolle Reader zugeordnet haben, können mit der Service-ID Pods in Ihrem Red Hat OpenShift-Projekt aufgelistet werden.

    oc get pods
    

    Beispiel: Wenn Sie die Servicezugriffsrolle Manager zugeordnet haben, können mit der Service-ID die Benutzer in Ihrem Red Hat OpenShift-Cluster aufgelistet werden. Die ID Ihrer IAM-Service-ID befindet sich in der Ausgabe unter Identities. Andere Benutzer können durch ihre E-Mail-Adresse und IBMid ermittelt werden.

    oc get users
    

    Beispielausgabe

    NAME                           UID                                    FULL NAME   IDENTITIES
    IAM#                           dd44ddddd-d4dd-44d4-4d44-4d44d444d444              IAM:iam-ServiceId-bbb2b2b2-2bb2-2222-b222-b2b2b2222b22
    IAM#first.last@email.com       55555ee5-e555-55e5-e5e5-555555ee55ee               IAM:IBMid-666666FFF6
    

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 nur das Subnetz für den VPN- oder Direct Link-Tunnel in Ihren CBR-Regeln angeben, so dass nur autorisierte Benutzer in Ihrem Unternehmen von diesem Subnetz aus auf den Endpunkt des Private Cloud Service 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 administrative kubeconfig-Datei 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