Kubernetes1.16.2安装Dashboard
Kubernetes Dashboard是Kubernetes提供的Web用户界面,通过Dashboard我们可以将容器化的应用部署到Kubernetes集群中,对容器化的应用进行故障排除以及集群资源管理;可以通过Dashboard查看集群应用详情,创建或修改单个Kubernetes资源(例如Deployments,Jobs,DaemonSets等)。
安装Dashboard
上节我们搭建的Kubernetes集群版本为1.16.2,截至目前为止,与该版本对应的Dashboard版本为v2.0.0-beta5,可以通过https://github.com/kubernetes/dashboard/releases查看:
下载该版本的Dashboard yaml文件:
1 |
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml |
修改该配置文件:
1 |
vim recommended.yaml |
修改的内容如下图所示:
接着创建证书:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
mkdir dashboard-certs cd dashboard-certs/ #创建命名空间 kubectl create namespace kubernetes-dashboard #创建key文件 openssl genrsa -out dashboard.key 2048 #证书请求 openssl req -days 36000 -new -out dashboard.csr -key dashboard.key -subj '/CN=dashboard-cert' #自签证书 openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt #创建kubernetes-dashboard-certs对象 kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kubernetes-dashboard |
然后执行kubectl create -f ../recommended.yaml
命令安装Dashboard。
使用kubectl get service -n kubernetes-dashboard -o wide
命令查看是否部署成功:
创建账号与授权
Dashboard部署好后,接着创建账号:
1 |
vim dashboard-admin.yaml |
内容如下所示:
1 2 3 4 5 6 7 |
apiVersion: v1 kind: ServiceAccount metadata: labels: k8s-app: kubernetes-dashboard name: dashboard-admin namespace: kubernetes-dashboard |
创建该账号:
1 |
kubectl create -f dashboard-admin.yaml |
账号创建好后,接着为其授权:
1 |
vim dashboard-admin-bind-cluster-role.yaml |
内容如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: dashboard-admin-bind-cluster-role labels: k8s-app: kubernetes-dashboard roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: dashboard-admin namespace: kubernetes-dashboard |
授权:
1 |
kubectl create -f dashboard-admin-bind-cluster-role.yaml |
访问Dashboard
使用浏览器访问https://192.168.33.12:30008/#/login:
选择Token,Token的值可以用下面的命令获取:
1 |
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}') |
复制该Token到Dashboard:
点击Sign In:
安装Metrics Service
上面Dashboard的CPU Usage (cores)和Memory Usage (bytes)列是空的,这是因为Kubernetes的早期版本依靠Heapster来实现完整的性能数据采集和监控功能,Kubernetes从1.8版本开始,性能数据开始以Metrics API的方式提供标准化接口,并且从1.10版本开始将Heapster替换为Metrics Server。
首先在master节点上安装git:
1 |
yum install git |
然后克隆Metrics Server GitHub仓库:
1 |
git clone https://github.com/kubernetes-sigs/metrics-server.git |
修改metrics-server-deployment.yaml:
1 |
vim metrics-server/deploy/1.8+/metrics-server-deployment.yaml |
修改内容如下图所示:
1 2 3 4 5 6 7 |
...... imagePullPolicy: IfNotPresent command: - /metrics-server - --kubelet-preferred-address-types=InternalIP - --kubelet-insecure-tls ...... |
因为默认metrics service的镜像地址需要科学上网才能拉取,所以在创建之前,我们在node1和node2节点先执行以下操作准备镜像:
1 2 |
docker pull bluersw/metrics-server-amd64:v0.3.6 docker tag bluersw/metrics-server-amd64:v0.3.6 k8s.gcr.io/metrics-server-amd64:v0.3.6 |
然后回到master节点,执行:
1 |
kubectl create -f metrics-server/deploy/1.8+/ |
稍等片刻,然后执行kubectl top nodes
便可以看到每个节点的CPU和内存使用率了:
回到Dashboard: