|NO.Z.00084|——————————|^^ 部署 ^^|——|KuberNetes&kubeadm.V13|5台Server|——|kubernetes组件|dashboard|
一、kubernetes组件安装
### --- 下载组件安装源码包
~~~ 下载版本包——在k8s-master01节点执行
~~~ 现在k8s-ha-install版本包
[root@k8s-master01 ~]# cd /root/ ; git clone https://github.com/dotbalo/k8s-ha-install.git
Cloning into 'k8s-ha-install'...
remote: Enumerating objects: 652, done.
remote: Counting objects: 100% (220/220), done.
remote: Compressing objects: 100% (141/141), done.
remote: Total 652 (delta 109), reused 141 (delta 62), pack-reused 432
Receiving objects: 100% (652/652), 19.60 MiB | 6.12 MiB/s, done.
Resolving deltas: 100% (256/256), done.
### --- 切换到manual-installation-v1.21.x分支下
~~~ 切换到1.21.x版本分支
[root@k8s-master01 ~]# cd /root/k8s-ha-install && git checkout manual-installation-v1.21.x
Branch manual-installation-v1.21.x set up to track remote branch manual-installation-v1.21.x from origin.
Switched to a new branch 'manual-installation-v1.21.x'
二、dashboard组件部署——k8s-master01节点执行
### --- dashboard组件部署说明
~~~ Dashboard用于展示集群中的各类资源,
~~~ 同时也可以通过Dashboard实时查看Pod的日志和在容器中执行一些命令等。
### --- 安装指定版本dashboard
~~~ 安装指定版本的dashboard
[root@k8s-master01 ~]# cd /root/k8s-ha-install/dashboard/
[root@k8s-master01 dashboard]# kubectl create -f .
serviceaccount/admin-user created
clusterrolebinding.rbac.authorization.k8s.io/admin-user created
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created
### --- 更改dashboard的svc为NodePort:
~~~ 查看dashboard.service配置文件
~~~ 注:将ClusterIP更改为NodePort(如果已经为NodePort忽略此步骤):
[root@k8s-master01 dashboard]# kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
spec:
clusterIP: 10.106.221.33
clusterIPs:
- 10.106.221.33
ports:
- port: 443
protocol: TCP
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
sessionAffinity: None
type: ClusterIP # 重点看这一部分是否更改正确
status:
loadBalancer: {}
### --- 更改dashboard.service的type模式
[root@k8s-master01 dashboard]# kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
type: ClusterIP
# 更改为NodePort
type: NodePort
### --- 查看dashboard端口号
[root@k8s-master01 ~]# kubectl get svc kubernetes-dashboard -n kubernetes-dashboard -owide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes-dashboard NodePort 10.103.63.205 <none> 443:32418/TCP 3m12s k8s-app=kubernetes-dashboard
### --- 查看token值
~~~ 查看admin-user.token值是,用于登录dashboard-UI
[root@k8s-master01 ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
Name: admin-user-token-c6vjm
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: admin-user
kubernetes.io/service-account.uid: fefcaad0-712b-4703-bb9a-37375064dae7
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1066 bytes
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IkdSYmlxZHVVdVdMakNGTC1wT3JBUm5YdGliM3pFMXNMcE55Z09wcmU2czAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWM2dmptIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJmZWZjYWFkMC03MTJiLTQ3MDMtYmI5YS0zNzM3NTA2NGRhZTciLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.vI2ohgnmyWDqg0FpTDrywvTgwIB1DtfFHI5hhP_48MU9hSvjWOAyh0HBEDuV7b-yxq7Zc3bfRrvHPqS18geJluCiCGY3X_A-VHoY08X7XqKtzQQeEPdoyU9_slWjODR9TY61bmWpVujzlIUJPrsBk_Z_8uBX0MoRpr4Z2aLf87m6KSvQUM-SgEkTEgVrPnlUBgur-7pR4X_1D_cBDROFQ2B_9Lul_do88a41FsAPgs0nZZ5JliIdwRm7ILs6ABP5hiArRXR366P0XfGk7yUW0B9_7suYgcC4VTtNR79r0QwLQj9LEsA8u9g_ttyP-KzlziwD56xI2MaaD96kiL7tlg
三、配置Chrome浏览器:不安全证书生效
### --- 配置Chrome浏览器:不安全证书生效
~~~ 在Chrome启动文件中加入启动参数,用于解决无法访问Dashboard的问题,
--test-type --ignore-certificate-errors
### --- 将token值输入到令牌后,单进入dashboard后台管理中心
### --- 通过任意安装了kube-proxy的宿主机或者VIP的IP+端口即可访问到dashboard:
~~~ https://192.168.1.20:32418/(请更改32418为自己的端口),选择登录方式为令牌(即token方式)



四、安装最新版本dashboard
### --- dashboard官方GitHub地址
~~~ https://github.com/kubernetes/dashboard
~~~ 可以在官方dashboard查看到最新版dashboard

### --- 安装最新版dashboard
[root@k8s-master01 dashboard]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml
### --- 创建管理员用户vim admin.yaml
~~~ 创建管理员用户配置文件
[root@k8s-master01 dashboard]# vim admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
### --- 创建管理员用户
[root@k8s-master01 dashboard]# kubectl apply -f admin.yaml -n kube-system
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示