51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

k8s dashboard 安装

k8s dashboard 安装

是图形化的方式管理K8S集群。
Dashboard是K8S集群管理的一个GUI的WebUI实现,它是一个k8s附加组件,所以需要单独部署。
我们可以以图形化的方式创建k8s资源。

GitHub地址:
https://github.com/kubernetes/dashboard#kubernetes-dashboard

部署dashboard:

1.下载dashboard的资源清单

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

2 :导入镜像

dashboard: https://url69.ctfile.com/d/253469-56659133-6028df?p=2206 (访问密码: 2206)

docker load -i baimei-dashboard_v2.5.1.tar.gz

docker load -i baimei-metrics-scraper_v1.0.7.tar.gz

docker push harbor.baimei.com/add-ons/metrics-scraper:v1.0.7
docker push harbor.baimei.com/add-ons/dashboard:v2.5.1

3.修改资源清单,让svc的类型为NodePort

vim deploy-dashboard.yaml

部署:

kubectl apply -f deploy-dashboard.yaml

验证:

kubectl  get pods -o wide --show-labels -n kubernetes-dashboard 

4.浏览器访问dashboard页面

https://10.0.0.231:4430/

如果是空白界面, 需要

第一次访问时,需要输入以下代码

thisisunsafe

见证神奇的时刻到了:

这里我们可以看到 需要 token 或者 配置文件。

怎么解决?

5.权限不足解决方案-自定义登录用户

有2中方法, 一种是 token,一种是 configmap 的方式:

方法一、 token方式

5.1 编写K8S的yaml资源清单文件

cat > baimei-dashboard-rbac.yaml <<'EOF'
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  # 创建一个名为"baimei"的账户
  name: baimei
  namespace: kubernetes-dashboard

---

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-baimei
  namespace: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  # 既然绑定的是集群角色,那么类型也应该为"ClusterRole",而不是"Role"哟~
  kind: ClusterRole
  # 关于集群角色可以使用"kubectl get clusterrole | grep admin"进行过滤哟~
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    # 此处要注意哈,绑定的要和我们上面的服务账户一致哟~
    name: baimei
    namespace: kubernetes-dashboard
EOF

5.2创建资源清单

kubectl apply -f baimei-dashboard-rbac.yaml

5.3 查看sa资源的Tokens名称

kubectl describe serviceaccounts -n kubernetes-dashboard  baimei | grep Tokens

5.4 根据上一步的token名称的查看token值

kubectl -n kubernetes-dashboard describe secrets baimei-token-vt4cr | awk '/^token/{print $2}'

eyJhbGciOiJSUzI1NiIsImtpZCI6InZGS2Z0cTV1OGIwOG5IWWs3cjVNRERGNkpVNzhyMGdlN1dnT3dxS296VEEifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJiYWltZWktdG9rZW4tdnQ0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiYmFpbWVpIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzQzNDY4NDItOWZkMi00NTFmLTk2YzgtMThmZmUzYTQ0ODEwIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVybmV0ZXMtZGFzaGJvYXJkOmJhaW1laSJ9.AgahZ4C8ZBS2f7T0lJ17xQjpOfh6CN1dRk15S9DWJHOh0piXRJgMfK5Z6254F4UhKhyBabCo8fSzFEbrhhWfzVEfy_9tbYfBeWQZlPGVJInW9SXWMW52GrWR5_-q06Pp2Bkpyjka8KKSzmBN-W-tnjq5CeAyCR2IlvCvQpMehxTwj-GvI4oN5w4vl7St6M7FlR5aGD_myfedXIWIXpjA5nRQ4WRhB8rIAy4Wk0JqQa5EGzu6u1m7sV-NpEsYWRL0c4e4wlCxgVOCAt-uayFYuU7i8YzDB0qVZHakt7UtfrsW_ohuAnAeNqtIm1HU3foISATrtYIonDQrG2-e79lrfA

5.5 登录dashboard的WebUI

使用上一步的Token值登录即可(注意,复制时不要有换行)

由于我们创建的ServiceAccount绑定的角色为"cluster-admin"这个角色,因此baimei用户的token是可以访问集群的所有资源的

方法二、使用kubeconfig登录

(1)编写生成kubeconf的配置文件的脚本

cat > baimei-generate-context-conf.sh <<'EOF'
#!/bin/bash
# auther: www.baimeidashu.com


# 获取secret的名称
SECRET_NAME=`kubectl get secrets -n kubernetes-dashboard  | grep baimei | awk {'print $1'}`

# 指定API SERVER的地址
API_SERVER=master231:6443

# 指定kubeconfig配置文件的路径名称
KUBECONFIG_NAME=./baimei-k8s-dashboard-admin.conf

# 获取baimei用户的tocken
baimei_TOCKEN=`kubectl get secrets -n kubernetes-dashboard $SECRET_NAME -o jsonpath={.data.token} | base64 -d`

# 在kubeconfig配置文件中设置群集项
kubectl config set-cluster baimei-k8s-dashboard-cluster --server=$API_SERVER --kubeconfig=$KUBECONFIG_NAME

# 在kubeconfig中设置用户项
kubectl config set-credentials baimei-k8s-dashboard-user --token=$baimei_TOCKEN --kubeconfig=$KUBECONFIG_NAME

# 配置上下文,即绑定用户和集群的上下文关系,可以将多个集群和用户进行绑定哟~
kubectl config set-context baimei-admin --cluster=baimei-k8s-dashboard-cluster --user=baimei-k8s-dashboard-user --kubeconfig=$KUBECONFIG_NAME

# 配置当前使用的上下文
kubectl config use-context baimei-admin --kubeconfig=$KUBECONFIG_NAME
EOF

(2)运行上述脚本

sh baimei-generate-context-conf.sh

./baimei-k8s-dashboard-admin.conf

下载上一步生成的配置文件到桌面,如上图所示,选择并选择该文件进行登录

成功:

https://10.0.0.231:4430/#/namespace?namespace=default

赞(6)
未经允许不得转载:工具盒子 » k8s dashboard 安装