# K3S 安装 - 仪表盘及卸载 K3s
# 仪表盘介绍:
推荐使用三种仪表盘工具,分别是对应是 Kubernetes Dashboard
、 kube-explorer
和 Rancher UI
,其各自各有优劣。
# Kubernetes Dashboard 参考安装
这里不参考官方的方法,但会记录官方的方法,如有需要看本文参考链接。
一。官方参考安装 dashboard:
GITHUB_URL=https://github.com/kubernetes/dashboard/releases | |
VERSION_KUBE_DASHBOARD=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||') | |
sudo k3s kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/${VERSION_KUBE_DASHBOARD}/aio/deploy/recommended.yaml |
info 这里安装的是最新版本,目前 k8s-dashboard 版本信息可参考链接。
我们选择 v2.7.0 版本,因为 v3.0.0 版本差别过大
Kubernetes 仪表板 v3.0.0 :
网络docker.io/kubernetesui/dashboard-web:v1.0.0
应用程序编程接口
docker.io/kubernetesui/dashboard-api:v1.0.0
指标刮刀
docker.io/kubernetesui/metrics-scraper:v1.0.9
二。本文方法:
-
将
https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
复制到本地浏览器即可打开,将其中内容复制到recommended.yaml
(需要自己建该文件)。 -
将
recommended.yaml
文件拖入 master 节点的 root 目录。 -
执行
kubectl apply -f recommended.yaml
,如下:验证 运行如下代码:
$ k3s kubectl proxy
#可以看到前端代码
$ curl http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
✔️k8s-bashboard success
创建token,可用于登录k8s-dashboard
首先我们需要创建两个文件 dashboard.admin-user.yml
和 dashboard.admin-user-role.yml
,并将一下内容分别复制到对应文件内:
# dashboard.admin-user.yml | |
apiVersion: v1 | |
kind: ServiceAccount | |
metadata: | |
name: admin-user | |
namespace: kubernetes-dashboard | |
# dashboard.admin-user-role.yml | |
apiVersion: rbac.authorization.k8s.io/v1 | |
kind: ClusterRoleBinding | |
metadata: | |
name: admin-user | |
roleRef: | |
apiGroup: rbac.authorization.k8s.io | |
kind: ClusterRole | |
name: cluster-admin | |
subjects: | |
- kind: ServiceAccount | |
name: admin-user | |
namespace: kubernetes-dashboard |
部署 admin-user
配置:
# 仪表盘 RBAC 配置 | |
# 本指南中创建的 admin-user 将在仪表盘中拥有管理权限 | |
sudo k3s kubectl create -f dashboard.admin-user.yml -f dashboard.admin-user-role.yml |
获得 Token:
v1.24+
# 获得 Bearer-Token | |
sudo k3s kubectl -n kubernetes-dashboard create token admin-user |
v1.23 及之前的版本
# 获得 Bearer-Token | |
sudo k3s kubectl -n kubernetes-dashboard describe secret admin-user-token |grep '^token' |
端口转发&暴露端口
目前只能集群内部访问,因为这里都是 ClusterIP 模式,需要修改。
这里提供两种方式:
-
端口转发的方式暴露
# 端口转发的方式暴露
kubectl port-forward -n kubernetes-dashboard --address 0.0.0.0 svc/kubernetes-dashboard 8443:443
-
以 NodePort 的方式暴露
# 以 NodePort 的方式暴露
# kubectl edit svc -n kubernetes-dashboard kubernetes-dashboard
# type: ClusterIP -> type: NodePort
$ kubectl patch svc kubernetes-dashboard --namespace kubernetes-dashboard -p '{"spec":{"type": "NodePort"}}'
$ kubectl get svc --namespace kubernetes-dashboard kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard NodePort 10.43.213.160 <none> 443:30891/TCP 2m12s
验证: 这里直接
https://IP:端口
既可访问
-
升级 Kubernetes Dashboard
# 升级仪表盘
$ sudo k3s kubectl delete ns kubernetes-dashboard
$ GITHUB_URL=https://github.com/kubernetes/dashboard/releases
$ VERSION_KUBE_DASHBOARD=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||')
$ sudo k3s kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/${VERSION_KUBE_DASHBOARD}/aio/deploy/recommended.yaml -f dashboard.admin-user.yml -f dashboard.admin-user-role.yml
-
删除仪表盘和 admin-user 配置
# 删除仪表盘和 admin-user 配置
$ sudo k3s kubectl delete ns kubernetes-dashboard
$ sudo k3s kubectl delete clusterrolebinding kubernetes-dashboard
$ sudo k3s kubectl delete clusterrole kubernetes-dashboard
# kube-explorer
文 2 点
# Rancher UI
文 3 点
# 参考资料:
[1] k8s-dashboard 版本参考
[2] k8s 仪表盘 - 官方
[3] k8s-dashboard 远程访问
[4] blog 参考资料 主要参考