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).
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 nombrekube-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:
-
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.
-
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.
-
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.
- Obtenga un token de autenticación para la cuenta de servicio oke-admin de la siguiente manera:
- 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
-
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
-
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. -
Copie el valor del elemento
token:
de la salida. Utilizará este token para conectarse al panel de control.
- 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.
- En una ventana de terminal, introduzca
kubectl proxy
para que el panel de control de Kubernetes esté disponible. - 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 nombrekube-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.
-
En el panel de control de Kubernetes, seleccione Token y pegue el valor del elemento
token:
copiado anteriormente en el campo Token. - 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