¿Por qué no existe ningún subdominio de Ingress después de la creación del clúster?

Nube privada virtual Infraestructura clásica

Crea un clúster y ejecuta ibmcloud oc cluster get --cluster CLUSTER para comprobar su estado. El estado (State) del clúster es normal, pero el Subdominio de Ingress y el Secreto de Ingress no están disponibles.

Aunque el clúster esté en estado normal, es posible que el subdominio de Ingress y el secreto estén en curso. La creación del subdominio y del secreto de Ingress puede tardar más de 15 minutos en completarse:

Clústeres clásicos:

  1. Cuando los nodos trabajadores están totalmente desplegados y listos en las VLAN, se solicita una subred pública portátil y una subred privada portátil para las VLAN.
  2. Una vez realizados correctamente los pedidos de subredes portátiles, el mapa de configuración ibm-cloud-provider-vlan-ip-config se actualiza con las direcciones IP portátiles privada y pública.
  3. Cuando se actualiza el mapa de configuración de ibm-cloud-provider-vlan-ip-config, se desencadena el controlador de Ingress para la creación.
  4. Se crea un servicio de equilibrador de carga que expone el controlador de Ingress y se le asigna una dirección IP.
  5. La dirección IP del equilibrador de carga se utiliza para registrar el subdominio de Ingress en IBM NS1. IBM NS1 puede haber retrasos durante el proceso de registro.

Clústeres de VPC:

  1. Cuando se crea un clúster de VPC, se crea automáticamente un equilibrador de carga de VPC público y uno privado fuera del clúster en la VPC.
  2. Se desencadena un controlador de Ingress público por zona para la creación.
  3. Se crea un servicio de equilibrador de carga que expone el controlador de Ingress y se le asigna un nombre de host.
  4. El nombre de host del equilibrador de carga se utiliza para registrar el subdominio de Ingress en IBM NS1. IBM NS1 puede haber retrasos durante el proceso de registro.

¿Desea crear un clúster después de suprimir un clúster con el mismo nombre o similar? Consulte No existe ningún subdominio de Ingress después de crear clústeres del mismo nombre o similar en su lugar.

Normalmente, cuando el clúster está preparado, se crea el subdominio de Ingress y el secreto transcurridos 15 minutos. Si el subdominio de Ingress y el secreto todavía no están disponibles después de que el clúster se encuentre en un estado normal durante más de 15 minutos, puede comprobar el progreso del proceso de creación siguiendo estos pasos:

  1. Inicie la sesión en el clúster. Como el subdominio no está disponible, la consola de Red Hat OpenShift no se puede abrir. En su lugar, puede establecer el contexto del clúster con la opción --admin a través de la CLI.

    ibmcloud oc cluster config -c CLUSTER_NAME_OR_ID --admin
    
  2. Compruebe que los nodos trabajadores tienen el estado (State) normal y el Status Ready. Después de crear el clúster, los nodos trabajadores pueden tardar hasta 20 minutos en estar preparados.

    ibmcloud oc worker ls -c CLUSTER_NAME_OR_ID
    

    Salida de ejemplo

    ID                                                     Public IP         Private IP      Flavor              State     Status   Zone    Version
    kube-blrs3b1d0p0p2f7haq0g-mycluster-default-000001f7   169.xx.xxx.xxx    10.xxx.xx.xxx   u3c.2x4.encrypted   deployed   Ready    dal10   1.35
    
  3. Verifique que se han completado los pasos de requisito previo para la creación del controlador de Ingress.

    • Clústeres clásicos: consulta los detalles del mapa de configuración ibm-cloud-provider-vlan-ip-config.
    oc describe cm ibm-cloud-provider-vlan-ip-config -n kube-system
    
    • Si el mapa de configuración muestra direcciones IP, continúe en el paso siguiente.
    • Si la sección Events muestra un mensaje de aviso parecido al siguiente: ErrorSubnetLimitReached: There are already the maximum number of subnets permitted in this VLAN, consulte el tema sobre resolución de problemas de capacidad de VLAN.

    Salida de ejemplo de un mapa de configuración que contiene direcciones IP:

    NAME:         ibm-cloud-provider-vlan-ip-config
    Namespace:    kube-system
    Labels:       <none>
    Annotations:  <none>
    Data
    ====
    reserved_public_vlan_id:
    ----
    vlanipmap.json:
    ----
    {
        "vlans": [
        {
          "id": "2234947",
          "subnets": [
            {
              "id": "2215454",
              "ips": [
                "10.XXX.XXX.XXX",
                "10.XXX.XXX.XXX",
                "10.XXX.XXX.XXX",
                "10.XXX.XXX.XXX",
                "10.XXX.XXX.XXX"
              ],
              "is_public": false,
              "is_byoip": false,
              "cidr": "10.XXX.XXX.X/29"
            }
          ],
          "zone": "dal10",
          "region": "us-south"
        },
        {
          "id": "2234945",
          "subnets": [
            {
              "id": "2219170",
              "ips": [
                "169.XX.XXX.XX",
                "169.XX.XXX.XX",
                "169.XX.XXX.XX",
                "169.XX.XXX.XX",
                "169.XX.XXX.XX"
              ],
              "is_public": true,
              "is_byoip": false,
              "cidr": "169.XX.XXX.X/29"
            }
          ],
          "zone": "dal10",
          "region": "us-south"
        }
        ],
        "vlan_errors": [],
        "reserved_ips": []
    }
    cluster_id:
    ----
    bmnj1b1d09lpvv3oof0g
    reserved_private_ip:
    ----
    reserved_private_vlan_id:
    ----
    reserved_public_ip:
    ----
    Events:  <none>
    
    • Clústeres de VPC: comprueba que exista el equilibrador de carga de VPC para tus controladores de Ingress. En la salida, busque el Nombre del equilibrador de carga de VPC que empieza por kube-<cluster_ID>. Si no ha instalado el plugin infrastructure-service, instálelo ejecutando ibmcloud plugin install infrastructure-service.
    ibmcloud is load-balancers
    

    Aunque el equilibrador de carga de VPC aparece en la lista, es posible que su entrada de DNS aún se esté registrando. Cuando se crea un equilibrador de carga de VPC, el nombre de host se registra a través de un DNS público. A veces, esta entrada de DNS puede tardar varios minutos en replicarse en el DNS específico que está utilizando el cliente.

  4. Verifique que el controlador de Ingress se haya creado correctamente.

    1. Compruebe si existe un despliegue de controlador de Ingress para el clúster.
      • Si se lista un despliegue de controlador de Ingress, continúe en el paso siguiente.
      • Si no se crea ningún despliegue de controlador de Ingress después de varios minutos, revise cómo obtener ayuda.
        oc get deployment -n openshift-ingress
        ```
        Salida de ejemplo
        ```sh {: screen}
        NAME             READY   UP-TO-DATE   AVAILABLE   AGE
        router-default   2/2     2            2           26m
        ```
    2. Compruebe si el servicio del equilibrador de carga del controlador de Ingress existe y se le ha asignado una dirección IP externa pública (clústeres clásicos) o un nombre de host (clústeres de VPC).
        * Si se muestra un servicio denominado `router-default` y tiene asignada una dirección IP (clústeres clásicos) o un nombre de host (clústeres de VPC), continúe en el paso siguiente.
        * Si no se crea ningún servicio `router-default` después de unos minutos, [revise las formas de obtener ayuda](/docs/openshift?topic=openshift-get-help).
    
    ```sh {: pre}
        oc get svc -n openshift-ingress
        ```
        Salida de ejemplo
        ```sh {: screen}
        NAME                      TYPE           CLUSTER-IP      EXTERNAL-IP    PORT(S)                      AGE
        router-default            LoadBalancer   172.21.47.119   169.XX.XX.XX   80:31182/TCP,443:31154/TCP   27m
        router-internal-default   ClusterIP      172.21.51.30    <none>         80/TCP,443/TCP,1936/TCP      26m
        ```
    
  5. Vuelva a comprobar si se ha creado el subdominio de Ingress y el secreto. Si no están disponibles, pero ha verificado que todos los componentes de los pasos 1-3 existen, revise cómo obtener ayuda.

    ibmcloud oc cluster get -c CLUSTER_NAME_OR_ID