Über den Private-Cloud-Serviceendpunkt auf klassische Cluster zugreifen
Bei IBM Cloud Kubernetes Service Classic-Clustern, bei denen nur der Endpunkt für den Private-Cloud-Dienst aktiviert ist, müssen Sie den Master-Endpunkt über einen privaten NLB freigeben und über eine VPN-Verbindung mit dem klassischen privaten Netzwerk von IBM Cloud verbunden sein, um auf den Cluster zugreifen zu können.
Vorbereitende Schritte
- Installieren Sie die erforderlichen CLI-Tools.
- Richten Sie eine Virtual Private Network (VPN) for VPC-Verbindung zum klassischen privaten Netzwerk von IBM Cloud ein.
- Überprüfen Sie, ob Ihr Cluster einwandfrei funktioniert:
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID.
Bereitstellung des Master-Endpunkts über einen privaten NLB
Bevor Sie über das private Netzwerk eine Verbindung zum Cluster-Master herstellen können, müssen Sie den Endpunkt des privaten Cloud-Dienstes über einen privaten NLB freigeben.
-
Rufen Sie die URL und den Port des Private-Cloud-Serviceendpunkts für Ihren Cluster ab.
ibmcloud ks cluster get -c CLUSTER_NAME_OR_IDIn 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 derzeit noch keine Verbindung über den privaten Cloud-Service-Endpunkt von einem VPN oder IBM Cloud Direct Link aus herstellen können, müssen Sie eine Verbindung zum Cluster-Master herstellen und den NLB mithilfe des öffentlichen Cloud-Service-Endpunkts oder eines Dashboards erstellen.
-
Wenn Sie nur den Endpunkt für den Private-Cloud-Dienst aktiviert haben, können Sie das Headlamp-Dashboard verwenden, um den NLB anzulegen. Headlamp leitet alle Anfragen an den Endpunkt des privaten Cloud-Dienstes des Masters weiter.
- Klicken Sie auf der Seite Cluster auf den Cluster, auf den Sie zugreifen möchten.
- Holen Sie sich Ihre Ingress-Subdomain:
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID | grep "Ingress Subdomain". - Öffnen Sie die Seite in
https://headlamp.<ingress_subdomain>einem Browser, melden Sie sich an und navigieren Sie zu + > YAML hochladen. - Laden Sie die Datei
kube-api-via-nlb.yamlhoch und klicken Sie auf Übernehmen. - Navigieren Sie zu Netzwerk > Dienste, überprüfen Sie, ob der Dienst
kube-api-via-nlbangelegt wurde, und notieren Sie sich die Adresse10.x.x.xExterne IP-Adresse. 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: ```sh {: pre} 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. ```sh {: codeblock} 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>