IBM Cloud Docs
Acceso a clústeres de Red Hat OpenShift

Acceso a clústeres de Red Hat OpenShift

Después de crear el clúster de Red Hat® OpenShift® on IBM Cloud®, puede empezar a trabajar con el clúster accediendo al mismo.

Requisitos previos

  1. Instale las herramientas de CLI necesarias. Para acceder rápidamente a las características de prueba del clúster, también puede utilizar IBM Cloud Shell.
  2. Cree el clúster de Red Hat OpenShift.
  3. Si la red está protegida por un cortafuegos de empresa, permita el acceso a los puertos y puntos finales de la API de IBM Cloud y de Red Hat OpenShift on IBM Cloud. Para los clústeres de VPC con solo el punto final de servicio de nube privada habilitado, no puede probar la conexión con el clúster hasta que configure una VPN de VPC con la subred de punto final de servicio de nube.
  4. Compruebe que el clúster está en buen estado ejecutando ibmcloud oc cluster get -c <cluster_name_or_ID>. Si el clúster no está en buen estado, consulte la guía de Depuración de clústeres para obtener ayuda. Por ejemplo, si el clúster se suministra en una cuenta que está protegida por un dispositivo de pasarela de cortafuegos, debe configurar los valores del cortafuegos para permitir el tráfico de salida a los puertos y direcciones IP apropiados.
  5. Localice el punto final de servicio del clúster.
  6. Si algún usuario de tu cuenta utiliza autenticación multifactor (MFA) como TOTP, asegúrate de habilitarla para todos los usuarios a nivel de cuenta. Para utilizar MFA, debe habilitarse a nivel de cuenta para evitar errores de autenticación.

Acceso a clústeres a través del punto final de servicio en la nube público

Para los clústeres de Red Hat OpenShift con un punto final de servicio en la nube público, puede iniciar la sesión en el clúster desde la consola o la CLI.

Conexión al clúster desde la consola

Puede acceder rápidamente al clúster de Red Hat OpenShift on IBM Cloud desde la consola.

  1. En la consola, haga clic en el clúster al que desea acceder.
  2. Pulse Consola web de Red Hat OpenShift.
  3. Para seguir trabajando en la línea de mandatos, pulse el nombre de perfil, tales como IAM#name@email.com y, a continuación, pulse Copiar mandato de inicio de sesión. En función de la versión de clúster, inicie la sesión en el clúster desde la línea de mandatos de la siguiente manera.
    • Versión 4: pulse Mostrar señal, copie el mandato oc login y péguelo en la línea de mandatos.

Por motivos de seguridad, primero salga de la consola de IBM Cloud y, a continuación, cierre la sesión de la consola web de Red Hat OpenShift antes de cerrar el navegador. Debe realizar ambos pasos en el orden especificado para cerrar la sesión correctamente en la consola web de Red Hat OpenShift.

¿Qué hacer a continuación?
Pruebe Despliegue de apps mediante la consola.

Conexión al clúster desde la CLI

Normalmente, puede utilizar la consola web de Red Hat OpenShift para obtener la señal de oc login para acceder al clúster. Si no puede o no desea abrir la consola de Red Hat OpenShift, puede elegir las opciones siguientes para iniciar una sesión en el clúster de Red Hat OpenShift on IBM Cloud utilizando la CLI.

Elija una de las opciones siguientes:

  • Inicie la sesión como administrador:
    1. Asegúrese de que tiene el rol de acceso a la plataforma de Administrador sobre el clúster.
    2. Descargue el contexto de línea de mandatos para el clúster y descargue los certificados TLS y los archivos de permisos para el rol de administrador.
      ibmcloud oc cluster config -c <cluster_name_or_ID> --admin
      
  • Inicie la sesión con una clave de API: consulte Utilización de una clave de API para iniciar la sesión en Red Hat OpenShift.
  • Inicie la sesión con el código de acceso de IBM Cloud:
    1. Obtenga el URL maestro del clúster en la salida del siguiente mandato.
      ibmcloud oc cluster get -c <cluster_name_or_ID>
      
    2. En el navegador, abra el siguiente sitio web de código de acceso de IBM Cloud IAM.
      https://iam.cloud.ibm.com/identity/passcode
      
    3. Inicie la sesión con IBMid y copie el código de acceso.
    4. Inicie la sesión en el clúster con el código de acceso.
      oc login -u passcode -p <iam_passcode> --server=<master_URL>
      

Acceso a clústeres a través del punto final de servicio en la nube privado

Permitir a los usuarios de clúster autorizados acceder al clúster VPC o clásico a través del punto final de servicio en la nube privado.

¿Desea configurar una VPN para conectarse a su clúster desde su máquina local? Consulte Acceso a clústeres privados utilizando la VPN de Wireguard.

Acceso a clústeres de VPC a través del punto final de servicio en la nube privado

El maestro de Red Hat OpenShift es accesible a través del punto final de servicio en la nube privado si los usuarios del clúster autorizados están en su red privada de IBM Cloud o están conectados a la red privada, como por ejemplo a través de una conexión VPN de VPC. Sin embargo, la comunicación con el maestro de Kubernetes a través del punto final de servicio en la nube privado debe pasar por el rango de direcciones IP 166.X.X.X, que debe configurar en la pasarela de VPN y la configuración de conexión.

  1. Configure la VPN de IBM Cloud VPC y conéctese a la red privada a través de la VPN.

    1. Configure una pasarela VPN en la máquina local. Por ejemplo, puede configurar StrongSwan en la máquina.
    2. Cree una pasarela VPN en la VPC y cree la conexión entre la pasarela VPN de VPC y la pasarela VPN local. En la sección Nueva conexión VPN para VPC, añada la subred 166.8.0.0/14 al campo Subredes locales. Si tiene un clúster multizona, repita este paso para configurar una pasarela de VPC en una subred en cada zona en la que tenga nodos trabajadores.
    3. Verifique que está conectado a la red privada a través de la conexión VPN de IBM Cloud VPC.
  2. Para iniciar sesión en el clúster, elija entre las opciones siguientes.

    • Inicie la sesión como administrador:
      1. Asegúrese de que tiene el rol de acceso a la plataforma de Administrador sobre el clúster.
      2. Descargue el contexto de línea de mandatos para el clúster y descargue los certificados TLS y los archivos de permisos para el rol de administrador.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
        
    • Inicie la sesión con una clave de API: consulte Utilización de una clave de API para iniciar la sesión en Red Hat OpenShift.
    • Inicie la sesión con el código de acceso de IBM Cloud:
      1. Obtenga el URL del punto final de servicio privado del clúster en la salida del siguiente mandato.
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. En el navegador, abra el siguiente sitio web de código de acceso de IBM Cloud IAM.
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Inicie la sesión con IBMid y copie el código de acceso.
      4. Inicie la sesión en el clúster con el código de acceso.
        oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
        
  3. Compruebe que los mandatos oc se ejecutan correctamente con el clúster a través del punto final de servicio en la nube privado comprobando la versión.

    oc version
    

    Salida de ejemplo

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

Acceso a clústeres clásicos a través del punto final de servicio en la nube privado

Se puede acceder al maestro de Red Hat OpenShift a través del punto final de servicio en la nube privado si usuarios de clúster autorizados están en la red privada de IBM Cloud o están conectados a la red privada, como por ejemplo a través de una conexión de VPN clásica o IBM Cloud Direct Link. Sin embargo, la comunicación con el nodo maestro de Kubernetes sobre el punto final de servicio en la nube privado debe pasar a través del rango de direcciones IP 166.X.X.X, que no se puede direccionar desde una conexión VPN clásica ni a través de IBM Cloud Direct Link. Puede exponer el punto final de servicio en la nube privado del nodo maestro para los usuarios del clúster utilizando un equilibrador de carga de red (NLB) privado. El NLB privado expone el punto final de servicio en la nube privado del nodo maestro como un rango de direcciones IP 10.X.X.X interno al que pueden acceder los usuarios con la VPN o con la conexión de IBM Cloud Direct Link. Si habilita solo el punto final de servicio en la nube privado, puede utilizar la consola web de Red Hat OpenShift para crear el NLB privado.

  1. Inicie sesión en el clúster de Red Hat OpenShift mediante el punto final de servicio en la nube público.

  2. Obtenga el puerto y el URL de punto final de servicio en la nube privado para el clúster.

    ibmcloud oc cluster get -c <cluster_name_or_ID>
    

    En esta salida de ejemplo, el URL de punto final de servicio privado es 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. Cree un archivo YAML llamado oc-api-via-nlb.yaml. Este archivo YAML crea un servicio LoadBalancer privado 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: 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. Para crear el NLB y el punto final privados:

    1. Aplique el archivo de configuración que ha creado anteriormente.
      oc apply -f oc-api-via-nlb.yaml
      
    2. Verifique que se ha creado el NLB oc-api-via-nlb. En la salida, anote la dirección 10.x.x.x EXTERNAL-IP. Esta dirección IP expone el punto final de servicio en la nube privado para el nodo maestro de clúster en el puerto que ha especificado en el archivo YAML.
      oc get svc -o wide
      
      En esta salida de ejemplo, la dirección IP correspondiente al punto final de servicio en la nube privado del nodo maestro es 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. En las máquinas cliente en las que usted o sus usuarios ejecutan mandatos oc, 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 incluya https:// en el URL.

    • Para usuarios de macOS y Linux:

      sudo nano /etc/hosts
      
    • Para usuarios de Windows:

      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.

      Texto de ejemplo que añadir:

      10.186.92.42      c1.private.us-east.containers.cloud.ibm.com
      
  6. Verifique que está conectado a la red privada a través de una VPN o de una conexión de IBM Cloud Direct Link.

  7. Inicie sesión en el clúster seleccionando una de las opciones siguientes.

    • Inicie la sesión como administrador:
      1. Asegúrese de que tiene el rol de acceso a la plataforma de Administrador sobre el clúster.
      2. Descargue el contexto de línea de mandatos para el clúster y descargue los certificados TLS y los archivos de permisos para el rol de administrador.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
        
    • Inicie la sesión con una clave de API: consulte Utilización de una clave de API para iniciar la sesión en Red Hat OpenShift.
    • Inicie la sesión con el código de acceso de IBM Cloud:
      1. Obtenga el URL del punto final de servicio privado del clúster en la salida del siguiente mandato.
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. En el navegador, abra el siguiente sitio web de código de acceso de IBM Cloud IAM.
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Inicie la sesión con IBMid y copie el código de acceso.
      4. Inicie la sesión en el clúster con el código de acceso.
        oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
        
  8. Compruebe que los mandatos oc se ejecutan correctamente con el clúster a través del punto final de servicio en la nube privado comprobando la versión.

    oc version
    

    Salida de ejemplo

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

Acceso a clústeres de Red Hat OpenShift en Satellite

Después de crear un clúster de Red Hat OpenShift en la ubicación de Satellite, puede empezar a trabajar con el clúster accediendo al clúster.

Cuando acceda a su clúster y ejecute los comandos oc get nodes o oc describe node <worker_node>, es posible que vea que los nodos trabajadores tienen asignados roles master,worker. En los clústeres de OpenShift Container Platform, los operadores utilizan el rol maestro como nodeSelector para que OCP pueda desplegar componentes predeterminados controlados por operadores, como el registro interno, en el clúster. Los hosts de Satellite que ha asignado a la función de clúster solo como nodos trabajadores, no como procesos de nodo maestro, como el servidor de API o el planificador de Kubernetes, se ejecutan en los nodos trabajadores.

Acceso a clústeres a través del URL del servicio de clúster

Conéctese al clúster a través de su URL de servicio. Este URL es uno de los subdominios de ubicación de Satellite y un puerto de nodo, que tiene el formato https://p1iuql40jam23qiuxt833-q9err0fiffbsar61e78vv6e7ds8ne1tx-ce00.us-east.satellite.appdomain.cloud:30710.

Si los hosts de ubicación solo tienen conectividad de red privada, o si utiliza hosts de Amazon Web Services, Google Cloud Platform y Microsoft Azure, debe estar conectado a la red privada del host, como por ejemplo a través del acceso VPN, para conectarse al clúster y acceder a la consola web de Red Hat OpenShift. Como alternativa, si los hosts tienen conectividad de red pública, puede probar el acceso al clúster cambiando los registros de DNS del clúster y la ubicación para utilizar las direcciones IP públicas del host.

Puede acceder rápidamente al clúster de Red Hat OpenShift on IBM Cloud desde la consola.

  1. En la consola, haga clic en el clúster al que desea acceder.
  2. Pulse Consola web de Red Hat OpenShift.
  3. Pulse el nombre del perfil, como por ejemplo IAM#name@email.com, y a continuación pulse Copiar mandato de inicio de sesión.
  4. Pulse Mostrar señal y copie el mandato oc login.
  5. Pegue el mandato en la línea de mandatos.

Por motivos de seguridad, primero salga de la consola de IBM Cloud y, a continuación, cierre la sesión de la consola web de Red Hat OpenShift antes de cerrar el navegador. Debe realizar ambos pasos en el orden especificado para cerrar la sesión correctamente en la consola web de Red Hat OpenShift.

Si no puede o no desea abrir la consola de Red Hat OpenShift, puede elegir las opciones siguientes para iniciar una sesión en el clúster de Red Hat OpenShift on IBM Cloud utilizando la CLI.

Acceso a clústeres desde la red pública

Si los hosts tienen conectividad de red pública, y desea acceder al clúster desde su máquina local sin estar conectado a la red privada del host, puede actualizar el subdominio del clúster y el registro de DNS de la ubicación para utilizar las direcciones IP públicas de los hosts.

Para la mayoría de las configuraciones de ubicación, las direcciones IP privadas de los hosts se registran para el registro de DNS de la ubicación para que pueda acceder al clúster solo si está conectado a la red privada del proveedor de la nube.

Por ejemplo, si utiliza hosts de Amazon Web Services, Google Cloud Platform o Microsoft Azure, o si la interfaz de red predeterminada de los hosts es privada, el registro DNS de la ubicación solo es accesible en la red privada.

Para ejecutar los mandatos kubectl u oc en el clúster o acceder a la consola web de Red Hat OpenShift, debe estar conectado a la red privada de los hosts, como por ejemplo a través del acceso VPN. Sin embargo, si desea acceder al clúster desde la red pública, como para probar el acceso al clúster desde la máquina local, puede cambiar los registros de DNS para la ubicación y los subdominios del clúster para utilizar las IP públicas de los hosts en su lugar.

No se recomienda poner a disposición de los usuarios autorizados del clúster su ubicación y subdominios de clúster fuera de la red privada de sus hosts para las cargas de trabajo a nivel de producción.

  1. Revise los subdominios de ubicación y compruebe los Registros para las direcciones IP privadas de los hosts que están registrados en el DNS para el subdominio.
    ibmcloud sat location dns ls --location <location_name_or_ID>
    
  2. Recupere las direcciones IP públicas coincidentes de los hosts.
    ibmcloud sat host ls --location <location_name_or_ID>
    
  3. Actualice el registro DNS de subdominio de ubicación con las direcciones IP públicas de cada host en el panel de control.
    ibmcloud sat location dns register --location <location_name_or_ID> --ip <host_IP> --ip <host_IP> --ip <host_IP>
    
  4. Verifique que las direcciones IP públicas estén registradas con el registro DNS de la ubicación.
    ibmcloud sat location dns ls --location <location_name_or_ID>
    
  5. Obtenga el Nombre de host del clúster con el formato <service_name>-<project>.<cluster_name>-<random_hash>-0000.upi.containers.appdomain.cloud y anote las IP privada que se hayan registrado automáticamente.
    ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
    
  6. Añada las direcciones IP públicas de los hosts asignados como nodos trabajadores a este clúster al subdominio del clúster. Repita este mandato para la dirección IP pública de cada host.
    ibmcloud oc nlb-dns add --ip <public_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname>
    
  7. Elimine las direcciones IP privadas del subdominio del clúster. Repita este mandato para todas las direcciones IP privadas que ha recuperado anteriormente.
    ibmcloud oc nlb-dns rm classic --ip <private_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname>
    
  8. Verifique que las direcciones IP públicas están registradas con el subdominio del clúster.
    ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
    

Acceso a clústeres de VPC a través de Virtual Private Endpoint Gateway

Virtual Private Endpoint Gateway se crea automáticamente para los clústeres de VPC. Se puede acceder al maestro de Kubernetes a través de esta pasarela de punto final privado virtual si los usuarios autorizados del clúster están conectados a la misma VPC donde se ha desplegado el clúster, como por ejemplo a través de una VPN deIBM Cloud VPC. En este caso, el kubeconfig está configurado con el punto final privado virtual (VPE) URL, que es un nombre DNS privado y solo puede resolverse mediante el servicio DNS privado de IBM Cloud VPC. Las direcciones del servidor DNS privado de IBM Cloud VPC son 161.26.0.7 y 161.26.0.8.

Para clústeres que ejecutan la versión 4.13: Si solo ha habilitado el punto final de servicio de nube privada durante la creación del clúster, el punto final privado virtual de la VPC se utiliza de forma predeterminada para acceder a los componentes Red Hat OpenShift como, por ejemplo, la consola web de Red Hat OpenShift u OperatorHub. Debe estar conectado a la red privada de VPC, por ejemplo a través de una conexión VPN, para acceder a estos componentes o ejecutar mandatos kubectl en el clúster. Tenga en cuenta que para acceder a la consola a través de VPE, debe poder acceder a cloud.ibm.com, que requiere conectividad pública.

  1. Configure la VPN de IBM Cloud VPC y conéctese a la VPC a través de VPN.

    1. Configure una VPN de de cliente a sitio o de sitio a sitio en la VPC. Por ejemplo, puede optar por configurar una conexión de cliente a sitio con un cliente VPN.
    2. Para configuraciones de VPN de cliente a sitio, debe especificar las IBM Cloud VPC direcciones de servicio DNS privadas cuando suministre el servidor VPN tal como se menciona en las consideraciones. También debe crear una ruta VPN después de suministrar el servidor VPN, con el destino 161.26.0.0/16 y la acción translate.
    3. Para configuraciones de VPN de sitio a sitio, debe seguir la Guía de acceso a puntos finales de servicio a través de VPN y configurar las direcciones de servicio DNS privado de IBM Cloud VPC.
    4. Compruebe que está conectado a la VPC a través de su conexión VPN IBM Cloud VPC.
  2. Para iniciar sesión en el clúster, elija entre las opciones siguientes.

    • Inicie la sesión como administrador:
      1. Asegúrese de que tiene el rol de acceso a la plataforma de Administrador sobre el clúster.
      2. Descargue el contexto de línea de mandatos para el clúster y descargue los certificados TLS y los archivos de permisos para el rol de administrador.
        ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint vpe
        
    • Inicie la sesión con una clave de API: consulte Utilización de una clave de API para iniciar la sesión en Red Hat OpenShift.
    • Inicie la sesión con el código de acceso de IBM Cloud:
      1. Obtén la dirección VPE y la principal URL en el resultado del siguiente comando.
        ibmcloud oc cluster get -c <cluster_name_or_ID>
        
      2. En el navegador, abra el siguiente sitio web de código de acceso de IBM Cloud IAM.
        https://iam.cloud.ibm.com/identity/passcode
        
      3. Inicie la sesión con IBMid y copie el código de acceso.
      4. Inicie la sesión en el clúster con el código de acceso.
        oc login -u passcode -p <iam_passcode> --server=https://<VPE_URL>:<port_from_the_master_URL>
        
        El procedimiento de inicio de sesión notificará dicho certificado firmado por una autoridad desconocida, ya que es un certificado autofirmado generado por IBM.
  3. Compruebe que los mandatos oc se ejecutan correctamente con el clúster a través del punto final de servicio en la nube privado comprobando la versión.

    oc version
    

    Salida de ejemplo

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

Acceso a clústeres desde herramientas de automatización mediante una clave de API

Red Hat OpenShift on IBM Cloud está integrado con IBM Cloud Identity and Access Management (IAM). Con IAM, puede autenticar usuarios y servicios mediante sus identidades de IAM y autorizar acciones con políticas y roles de acceso. Cuando se autentica como usuario a través de la consola Red Hat OpenShift, su identidad IAM se utiliza para generar un token de inicio de sesión Red Hat OpenShift que puede utilizar para iniciar sesión en la línea de comandos. Puede automatizar el inicio de sesión en el clúster creando una clave de API de IAM o ID de servicio para utilizarla con el mandato oc login.

Utilización de una clave de API para iniciar sesión en clústeres

Puede crear una clave de API de IAM en IBM Cloud y utilizarla para iniciar sesión en un clúster de Red Hat OpenShift. Con claves de API, puede utilizar las credenciales de un usuario o de una cuenta compartida para acceder a un clúster, en lugar de iniciar sesión individualmente. También puede crear una clave de API para un ID de servicio. Para obtener más información, consulte Visión general de las claves de API.

  1. Cree una clave de API de IBM Cloud. Guarde la clave de API en un lugar seguro. No puede volver a recuperar la clave de API. Si desea exportar la salida a un archivo en su máquina local, incluya la opción --file <path>/<file_name>.

    ibmcloud iam api-key-create <name>
    
  2. Configure el clúster para añadir el usuario de la clave de API a las políticas de RBAC del clúster y para definir el contexto de sesión ante el servidor del clúster.

    1. Inicie una sesión en IBM Cloud con las credenciales de API.
      ibmcloud login --apikey <API_key>
      
    2. Descargue y añada el archivo de configuración kubeconfig correspondiente a su clúster a kubeconfig en ~/.kube/config o al último archivo de la variable de entorno KUBECONFIG. Nota: Si ha activado el punto final del servicio de nube privada y desea utilizarlo para el contexto de clúster, incluya la opción --endpoint private. Para utilizar el punto final de servicio en la nube privado para conectarse al clúster, debe estar en la red privada de IBM Cloud o conectado a la red privada a través de una conexión VPN de VPC, o, para la infraestructura clásica, a través de una conexión VPN clásica o IBM Cloud Direct Link.
      ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
      
  3. Cambie sus credenciales de clave de API de IAM de IBM Cloud por un token de acceso de Red Hat OpenShift. Puede iniciar una sesión desde la CLI o desde la API. Para obtener más información, consulte la documentación deRed Hat OpenShift.

    Inicie una sesión utilizando la CLI de oc: Inicie una sesión en el clúster con el mandato oc login. El nombre de usuario (-u) es apikey y la contraseña (-p) es el valor de la clave de API de IBM Cloud IAM. Para utilizar el punto final del servicio de nube privada, incluya la opción --server=<private_service_endpoint>.

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

    Inicie una sesión ejecutando las solicitudes de API de Red Hat OpenShift directamente en el clúster: Inicie una sesión en el clúster con la API como, por ejemplo, a través de una solicitud de curl.

    1. Obtenga el URL maestro del clúster.

      ibmcloud oc cluster get -c <cluster_name_or_ID>
      

      Salida de ejemplo

      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. Obtenga el punto final de señal del servidor Red Hat OpenShift oauth.

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

      Salida de ejemplo

      <token_endpoint>/oauth/token
      

      : pantalla}

    3. Inicie sesión en el clúster con el punto final que ha recuperado anteriormente. Sustituya <URL> por el <token_endpoint> del servidor oauth.

      Ejemplo de solicitud de curl:

      curl -u 'apikey:<API_key>' -H "X-CSRF-Token: a" '<URL>/oauth/authorize?client_id=openshift-challenging-client&response_type=token' -vvv
      
    4. En la respuesta Location, busque el access_token, como por ejemplo en el siguiente ejemplo.

      < 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. Utilice el URL maestro de clúster y la señal de acceso para acceder a la API de Red Hat OpenShift, como por ejemplo para listar todos los pods del clúster. Para obtener más información, consulte la documentación de la API de Red Hat OpenShift.

      Ejemplo de solicitud de curl:

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

Utilización de un ID de servicio para iniciar sesión en clústeres

Puede crear un ID de servicio IAM en IBM Cloud, crear una clave API para el ID de servicio y, a continuación, utilizar la clave API para iniciar sesión en un clúster de Red Hat OpenShift. Puede utilizar los ID de servicio para que las apps alojadas en otros clústeres o en otras nubes puedan acceder a los servicios del clúster. Como los ID de servicios no están vinculados a un usuario específico, las apps se pueden autenticar si usuarios individuales abandonan la cuenta. Para obtener más información, consulte Cómo crear y trabajar con ID de servicio.

  1. Cree un ID de servicio de IBM Cloud IAM para el clúster que se utiliza para las políticas de IAM y las credenciales de clave de API. Asegúrese de proporcionar al ID de servicio una descripción que le ayude a recuperar el ID de servicio posteriormente; por ejemplo, puede incluir el nombre del clúster.

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

    Salida de ejemplo

    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. Cree una política de IBM Cloud IAM personalizada para el ID de servicio del clúster que otorgue acceso a Red Hat OpenShift on IBM Cloud.

    ibmcloud iam service-policy-create <cluster_service_ID> --service-name containers-kubernetes --roles <service_access_role> --service-instance <cluster_ID>
    
    Descripción de los componentes de este mandato
    Parámetro Descripción
    <cluster_service_ID> Obligatorio. Especifique el ID de servicio que ha creado anteriormente para el clúster de Red Hat OpenShift.
    --service-name containers-kubernetes Obligatorio. Especifique containers-kubernetes para que la política de IAM se aplique a clústeres de Red Hat OpenShift on IBM Cloud.
    --roles <service_access_role> Obligatorio. Especifique el rol de acceso que desea que tenga el ID de servicio en el clúster de Red Hat OpenShift. Los roles de acceso a la plataforma permiten actividades de gestión de clústeres, como crear nodos trabajadores. Los roles de acceso al servicio corresponden a roles de RBAC que permiten actividades de gestión de Red Hat OpenShift dentro del clúster, como por ejemplo para recursos de Kubernetes como pods y espacios de nombres. Para varios roles, incluya una lista separada por comas. Los valores posibles son Administrator, Operator, Editor y Viewer (roles de acceso a la plataforma); y Reader, Writer y Manager (roles de acceso al servicio).
    --service-instance <cluster_ID> Para restringir la política a un determinado clúster, especifique el ID del clúster. Para obtener el ID de clúster, ejecute ibmcloud oc clusters. Si no incluye la instancia de servicio, la política de acceso otorga el acceso de ID de servicio a todos los clústeres, Kubernetes y Red Hat OpenShift. También puede limitar la política de acceso a una región (--region) or resource group (--resource-group-name).
  3. Cree una clave de API para el ID de servicio. Asigne a la clave de API un nombre parecido al ID de servicio e incluya el ID de servicio creado anteriormente, <cluster_name>-id. Asegúrese de especificar para la clave de API una descripción que le ayude a recuperar la clave posteriormente. Guarde la clave de API en un lugar seguro. No puede volver a recuperar la clave de API. Si desea exportar la salida a un archivo en su máquina local, incluya la opción --file <path>/<file_name>.

    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>"
    

    Salida de ejemplo

    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. Configure el clúster para añadir el ID de servicio a las políticas de RBAC del clúster y para definir el contexto de sesión ante el servidor del clúster.

    1. Inicie una sesión en IBM Cloud con las credenciales de API del ID de servicio.

      ibmcloud login --apikey <API_key>
      
    2. Descargue y añada el archivo de configuración kubeconfig correspondiente a su clúster a kubeconfig en ~/.kube/config o al último archivo de la variable de entorno KUBECONFIG. Nota: Si ha activado el punto final del servicio de nube privada y desea utilizarlo para el contexto de clúster, incluya la opción --endpoint private. Para utilizar el punto final de servicio en la nube privado para conectarse al clúster, debe estar en la red privada de IBM Cloud o conectado a la red privada a través de una conexión VPN de VPC, o, para la infraestructura clásica, a través de una conexión VPN clásica o IBM Cloud Direct Link.

      ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
      
  5. Utilice la clave de API del ID de servicio para iniciar la sesión en el clúster de Red Hat OpenShift. El nombre de usuario (-u) es apikey y la contraseña (-p) es el valor de la clave de API. Para utilizar el punto final del servicio de nube privada, incluya la opción --server=<private_service_endpoint>.

    oc login -u apikey -p <API_key> [--server=<private_service_endpoint>]
    
  6. Verifique que el ID de servicio puede realizar las acciones que ha autorizado.

    Ejemplo: si ha asignado el rol de acceso al servicio de Reader, el ID de servicio puede ver la lista de pods del proyecto de Red Hat OpenShift.

    oc get pods
    

    Ejemplo: si ha asignado un rol de acceso al servicio de Manager, el ID de servicio puede ver la lista de usuarios del clúster de Red Hat OpenShift. El ID del servicio IAM se encuentra bajo Identities en la salida. Otros usuarios individuales se pueden identificar por su dirección de correo electrónico y su IBMid.

    oc get users
    

    Salida de ejemplo

    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
    

Protección de clusters mediante restricciones basadas en el contexto

Ya no se admiten las listas de puntos finales de servicios privados. Migrar de las listas privadas de puntos finales de servicio a las restricciones basadas en el contexto lo antes posible. Para conocer los pasos específicos de la migración, consulte Migración de una lista de permisos de punto final de servicio privado a restricciones basadas en contexto(CBR).

Controle el acceso a sus puntos finales de servicio públicos y privados mediante reglas de restricción basadas en el contexto (CBR).

Después de conceder a los usuarios acceso a su clúster a través de IBM Cloud IAM, puede añadir una capa secundaria de seguridad mediante la creación de reglas CBR para el punto final de servicio público y privado de su clúster. Sólo se permitirán las solicitudes autorizadas a su maestro de clúster que se originen en subredes incluidas en las reglas CBR.

Si desea permitir solicitudes desde una VPC diferente a aquella en la que se encuentra su clúster, debe incluir la dirección IP del punto final del servicio en la nube para esa VPC en las reglas CBR.

Por ejemplo, para acceder al punto final de servicio en la nube privado del clúster, debe conectarse a la red clásica o a la red de VPC de IBM Cloud mediante una VPN o IBM Cloud Direct Link. Puede especificar sólo la subred para el túnel VPN o Direct Link a sus reglas CBR para que sólo los usuarios autorizados de su organización puedan acceder al punto final del servicio de nube privada desde esa subred.

Las reglas CBR públicas (si su clúster tiene un punto final de servicio público) también pueden ayudar a evitar que los usuarios accedan a su clúster una vez revocada su autorización. Cuando un usuario abandone la organización, eliminará sus permisos de IBM Cloud IAM que le otorgan acceso al clúster. Sin embargo, el usuario podría haber copiado el archivo kubeconfig de administración de un clúster, dándole acceso a ese clúster. Si tiene una regla CBR pública que sólo permite el acceso a sus maestros de clúster desde subredes públicas conocidas que son propiedad de su organización, se bloqueará el intento de acceso del usuario desde otra dirección IP pública.

Las subredes de los nodos de trabajo se añaden y eliminan automáticamente de la implementación CBR del backend (pero no de las reglas/zonas CBR), de modo que los nodos de trabajo siempre puedan acceder al maestro del clúster y los usuarios no necesiten añadirlas específicamente a sus propias reglas CBR.

Para obtener más información sobre cómo proteger su clúster con reglas CBR, consulte Protección de recursos del clúster con restricciones basadas en el contexto y Ejemplos de escenarios de restricciones basadas en el contexto.