Amazon EKS
Guía del usuario

Tutorial: Implementación de la interfaz de usuario web de Kubernetes (panel)

Este tutorial le guiará en la implementación del panel de Kubernetes en su clúster de Amazon EKS, incluidas las métricas de CPU y memoria. También le ayudará a crear un a cuenta de servicio de administrador de Amazon EKS que podrá utilizar para conectarse de forma segura al panel a fin de ver y controlar el clúster.

importante

Las versiones de Kubernetes 1.11 y anteriores no son compatibles con la memoria de heapster y las métricas de CPU en el panel por defecto. La comunidad trabaja para sustituir heapster en el panel con el servidor de las métricas de Kubernetes para solucionar este problema. Para obtener más información, consulte https://github.com/kubernetes/dashboard/issues/3147 y https://github.com/kubernetes/dashboard/issues/2986.

Cuando el proyecto del panel se actualice para utilizar el servidor de las métricas de Kubernetes, este tema se actualizará con información acerca de cómo restaurar la funcionalidad de las métricas de la memoria y de CPU. Hasta ese momento, las métricas de la memoria y CPU no se muestran en el panel en las versiones 1.11 y anteriores del clúster Amazon EKS.

Hay una posible solución publicada en GitHub pero el equipo de Amazon EKS no ha evaluado el riesgo de establecer la marca de insecure=true en el origen de heapster de forma que no podemos recomendar la solución ahora mismo.


            Panel de Kubernetes

Requisitos previos

Este tutorial se basa en los siguientes supuestos:

Paso 1: Implementar el panel

Siga los pasos que se describen a continuación para implementar en el clúster el panel de Kubernetes, heapster, y el backend influxdb para las métricas de CPU y memoria.

Para implementar el panel de Kubernetes

  1. Implemente el panel de Kubernetes en el clúster:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

    Salida:

    secret "kubernetes-dashboard-certs" created serviceaccount "kubernetes-dashboard" created role "kubernetes-dashboard-minimal" created rolebinding "kubernetes-dashboard-minimal" created deployment "kubernetes-dashboard" created service "kubernetes-dashboard" created
  2. Implemente heapster para habilitar el monitoreo y el análisis del desempeño de contenedores en el clúster:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/heapster.yaml

    nota

    Aunque heapster está obsoleto, en la actualidad es el único proveedor de métricas compatible con el panel de Kubernetes. Para obtener más información, consulte https://github.com/kubernetes/dashboard/issues/2986.

    Salida:

    serviceaccount "heapster" created deployment "heapster" created service "heapster" created
  3. Implemente el backend influxdb para heapster en el clúster:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/influxdb.yaml

    Salida:

    deployment "monitoring-influxdb" created service "monitoring-influxdb" created
  4. Cree el enlace del rol de clúster heapster para el panel:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/rbac/heapster-rbac.yaml

    Salida:

    clusterrolebinding "heapster" 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 Managing Service Accounts en la documentación de Kubernetes.

Para crear la cuenta de servicio eks-admin y el enlace de rol de clúster

importante

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 Using RBAC Authorization en la documentación de Kubernetes.

  1. Cree un archivo llamado eks-admin-service-account.yaml con el siguiente texto. Este manifiesto define una cuenta de servicio y un enlace de rol de clúster llamado eks-admin.

    apiVersion: v1 kind: ServiceAccount metadata: name: eks-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 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
  2. Aplique la cuenta de servicio y el enlace de rol de clúster al clúster:

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

    Salida:

    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

  1. Obtenga un token de autenticación para la cuenta de servicio eks-admin. Copie el valor <authentication_token> del resultado. Con este token podrá conectarse al panel.

    kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')

    Salida:

    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>
  2. Inicie kubectl proxy.

    kubectl proxy
  3. Abra el enlace siguiente con un navegador web para obtener acceso al punto de enlace del panel: http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

  4. Elija Token, pegue el valor de la salida <authentication_token> del comando anterior en el campo Token y elija SIGN IN (Iniciar sesión).

    
                        Token de autenticación de Kubernetes

    nota

    Pueden pasar algunos minutos antes de que aparezcan las métricas de CPU y memoria en el panel.

Paso 4: Siguientes pasos

Una vez conectado al panel de Kubernetes para el clúster, podrá ver y controlar el clúster con su cuenta del servicio eks-admin. Para obtener más información sobre cómo usar el panel, consulte la documentación de proyecto en GitHub.