问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

在K8s/K3s集群中安装与卸载Dashboard

创作时间:
作者:
@小白创作中心

在K8s/K3s集群中安装与卸载Dashboard

引用
CSDN
1.
https://blog.csdn.net/Dandelin/article/details/138296061

本文将详细介绍如何在K8s/K3s集群中安装和卸载Dashboard。通过Helm进行安装,并配置相关服务和权限,使Dashboard能够对外提供访问。同时,也提供了完整的卸载步骤,确保资源能够被彻底清理。

安装步骤

  1. 安装Helm
    由于安装Dashboard需要使用Helm命令,因此首先需要在master节点上安装Helm。具体的安装步骤可以参考Helm官方GitHub仓库中的说明。

  2. 配置KUBECONFIG
    Helm会使用kubectl默认的KUBECONFIG配置,这里我们需要将KUBECONFIG换成k3s的配置,否则会链接失败。在master主机上输入以下命令:

    export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
    
  3. 添加Dashboard源并安装
    Helm下载完毕后,根据Dashboard官网的说明,在master主机中添加Dashboard源:

    helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
    

    之后进行更新:

    helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
    

    安装完成后,会出现如下结果:

  4. 修改服务类型
    通过以下命令查看命名空间kubernetes-dashboard下的服务:

    kubectl -n kubernetes-dashboard get svc
    

    与网上常规的只有一个kubernetes-dashboard服务不同,这里有多个kubernetes-dashboard服务。经过测试发现,只需对kubernetes-dashboard-kong-proxy的type进行修改,将其从ClusterIP修改为NodePort,这样Dashboard才能提供外部的访问端口:

    kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard-kong-proxy
    

    修改后的效果如下:

  5. 创建ServiceAccount和ClusterRoleBinding
    在任何地方新建一个名为dashboard-admin.yaml的yaml文件:

    vi dashboard-admin.yaml
    

    文件内容如下:

    # 创建ServiceAccount
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: admin-user
      namespace: kubernetes-dashboard
    ---
    # 创建ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: admin-user
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin  # Kubernetes中内置的 ClusterRole,拥有对集群中所有资源的完全控制权
    subjects:
    
  • kind: ServiceAccount
    name: admin-user
    namespace: kubernetes-dashboard
    之后运行以下指令:
    ```bash
    kubectl apply -f dashboard-admin.yaml
    
  1. 获取Token
    由于Kubernetes 1.24之后不再为ServiceAccount自动生成Secret,因此需要使用以下方式创建Token:

    kubectl -n kubernetes-dashboard create token admin-user
    
  2. 访问Dashboard
    在外部浏览器输入以下地址(注意将红框中的IP地址替换为自己的master主机的IP地址,可以用ip addr查看ens33的IP地址):

    http://<master-ip>:<nodeport>/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
    

    第一次访问需要点高级选择继续访问,然后复制之前提供的Token粘贴上去即可登录Dashboard。

卸载步骤

  1. 卸载Helm Release
    由于是用Helm安装的,所以用它来卸载:

    helm list -n kubernetes-dashboard
    helm uninstall <release-name> -n kubernetes-dashboard
    

    <release-name> 替换为实际的 Helm Release 名称(可以通过helm list -n kubernetes-dashboard查看kubernetes-dashboard命名空间下的Helm Release)。

  2. 删除相关资源
    以下框住的内容可以直接通过kubectl delete -f admin-user.yaml来删除(一键删除admin-user.yaml文件定义的所有资源):

    kubectl get serviceaccount -n kubernetes-dashboard
    kubectl get clusterrolebinding
    kubectl delete serviceaccount admin-user -n kubernetes-dashboard
    kubectl delete clusterrolebinding admin-user
    
  3. 删除命名空间
    检查Kubernetes Dashboard资源是否已删除:

    kubectl get all -n kubernetes-dashboard
    

    删除kubernetes-dashboard命名空间:

    kubectl delete namespace kubernetes-dashboard
    

    验证命名空间删除情况:

    kubectl get namespaces
    

    验证清理结果:

    kubectl get all --all-namespaces | grep dashboard
    

    如果没有输出,说明所有与Kubernetes Dashboard相关的资源都已成功删除。

  4. 清理Helm仓库
    最后将k8s资源从Helm仓库移除:

    helm repo remove kubernetes-dashboard
    
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号