Tutorial: Implementación del panel de Kubernetes (interfaz de usuario web)
Este tutorial lo guiará en la implementación del Panel de Kubernetes
Requisitos previos
Este tutorial se basa en los siguientes supuestos:
-
Ha creado un clúster de Amazon EKS siguiendo los pasos que se indican en Introducción a Amazon EKS.
-
Tiene instalado el servidor de métricas de Kubernetes. Para obtener más información, consulte Instalación del servidor de métricas de Kubernetes .
-
Los nodos y los grupos de seguridad de las interfaces de red elásticas del panel de control se ajustan a la configuración recomendada en Requisitos y consideraciones sobre grupos de seguridad de Amazon EKS.
-
Utiliza un cliente
kubectl
que está configurado para comunicarse con el clúster de Amazon EKS.
Paso 1: Implementar el panel de Kubernetes
Aplique el manifiesto del panel a su clúster mediante el comando correspondiente a la versión de su clúster.
Versión 1.22
Es posible que algunas características de las versiones disponibles no funcionen correctamente con esta versión de Kubernetes. Para obtener más información, consulte Versiones
en GitHub. Versiones 1.20 y 1.21
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
Versión 1.19
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
A continuación, se muestra un ejemplo de resultado.
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created
Paso 2: Crear una cuenta de servicio eks-admin
y un enlace de rol de clúster
De forma predeterminada, el usuario del panel de Kubernetes tiene permisos limitados. En esta sección creará una cuenta de servicio eks-admin
y un enlace de rol de clúster con los que poder conectarse de forma segura al panel con permisos de nivel de administrador. Para obtener más información, consulte Administración de cuentas de servicio
Para crear la cuenta de servicio eks-admin
y el enlace de rol de clúster
La cuenta de servicio de ejemplo creada con este procedimiento tiene todos los privilegios de cluster-admin
(superusuario) para el clúster. Para obtener más información, consulte Utilización de la autorización de RBAC
-
Ejecute el siguiente comando para crear un archivo denominado
eks-admin-service-account.yaml
con el siguiente texto. Este manifiesto define una cuenta de servicio y un enlace de rol de clúster llamadoeks-admin
.cat >eks-admin-service-account.yaml <<EOF apiVersion: v1 kind: ServiceAccount metadata: name: eks-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: eks-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: eks-admin namespace: kube-system EOF
-
Aplique la cuenta de servicio y el enlace de rol de clúster al clúster:
kubectl apply -f eks-admin-service-account.yaml
El ejemplo de resultado es el siguiente.
serviceaccount "eks-admin" created clusterrolebinding.rbac.authorization.k8s.io "eks-admin" created
Paso 3: Conectar con el panel
Ahora que el panel de Kubernetes ya está implementado en el clúster y dispone de una cuenta de servicio administrativa que le permite ver y controlar el clúster, puede conectarse al panel utilizando esa cuenta de servicio.
Para conectarse al panel de Kubernetes
-
Obtenga un token de autenticación para la cuenta de servicio
eks-admin
.kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')
A continuación, se muestra un ejemplo de resultado.
Name: eks-admin-token-b5zv4 Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name=eks-admin kubernetes.io/service-account.uid=bcfe66ac-39be-11e8-97e8-026dce96b6e8 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1025 bytes namespace: 11 bytes token:
authentication-token
Copie el valor de
obtenido en el resultado. Con este token podrá conectarse al panel de control en un paso posterior.authentication-token
-
Inicie el
kubectl proxy
.kubectl proxy
-
Para obtener acceso al punto de conexión del panel, abra el enlace siguiente con un navegador web: http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login
. -
Elija Token, pegue el valor de la salida
del comando anterior en el campo Token y elija SIGN IN (Iniciar sesión).authentication-token
Tras iniciar sesión, verá el panel de control en su navegador web.
Para obtener más información acerca del uso del panel, consulte Implemente y acceda al panel de Kubernetes
en la documentación Kubernetes.