一. helm部署kubernetes-dashboard

1.1 下载kubernetes-dashboard chart包

[root@master helm]# helm search stable/kubernetes-dashboard
NAME                       	CHART VERSION	APP VERSION	DESCRIPTION                                   
stable/kubernetes-dashboard	1.10.1       	1.10.1     	General-purpose web UI for Kubernetes clusters
[root@master helm]# helm fetch stable/kubernetes-dashboard
[root@master helm]# ls
kubernetes-dashboard-1.10.1.tgz
[root@master helm]# tar -xvf kubernetes-dashboard-1.10.1.tgz
[root@master helm]# cd kubernetes-dashboard/
[root@master kubernetes-dashboard]# ls
Chart.yaml  README.md  templates  values.yaml

1.2 自定义配置文件

[root@master kubernetes-dashboard]# cat <<EOF> my-values.yaml
image:
  repository: registry.cn-shanghai.aliyuncs.com/zdl_work/kubernetes-dashboard-amd64
  tag: v1.10.1

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    kubernetes.io/tls-acme: 'true'
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
  paths:
    - /
  hosts:
    - dashboard.wanfei.wang
  tls:
    - secretName: kubernetes-dashboard-tls
      hosts:
        - dashboard.wanfei.wang

rbac:
  clusterAdminRole: true

serviceAccount:
  name: dashboard-admin
EOF
  • rbac.clusterAdminRole=true:让 dashboard 的权限够大,这样我们可以方便操作多个 namespace
  • serviceAccount.name=dashboard-admin:配置一个名称,自动创建,方便用脚本查询登录令牌

1.3 安装kubernetes-dashboard

[root@master kubernetes-dashboard]# helm install --name kubernetes-dashboard -f my-values.yaml . --namespace kube-system
NAME:   kubernetes-dashboard
LAST DEPLOYED: Thu Dec 12 10:36:41 2019
NAMESPACE: kube-system
STATUS: DEPLOYED

RESOURCES:
==> v1/Deployment
NAME                  READY  UP-TO-DATE  AVAILABLE  AGE
kubernetes-dashboard  0/1    1           0          0s

==> v1/Pod(related)
NAME                                   READY  STATUS             RESTARTS  AGE
kubernetes-dashboard-77f54dc48f-9fvbh  0/1    ContainerCreating  0         0s

==> v1/Role
NAME                  AGE
kubernetes-dashboard  0s

==> v1/RoleBinding
NAME                  AGE
kubernetes-dashboard  0s

==> v1/Secret
NAME                  TYPE    DATA  AGE
kubernetes-dashboard  Opaque  0     0s

==> v1/Service
NAME                  TYPE       CLUSTER-IP      EXTERNAL-IP  PORT(S)  AGE
kubernetes-dashboard  ClusterIP  10.105.240.207  <none>       443/TCP  0s

==> v1/ServiceAccount
NAME                  SECRETS  AGE
kubernetes-dashboard  1        0s

==> v1beta1/Ingress
NAME                  HOSTS                  ADDRESS  PORTS  AGE
kubernetes-dashboard  dashboard.wanfei.wang  80, 443  0s


NOTES:
*********************************************************************************
*** PLEASE BE PATIENT: kubernetes-dashboard may take a few minutes to install ***
*********************************************************************************
From outside the cluster, the server URL(s) are:
     https://dashboard.wanfei.wang

1.4 更新

helm upgrade kubernetes-dashboard -f my-values.yaml . --namespace kube-system

1.5 查看token

添加脚本

[root@master kubernetes-dashboard]# vi dashboard-token.sh
# 复制

#!/bin/sh
TOKENS=$(kubectl describe serviceaccount dashboard-admin -n kube-system | grep "Tokens:" | awk '{ print $2}')
kubectl describe secret $TOKENS -n kube-system | grep "token:" | awk '{ print $2}'

查看

[root@master kubernetes-dashboard]# sh dashboard-token.sh 
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tbmNic3EiLCJrdWJlcmsjACnLJpAAQxwdwS8w1oDVE_vUJTBaHkr37mGRnv_0dtaJUUAzz33pIRs7I2dOqmRQlK3_9MpCQDTCYC7XxrlxPsQmH6ZLT92OkhPwZSwSFGgnplQg4-QUrqAhwUC0zgE_FaA

1.6 登录

一定要使用https,如果使用http,页面没有反应
在这里插入图片描述
输入上面查询的token
在这里插入图片描述
没有安装heapster监控组件
在这里插入图片描述
安装监控组件后
在这里插入图片描述

二. helm部署heapster

2.1 下载heapster chart包

[root@master helm]# helm search stable/heapster
NAME           	CHART VERSION	APP VERSION	DESCRIPTION                                                 
stable/heapster	1.0.2        	1.5.4      	Heapster enables Container Cluster Monitoring and Perform...
[root@master helm]# helm fetch stable/heapster
[root@master helm]# ls
heapster-1.0.2.tgz
[root@master helm]# tar -xvf heapster-1.0.2.tgz
[root@master helm]# cd heapster/
[root@master heapster]# ls
Chart.yaml  README.md  templates  values.yaml

2.2 自定义配置文件

使用前面创建的权限最大的serviceAccount dashboard-admin

[root@master heapster]# kubectl get serviceAccount -n kube-system | grep dashboard
dashboard-admin                      1         4m45s
[root@master heapster]# cat <<EOF> my-values.yaml
image:
  repository: registry.cn-shanghai.aliyuncs.com/big-master/heapster-amd64
  tag: v1.5.4

resizer:
  image:
    repository: registry.cn-shanghai.aliyuncs.com/gcr_container/addon-resizer
    tag: 1.7

command:
- "/heapster"
- "--source=kubernetes.summary_api:https://kubernetes.default?kubeletPort=10250&kubeletHttps=true&insecure=true"

rbac:
  create: false
  # 使用创建好的的 serviceAccount dashboard-admin
  serviceAccountName: dashboard-admin
EOF
  • - "--source=kubernetes.summary_api:https://kubernetes.default?kubeletPort=10250&kubeletHttps=true&insecure=true"默认是空,执行kubectl top node会报错error: metrics not available yet,因为获取不到每个node的10250端口

2.3 安装

[root@master heapster]# helm install --name heapster -f my-values.yaml . --namespace kube-system
NAME:   heapster
LAST DEPLOYED: Thu Dec 12 11:23:43 2019
NAMESPACE: kube-system
STATUS: DEPLOYED

RESOURCES:
==> v1/Deployment
NAME      READY  UP-TO-DATE  AVAILABLE  AGE
heapster  0/1    1           0          0s

==> v1/Pod(related)
NAME                       READY  STATUS             RESTARTS  AGE
heapster-548cdb574b-bsdzk  0/2    ContainerCreating  0         0s

==> v1/Service
NAME      TYPE       CLUSTER-IP     EXTERNAL-IP  PORT(S)   AGE
heapster  ClusterIP  10.100.254.77  <none>       8082/TCP  0s


NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace kube-system -l "app=heapster" -o jsonpath="{.items[0].metadata.name}")
  kubectl --namespace kube-system port-forward $POD_NAME 8082

2.4 更新

helm upgrade heapster -f my-values.yaml . --namespace kube-system

2.5 部署成功

[root@master heapster]# kubectl get pods -n kube-system | grep heapster
heapster-656b586bf-msj2f                         2/2     Running   0          28s

heapster 安装完后就可以正常使用 kubectl top node 了

[root@master heapster]# kubectl top node
NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master   194m         9%     2182Mi          59%       
node1    280m         14%    2252Mi          61%       
node2    114m         11%    1318Mi          75%       
node3    99m          9%     1072Mi          61%
Logo

开源、云原生的融合云平台

更多推荐