K8s - monitoreo de recursos

1. Implementación del servidor de métricas

Metrics-Server es un agregador de los datos de monitoreo centrales del clúster, que se utiliza para reemplazar el heapster anterior.
Las métricas relacionadas con los contenedores provienen principalmente del servicio cAdvisor integrado en kubelet. Con Metrics-Server, los usuarios pueden acceder a estos datos de monitoreo a través de las API estándar de Kubernetes.
La API de métricas solo puede consultar datos de métricas actuales y no guarda datos históricos.
El URI de la API de métricas es /apis/metrics.k8s.io/, que se mantiene en k8s.io/metrics.
El servidor de métricas debe implementarse para usar esta API. El servidor de métricas obtiene datos llamando a la API de resumen de Kubelet.

1. Obtenga recursos relacionados

wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml  %下载部署文件

docker pull bitnami/metrics-server:0.4.2    %拉取相关镜像
docker push reg.westos.org/library/metrics-server:0.4.2  %上传镜像到私有仓库中(在这之前要对镜像做tag)

修改yaml文件中的镜像路径为metrics-server:0.4.2   %默认在私有仓库的library项目下查找

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Resuelve el problema del error

Después de aplicar el archivo de implementación, si verifica el estado del pod, encontrará que no está listo. En este caso, no surte efecto:
Inserte la descripción de la imagen aquí
verifique la causa del problema a través de los registros:

kubectl logs -n kube-system metrics-server-xxxxxxx

Inserte la descripción de la imagen aquí
El mensaje de error anterior se debe a que no se realizó la verificación del certificado. Consulte el documento oficial para resolver este problema:

启用TLS Bootstrap 证书签发
vim /var/lib/kubelet/config.yaml  %所有节点的这个文件都要修改并重启kubelet服务
...
serverTLSBootstrap: true     %跳过证书检查
systemctl  restart kubelet   %重启kubelet服务
kubectl certificate approve 证书名称  %签发证书

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí

3. Verifique si la implementación es exitosa

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

4. Resultados de la prueba

Puede ver la carga de la CPU y la memoria del nodo y el pod
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Implementación del panel

Dashboard puede proporcionar a los usuarios una interfaz web visual para ver información diversa del clúster actual. Los usuarios pueden usar el panel de Kubernetes para implementar aplicaciones en contenedores, monitorear el estado de las aplicaciones, realizar tareas de resolución de problemas y administrar varios recursos de Kubernetes.

1. Descargue los archivos de implementación y extraiga imágenes relacionadas

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.yaml

镜像:
kubernetesui/dashboard:v2.2.0
kubernetesui/metrics-scraper:v1.0.6

上传镜像到私有仓库,此时路径需要对应,可以在私有仓库中创建kubernetesui项目,然后把这两个镜像放到该项目下,或者更改yaml文件中的镜像路径

2. Aplicar archivos de implementación y modificarlos al modo NodePort para acceso externo

kubectl apply -f recommended.yaml     %应用部署文件
kubectl -n kubernetes-dashboard describe svc kubernetes-dashboard   %查看其创建的svc的详细信息

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

 kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard   %更改为NodePort方式
 kubectl -n kubernetes-dashboard get svc    %查看是否已经更改

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3. Genere un token e inicie sesión con el token

kubectl -n kubernetes-dashboard get secrets  %查看secrets名字
NAME                               TYPE                                  DATA   AGE
default-token-h95lm                kubernetes.io/service-account-token   3      10m
kubernetes-dashboard-certs         Opaque                                0      10m
kubernetes-dashboard-csrf          Opaque                                1      10m
kubernetes-dashboard-key-holder    Opaque                                2      10m
kubernetes-dashboard-token-kcw7s   kubernetes.io/service-account-token   3      10m

kubectl describe secrets  kubernetes-dashboard-token-kcw7s -n kubernetes-dashboard  %查看具体token
kubectl -n kubernetes-dashboard describe secrets kubernetes-dashboard-token-xxxx  %查看token的另外一种方法

kubectl get svc -n kubernetes-dashboard    %查看端口映射
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.111.253.105   <none>        8000/TCP        4m31s
kubernetes-dashboard        NodePort    10.110.193.162   <none>        443:32427/TCP   4m31s

Al acceder, debe acceder a ip más el número de puerto expuesto en modo https:
Inserte la descripción de la imagen aquí

4. El panel predeterminado no tiene permisos operativos en el clúster y se requiere la autorización correspondiente.

vim rbac.yaml:      %编辑rbac.yaml文件做RBAC授权
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard  
kubectl apply -f rbac.yaml    %应用部署文件

Mostrar página antes de la autorización: hay una gran cantidad de advertencias
Inserte la descripción de la imagen aquí
para ver y administrar los recursos en el clúster después de la autorización:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
puede ver y editar el archivo yaml del pod creado para lograr el propósito de crear o actualizar el pod:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/nk298120/article/details/115238069
Recomendado
Clasificación