Acceso a un cluster con el panel de control de Kubernetes

Descubra cómo iniciar el panel de control de Kubernetes para ver los clusters que ha creado mediante Container Engine for Kubernetes (OKE).

Nota

No puede utilizar el panel de control de Kubernetes con pools de nodos virtuales.

El panel de control de Kubernetes es una interfaz de gestión basada en web que permite:

  • desplegar y editar aplicaciones en contenedores
  • evaluar el estado de las aplicaciones en contenedores
  • solucionar problemas de aplicaciones en contenedores

El panel de control de Kubernetes es especialmente útil para los nuevos usuarios de Kubernetes. Para obtener más información sobre el panel de control de Kubernetes (a veces denominado interfaz de usuario web o interfaz de usuario del panel de control), consulte el tema de la interfaz de usuario web (panel de control) en la documentación de Kubernetes.

El panel de control de Kubernetes no se despliega por defecto en clusters. Sin embargo, puede desplegar el panel de control de Kubernetes en los clusters que cree con Container Engine for Kubernetes de las siguientes maneras:

  • Para desplegar manualmente el panel de control de Kubernetes en un cluster existente, consulte la documentación de Kubernetes. Si sigue las instrucciones para desplegar manualmente el panel de control de Kubernetes, se despliega en el espacio de nombre kubernetes-dashboard (no en el espacio de nombre kube-system). La URL para mostrar un panel de control de Kubernetes desplegado manualmente es:

    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login
  • Para que Container Engine for Kubernetes despliegue automáticamente el panel de control de Kubernetes durante la creación mejorada del cluster, puede:
    • Cree el cluster mejorado mediante el flujo de trabajo "Creación personalizada" en la consola y configure el complemento de cluster del panel de control de Kubernetes.
    • Cree el cluster mediante la API y defina el atributo isKubernetesDashboardEnabled en true.

    Cuando Container Engine for Kubernetes despliega automáticamente el panel de control de Kubernetes, se despliega en el espacio de nombre kube-system. La URL para mostrar un panel de control de Kubernetes desplegado automáticamente es:

    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

Tenga en cuenta lo siguiente:

  • No puede ejecutar el panel de control de Kubernetes en el Cloud Shell.
  • No recomendamos instalar el panel de control de Kubernetes en clusters de producción debido a la falta de soporte de autenticación extensible. Si instala el panel de control de Kubernetes, recomendamos que limite el acceso al cluster, en lugar de mostrarlo externamente a través de un equilibrador de carga o de un controlador de entrada. El panel de control de Kubernetes es un vector de ataque común que se usa para acceder a los clusters de Kubernetes.
  • Los comandos que se utilizarán para suprimir el panel de control de Kubernetes de un cluster dependerán de la versión de Kubernetes que se ejecute en el cluster. Consulte Notas sobre la supresión del panel de control de Kubernetes.
  • Un comando de la CLI de Oracle Cloud Infrastructure del archivo kubeconfig genera tokens de autenticación que son de corta duración, con ámbito de cluster y específicos de usuarios individuales. Como resultado, no puede compartir archivos kubeconfig entre usuarios para acceder a los clusters de Kubernetes. Los tokens de autenticación generados también son inadecuados si desea que otros procesos y herramientas accedan al cluster, como las herramientas de integración y entrega continuas (CI/CD). En este caso, considere crear una cuenta de servicio de Kubernetes y agregar su token de autenticación asociado al archivo kubeconfig. Para obtener más información, consulte Adición de un token de autenticación de cuenta de servicio a un archivo Kubeconfig.
  • Puede utilizar el panel de control de Kubernetes con pools de nodos gestionados, pero no con pools de nodos virtuales.

Acceso a un cluster con el panel de control de Kubernetes

Para acceder a un cluster con el panel de control de Kubernetes:

  1. Si todavía no lo ha hecho, siga los pasos para configurar el archivo de configuración kubeconfig del cluster y (si es necesario) defina la variable de entorno KUBECONFIG para que apunte al archivo. Tenga en cuenta que debe configurar su propio archivo kubeconfig. No puede acceder a un cluster utilizando un archivo kubeconfig que haya configurado un usuario diferente. Consulte Configuración del acceso a los clusters.
  2. En un editor de texto, cree un archivo (por ejemplo, con el nombre oke-admin-service-account.yaml) con el siguiente contenido:

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: oke-admin
      namespace: kube-system
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: oke-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: oke-admin
      namespace: kube-system

    El archivo define una cuenta de servicio de administrador y un ClusterRoleBinding, ambos denominados oke-admin.

  3. Cree la cuenta de servicio y el ClusterRoleBinding en el cluster introduciendo:

    kubectl apply -f <filename>

    donde <filename> es el nombre del archivo creado anteriormente. Por ejemplo:

    kubectl apply -f oke-admin-service-account.yaml

    La salida del comando anterior confirma la creación de la cuenta de servicio y el ClusterRoleBinding:

    
    serviceaccount "oke-admin" created
    clusterrolebinding.rbac.authorization.k8s.io "oke-admin" created

    Ahora puede utilizar la cuenta de servicio oke-admin para ver y controlar el cluster, así como para conectarse al panel de control de Kubernetes.

  4. Obtenga un token de autenticación para la cuenta de servicio oke-admin de la siguiente manera:
    1. En un editor de texto, cree un archivo (por ejemplo, denominado oke-admin-sa-token.yaml) para crear un secreto (por ejemplo, denominado oke-admin-sa-token) con el siguiente contenido.
      apiVersion: v1
      kind: Secret
      metadata:
        name: oke-admin-sa-token
        namespace: kube-system
        annotations:
         kubernetes.io/service-account.name: oke-admin
      type: kubernetes.io/service-account-token
    2. Cree el token de la cuenta de servicio introduciendo:

      kubectl apply -f <filename>

      donde <filename> es el nombre del archivo creado anteriormente. Por ejemplo:

      kubectl apply -f oke-admin-sa-token.yaml
    3. Para ver detalles del secreto, introduzca:

      kubectl describe secrets oke-admin-sa-token -n kube-system

      La salida del comando anterior incluye un token de autenticación (una cadena alfanumérica larga) como valor del elemento token:, como se muestra abajo:

      Name:         oke-admin-sa-token
      Namespace:    kube-system
      Labels:       <none>
      Annotations:  kubernetes.io/service-account.name: oke-admin
      kubernetes.io/service-account.uid: 3a7fcd8e-e123-11e9-81ca-0a580aed8570
      Type:  kubernetes.io/service-account-token
      Data
      ====
      ca.crt:     1289 bytes
      namespace:  11 bytes
      token:      eyJh______px1Q

      En el ejemplo anterior, eyJh______px1Q (abreviado leerse mejor) es el token de autenticación.

    4. Copie el valor del elemento token: de la salida. Utilizará este token para conectarse al panel de control.

  5. En una ventana de terminal, introduzca kubectl proxy para que el panel de control de Kubernetes esté disponible.
  6. Abra un explorador y vaya a la siguiente dirección URL para mostrar el panel de control de Kubernetes que se desplegó cuando se creó el cluster:
    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

    Tenga en cuenta que si siguió las instrucciones de la documentación de Kubernetes para desplegar manualmente el panel de control de Kubernetes en un cluster existente, se desplegará en el espacio de nombre kubernetes-dashboard en lugar del espacio de nombre kube-system. Como resultado, la URL para mostrar el panel de control de Kubernetes desplegado manualmente es:

    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login.
  7. En el panel de control de Kubernetes, seleccione Token y pegue el valor del elemento token: copiado anteriormente en el campo Token.

  8. En el panel de control de Kubernetes, haga clic en Inicio de sesión y, a continuación, haga clic en Visión general para ver las aplicaciones desplegadas en el cluster.

Notas sobre la supresión del panel de control de Kubernetes

Si desea suprimir manualmente el panel de control de Kubernetes de un cluster, ejecute los siguientes comandos de kubectl:

kubectl delete deployment kubernetes-dashboard -n kube-system
kubectl delete sa -n kube-system kubernetes-dashboard
kubectl delete svc -n kube-system kubernetes-dashboard
kubectl delete secret -n kube-system kubernetes-dashboard-certs
kubectl delete secret -n kube-system kubernetes-dashboard-csrf
kubectl delete secret -n kube-system kubernetes-dashboard-key-holder
kubectl delete cm -n kube-system kubernetes-dashboard-settings
kubectl delete role -n kube-system kubernetes-dashboard
kubectl delete rolebinding -n kube-system kubernetes-dashboard
kubectl delete clusterrole -n kube-system kubernetes-dashboard
kubectl delete clusterrolebinding -n kube-system kubernetes-dashboard
kubectl delete deploy -n kube-system kubernetes-dashboard