Acceso a clústeres clásicos a través del punto final de servicio en la nube privado
En el caso de los clústeres clásicos de IBM Cloud Kubernetes Service que solo tienen habilitado el punto de conexión del servicio de nube privada, es necesario exponer el punto de conexión maestro a través de un NLB privado y estar conectado a la red privada clásica de IBM Cloud mediante una conexión VPN para acceder al clúster.
Antes de empezar
- Instala las herramientas de la interfaz de línea de comandos(CLI)necesarias.
- Configurar una conexión Virtual Private Network (VPN) for VPC a la red privada clásica de IBM Cloud.
- Comprueba que tu clúster funciona correctamente:
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID.
Exposición del punto final maestro a través de un NLB privado
Antes de poder conectarte al maestro del clúster a través de la red privada, debes exponer el punto final del servicio en la nube privada mediante un NLB privado.
-
Obtenga el puerto y el URL de punto final de servicio en la nube privado para el clúster.
ibmcloud ks cluster get -c CLUSTER_NAME_OR_IDEn esta salida de ejemplo, el URL de punto final de servicio privado es
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. ... -
Cree un archivo YAML denominado
kube-api-via-nlb.yaml. Este archivo YAML crea un servicioLoadBalancerprivado y expone el punto final de servicio en la nube privado a través de ese NLB. Sustituya<private_service_endpoint_port>por el puerto que ha encontrado en el paso anterior.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 -
Para crear el NLB privado, debe estar conectado al nodo maestro del clúster. Dado que todavía no es posible conectarse a través del punto de conexión del servicio en la nube privada desde una VPN o un IBM Cloud Direct Link o, debe conectarse al clúster maestro y crear el NLB utilizando el punto de conexión del servicio en la nube pública o un panel de control.
-
Si solo ha habilitado el punto final del servicio de nube privada, puede utilizar el panel de control de Headlamp para crear el NLB. Headlamp redirige todas las solicitudes al punto final del servicio en la nube privada del servidor maestro.
- En la página Clústeres, haz clic en el clúster al que quieras acceder.
- Consigue tu subdominio de Ingress:
ibmcloud ks cluster get -c CLUSTER_NAME_OR_ID | grep "Ingress Subdomain". - Ábrelo en
https://headlamp.<ingress_subdomain>un navegador, inicia sesión y ve a + > Subir YAML. - Sube el archivo
kube-api-via-nlb.yamly haz clic en Aplicar. - Vaya a Red > Servicios, compruebe que el servicio
kube-api-via-nlbse ha creado y anote la dirección **IP externa **10.x.x.x. Esta dirección IP expone el punto final de servicio en la nube privado para el nodo maestro de Kubernetes en el puerto que ha especificado en el archivo YAML.
-
Si también ha habilitado el punto final de servicio en la nube público, ya tiene acceso al nodo maestro.
- Descargue y añada el archivo de configuración
kubeconfigcorrespondiente a su clúster akubeconfigen~/.kube/configo al último archivo de la variable de entornoKUBECONFIG.ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID - Cree el NLB y el punto final.
kubectl apply -f kube-api-via-nlb.yaml - Verifique que se ha creado el NLB
kube-api-via-nlb. En la salida, anote la dirección10.x.x.xEXTERNAL-IP. Esta dirección IP expone el punto final de servicio en la nube privado para el nodo maestro de Kubernetes en el puerto que ha especificado en el archivo YAML.
En esta salida de ejemplo, la dirección IP correspondiente al punto final de servicio en la nube privado del nodo maestro de Kubernetes eskubectl 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> ...
- Descargue y añada el archivo de configuración
-
-
En las máquinas cliente en las que usted o sus usuarios ejecutan mandatos
kubectl, añada la dirección IP de NLB y el URL de punto final de servicio en la nube privado al archivo/etc/hosts. No incluya ningún puerto en la dirección IP y el URL y no incluyahttps://en el URL.- Para usuarios de macOS y Linux:
sudo nano /etc/hosts ``` * Para usuarios de Windows: ```sh {: pre} notepad C:\Windows\System32\drivers\etc\hosts ``` En función de los permisos de la máquina local, es posible que tenga que ejecutar el Bloc de notas como administrador para poder editar el archivo hosts. ```sh {: codeblock} 10.186.92.42 c1.private.us-east.containers.cloud.ibm.com ``` -
Verifique que está conectado a la red privada a través de una VPN o de una conexión de IBM Cloud Direct Link.
-
Descargue y añada el archivo de configuración
kubeconfigcorrespondiente a su clúster akubeconfigen~/.kube/configo al último archivo de la variable de entornoKUBECONFIG.ibmcloud ks cluster config -c CLUSTER_NAME_OR_ID --endpoint private -
Verifique que los mandatos
kubectlse ejecutan correctamente y que el contexto de Kubernetes establecido es su clúster.kubectl config current-contextSalida de ejemplo
<cluster_name>/<cluster_ID>