Accesso ai cluster Classic tramite l'endpoint del servizio cloud privato
Per i cluster Classic di IBM Cloud Kubernetes Service in cui è abilitato solo l'endpoint del servizio cloud privato, è necessario esporre l'endpoint master tramite un NLB privato ed essere connessi alla rete privata Classic di IBM Cloud tramite una connessione VPN per accedere al cluster.
Prima di iniziare
- Installare gli strumenti CLI necessari.
- Configurare una Virtual Private Network (VPN) for VPC connessione alla rete privata classica di IBM Cloud.
- Verifica che il tuo cluster funzioni correttamente:
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID.
Esposizione dell'endpoint master tramite un NLB privato
Prima di potersi connettere al master del cluster tramite la rete privata, è necessario rendere accessibile l'endpoint del servizio cloud privato tramite un NLB privato.
-
Ottieni l'endpoint del servizio cloud privato URL e la porta corrispondente al tuo cluster.
ibmcloud ks cluster get -c CLUSTER_NAME_OR_IDIn questo output di esempio, l'URL dell'endpoint del servizio privato è
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. ... -
Crea un file YAML denominato “
kube-api-via-nlb.yaml”. Questo file YAML crea un servizioLoadBalancerprivato ed espone l'endpoint del servizio cloud privato tramite tale NLB. Sostituisci<private_service_endpoint_port>con la porta che hai individuato nel passaggio precedente.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 -
Per creare l'NLB privato, è necessario essere connessi al master cluster. Poiché non è ancora possibile connettersi tramite l'endpoint del servizio cloud privato da una VPN o dall' IBM Cloud Direct Link, è necessario connettersi al master del cluster e creare l'NLB utilizzando l'endpoint del servizio cloud pubblico o una dashboard.
-
Se hai abilitato solo l'endpoint del servizio cloud privato, puoi utilizzare la dashboard di Headlamp per creare l'NLB. Headlamp inoltra tutte le richieste all'endpoint del servizio cloud privato del master.
- Nella pagina " Cluster ", fare clic sul cluster a cui si desidera accedere.
- Ottieni il tuo sottodominio Ingress:
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID | grep "Ingress Subdomain". - Apri
https://headlamp.<ingress_subdomain>in un browser, effettua l'accesso e vai su + > Carica YAML. - Carica il file “
kube-api-via-nlb.yaml” e fai clic su “Applica ”. - Accedere a Rete > Servizi, verificare che il servizio "
kube-api-via-nlb" sia stato creato e prendere nota dell'indirizzo IP esterno "10.x.x.x". Questo indirizzo IP rende accessibile l'endpoint del servizio cloud privato per il master di Kubernetes sulla porta specificata nel file YAML.
-
Se hai abilitato anche l'endpoint del servizio cloud pubblico, hai già accesso al master.
- Scarica il file di configurazione
kubeconfigper il tuo cluster e aggiungilo al tuo filekubeconfigesistente in~/.kube/configo all'ultimo file nella variabile di ambienteKUBECONFIG.ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID - Crea l'NLB e l'endpoint.
kubectl apply -f kube-api-via-nlb.yaml - Verifica che l'NLB
kube-api-via-nlbvenga creato. Nell'output, annota l'indirizzo10.x.x.xEXTERNAL-IP. Questo indirizzo IP rende accessibile l'endpoint del servizio cloud privato per il master di Kubernetes sulla porta specificata nel file YAML.
In questo esempio di output, l'indirizzo IP dell'endpoint del servizio cloud privato del master di Kubernetes èkubectl 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> ...
- Scarica il file di configurazione
-
-
Sui computer client su cui voi o i vostri utenti eseguite i comandi di “
kubectl”, aggiungete l’indirizzo IP NLB e l’endpoint del servizio cloud privato URL al file/etc/hosts. Non includere alcuna porta nell'indirizzo IP e in URL e non includerehttps://in URL.- Per gli utenti di macOS e Linux:
sudo nano /etc/hosts ``` * Per gli utenti Windows: ```sh {: pre} notepad C:\Windows\System32\drivers\etc\hosts ``` A seconda delle autorizzazioni della tua macchina locale, potresti dover eseguire Blocco note come amministratore, per modificare il file degli host. ```sh {: codeblock} 10.186.92.42 c1.private.us-east.containers.cloud.ibm.com ``` -
Verifica di essere connesso alla rete privata tramite una connessione VPN o IBM Cloud Direct Link.
-
Scarica il file di configurazione
kubeconfigper il tuo cluster e aggiungilo al tuo filekubeconfigesistente in~/.kube/configo all'ultimo file nella variabile di ambienteKUBECONFIG.ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID --endpoint private -
Verifica che i comandi
kubectlvengano eseguiti correttamente e che il contesto Kubernetes sia impostato sul tuo cluster.kubectl config current-contextOutput di esempio
<cluster_name>/<cluster_ID>