dashboard是K8S的可视化界面,通过前端界面对K8S集群进行管理。
可在如下页面,查询K8S与dashboard版本兼容性:
https://github.com/kubernetes/dashboard
因为前边K8S安装的是V1.23版本,所以这里需要选择能与V1.23的K8S兼容的dashboard版本。从页面上可以找到能兼容的dashboard最新的版本为V2.5.1。
进入到master服务器,下载dashboard对应版本的 recommended.yaml 文件到 /usr/local/ 目录下。yaml文件的链接在版本下已经提供。
为了稳妥起见,可以把文件下载和执行指令分开来做。
cd /usr/local/
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml
因为github是外网,在服务器中可能访问不到,需要先在 /etc/hosts 里配置域名和IP地址的映射关系,可以在 https://www.ipaddress.com/ 网站通过域名raw.githubusercontent.com
查询到该网址的IP,为:
任选一个添加到hosts中,如将185.199.108.133 raw.githubusercontent.com
添加到hosts文件,如果下载失败,可以将IP用其余几个进行替换。
当hosts配置生效后,文件即可以正常下载。
进入到 recommended.yaml 文件所在目录,执行如下指令
kubectl apply -f recommended.yaml
查看容器下载状态,经过一段时间等待后,所有状态都是running。
查看 kubernetes-dashboard 这个命名空间下的所有pod
kubectl get pods -n kubernetes-dashboard
查看 kubernetes-dashboard 命名空间下的所有服务
kubectl get svc -n kubernetes-dashboard
在上图中 TYPE 显示为 ClusterIP,即从集群内部访问的地址,集群外部通过该IP是无法访问的,即使用浏览器不能访问到。因此需要修改 TYPE 类型为 NodePort,才能供外部查看。
在修改dashboard服务时,需要先删除原来的服务。删除服务时,需要指定命名空间。
kubectl delete service kubernetes-dashboard --namespace=kubernetes-dashboard
首先,创建新的服务配置文件 dashboard-svc.yaml
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
生效ymal文件,创建新服务
kubectl apply -f dashboard-svc.yaml
再次查看服务状态
kubectl get svc -n kubernetes-dashboard
服务的 TYPE 已经修改为了 NodePort 类型,同时 PORT 列增加了外部访问时的端口 31681。
创建配置文件, dashboard-svc-account.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: dashboard-admin
namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: dashboard-admin
subjects:
- kind: ServiceAccount
name: dashboard-admin
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
生效yaml文件
kubectl apply -f dashboard-svc-account.yaml
通过以下指令生成原始token信息
kubectl get secret -n kube-system | grep admin | awk '{print $1}'
根据上一步生成原始token信息后,将其 (dashboard-admin-token-jsczr)填入下边的指令
kubectl describe secret dashboard-admin-token-jsczr -n kube-system | grep '^token' | awk '{print $2}'
指令执行后,生成可在浏览器访问k8s的加密token信息。
将其记录下来,方便以后每次访问K8S时在 dashboard 登录页面上输入。
在浏览器中访问dashboard:输入master服务器的IP及dashboard服务对外提供的端口,即:
192.168.137.3:31681
协议默认使用的是https,如果直接输入上边的url会出现如下提示
修改为https后,页面如下
选择token,并将上面生成的加密token信息复制进去,点击登录,即可进入到K8S管理界面。
大功告成!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。