# K3S 安装 - 仪表盘及卸载 K3s

# 仪表盘介绍:

推荐使用三种仪表盘工具,分别是对应是 Kubernetes Dashboardkube-explorerRancher UI ,其各自各有优劣。

  1. Kubernetes Dashboard
  2. kube-explorer
  3. 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

二。本文方法:

  1. https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml 复制到本地浏览器即可打开,将其中内容复制到 recommended.yaml (需要自己建该文件)。

  2. recommended.yaml 文件拖入 master 节点的 root 目录。

  3. 执行 kubectl apply -f recommended.yaml ,如下:

    image-20240112142715606

    验证 运行如下代码:

    $ 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.ymldashboard.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 模式,需要修改。
image-20240112143657433
这里提供两种方式:

  1. 端口转发的方式暴露

    # 端口转发的方式暴露
    kubectl port-forward -n kubernetes-dashboard --address 0.0.0.0 svc/kubernetes-dashboard 8443:443
  2. 以 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:端口 既可访问

    2221111

  1. 升级 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
  2. 删除仪表盘和 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 参考资料 主要参考

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Watsmal 微信支付

微信支付

Watsmal 支付宝

支付宝

Watsmal 贝宝

贝宝