Accès aux clusters classiques via le noeud final de service cloud privé
Pour les clusters IBM Cloud Kubernetes Service Classic sur lesquels seul le point de terminaison du service de cloud privé est activé, vous devez exposer le point de terminaison maître via un NLB privé et être connecté au réseau privé classique d' IBM Cloud via une connexion VPN pour accéder au cluster.
Avant de commencer
- Installez les outils CLI requis.
- Configurer une connexion Virtual Private Network (VPN) for VPC au réseau privé classique d’ IBM Cloud.
- Vérifiez que votre cluster fonctionne correctement :
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID.
Exposition du point de terminaison maître via un NLB privé
Avant de pouvoir vous connecter au maître du cluster via le réseau privé, vous devez exposer le point de terminaison du service cloud privé via un NLB privé.
-
Obtenez l'URL et le port de noeud final de service cloud privé pour votre cluster.
ibmcloud ks cluster get -c CLUSTER_NAME_OR_IDDans cet exemple de sortie, l'URL de noeud final de service privé est
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. ... -
Créez le fichier YAML
kube-api-via-nlb.yaml. Ce fichier YAML crée un serviceLoadBalancerprivé et exposé le noeud final de service cloud privé via cet équilibreur de charge de réseau. Remplacez<private_service_endpoint_port>par le port que vous avez trouvé à l'étape précédente.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 -
Pour créer le NLB privé, vous devez être connecté au maître cluster. Comme il n'est pas encore possible de se connecter via le point de terminaison du service cloud privé à partir d'un VPN ou d' IBM Cloud Direct Link, vous devez vous connecter au maître du cluster et créer le NLB à l'aide du point de terminaison du service cloud public ou d'un tableau de bord.
-
Si vous avez activé uniquement le point de terminaison du service de cloud privé, vous pouvez utiliser le tableau de bord Headlamp pour créer le NLB. Headlamp achemine toutes les requêtes vers le point de terminaison du service cloud privé du maître.
- Sur la page Clusters, cliquez sur le cluster auquel vous souhaitez accéder.
- Obtenez votre sous-domaine d'entrée :
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID | grep "Ingress Subdomain". - Ouvrez-le dans
https://headlamp.<ingress_subdomain>un navigateur, connectez-vous, puis accédez à + > Importer un fichier YAML. - Téléchargez le fichier
kube-api-via-nlb.yamlet cliquez sur Appliquer. - Accédez à Réseau > Services, vérifiez que le service
kube-api-via-nlba bien été créé, puis notez l'adresse **IP externe **10.x.x.x. Cette adresse IP expose le noeud final de service cloud privé pour le maître Kubernetes sur le port que vous avez spécifié dans votre fichier YAML.
-
Si vous avez également activé le noeud final de service cloud public, vous avez déjà accès au maître.
- Téléchargez et ajoutez le fichier de configuration
kubeconfigpour votre cluster à votrekubeconfigexistant dans~/.kube/configou le dernier fichier dans la variable d'environnementKUBECONFIG.ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID - Créez le NLB et le noeud final.
kubectl apply -f kube-api-via-nlb.yaml - Vérifiez que le NLB
kube-api-via-nlbest créé. Dans le résultat, notez l'adresse10.x.x.xEXTERNAL-IP. Cette adresse IP expose le noeud final de service cloud privé pour le maître Kubernetes sur le port que vous avez spécifié dans votre fichier YAML.
Dans cet exemple de sortie, l'adresse IP du noeud final de service cloud privé du maître Kubernetes estkubectl 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> ...
- Téléchargez et ajoutez le fichier de configuration
-
-
Sur les machines client où vous et vos utilisateurs exécutent des commandes
kubectl, ajoutez l'adresse IP NLB et l'URL de noeud final de service cloud privé au fichier/etc/hosts. N'incluez aucun port dans l'adresse IP et l'URL et n'incluez pashttps://dans l'URL.- Pour les utilisateurs macOS et Linux :
sudo nano /etc/hosts ``` * Pour les utilisateurs Windows : ```sh {: pre} notepad C:\Windows\System32\drivers\etc\hosts ``` En fonction des droits de votre machine locale, vous devrez peut-être exécuter Notepad en tant qu'administrateur pour éditer le fichier hosts. ```sh {: codeblock} 10.186.92.42 c1.private.us-east.containers.cloud.ibm.com ``` -
Vérifiez que vous êtes connecté au réseau privé via une connexion VPN ou IBM Cloud Direct Link.
-
Téléchargez et ajoutez le fichier de configuration
kubeconfigpour votre cluster à votrekubeconfigexistant dans~/.kube/configou le dernier fichier dans la variable d'environnementKUBECONFIG.ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID --endpoint private -
Vérifiez que les commandes
kubectls'exécutent correctement et que le contexte Kubernetes est défini sur votre cluster.kubectl config current-contextExemple de sortie
<cluster_name>/<cluster_ID>