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

1.因为安装dashboard需要helm命令,因此首先安装helm至master节点 Releases · helm/helm · GitHub 这里网上都有教程不做阐述

2.(k8s忽略直接下一步)

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

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

3.helm下载完毕后,根据dashboard官网GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters

在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

会出现以下结果

但是我们发现外部网站并不能访问dashboard

4.查看命名空间kubernetes-dashboard下的服务

kubectl -n kubernetes-dashboard get svc

与网上常规的只有一个kubernetes-dashboard服务不同 这里有多个kubernetes-dashboard服务

网上并没有详细说明,经过测试我发现 我们只需对kubernetes-dashboard-kong-proxy的type进行修改

5.将kubernetes-dashboard-kong-proxy的TYPE从ClusterIp修改为NodePort这样dashboard才能提供外部的访问端口

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

6.在任何地方新建的一个yaml名称为dashboard-admin.yaml

vi dashboard-admin.yaml

内容为:

# vim dashboard.admin-user.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  #k8s中内置的 ClusterRole,拥有对集群中所有资源的完全控制权
subjects:
 - kind: ServiceAccount
   name: admin-user
   namespace: kubernetes-dashboard

7.之后我们运行如下指令:

kubectl apply -f dashboard-admin.yaml

8.

1.24之后Kubernetes不再为ServiceAccound自动生成Secret,因此之后需要tocken使用如下方式创建:

kubectl -n kubernetes-dashboard create token admin-user

9,查看更改后 Dashboard向外部提供的访问端口

在外部浏览器输入

注意红框是你自己的master主机的IP地址,可以用ip addr 查看 ens33的ip地址即是

10.

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

卸载:

        

因为是用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)

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

---------------------------------------------------------------

删除当前的 ServiceAccount 和 ClusterRoleBinding

kubectl get serviceaccount -n kubernetes-dashboard

kubectl get clusterrolebinding

使用以下命令确认资源已被删除。

kubectl delete serviceaccount admin-user -n kubernetes-dashboard

kubectl delete clusterrolebinding admin-user

确保 admin-user 不在列表中

-------------------------------------------------------------

1. . 检查 Kubernetes Dashboard 资源是否已删除

kubectl get all -n kubernetes-dashboard

2. 删除 kubernetes-dashboard 命名空间

kubectl delete namespace kubernetes-dashboard

3. 验证命名空间删除情况

kubectl get namespaces

 

4. 验证清理结果

kubectl get all --all-namespaces | grep dashboard

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

5.将k8s资源从 helm仓库移除

helm repo remove kubernetes-dashboard

要在 k3s 上安装 Kubernetes Dashboard,可以按照以下步骤进行操作: 1. 首先,确保已经安装了 k3s。你可以按照 k3s 的官方文档进行安装。 2. 安装 kubectl 命令行工具。你可以使用以下命令来安装 kubectl: ``` curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl ``` 3. 验证 kubectl 是否安装成功: ``` kubectl version --client ``` 4. 创建一个名为 `dashboard.yaml` 的 YAML 文件,将以下内容复制到文件中: ```yaml apiVersion: v1 kind: Namespace metadata: name: kubernetes-dashboard labels: k8s-app: kubernetes-dashboard apiVersion: v1 kind: ServiceAccount metadata: name: kubernetes-dashboard namespace: kubernetes-dashboard apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kubernetes-dashboard roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: kubernetes-dashboard namespace: kubernetes-dashboard apiVersion: apps/v1 kind: Deployment metadata: name: kubernetes-dashboard namespace: kubernetes-dashboard spec: replicas: 1 selector: matchLabels: k8s-app: kubernetes-dashboard template: metadata: labels: k8s-app: kubernetes-dashboard spec: serviceAccountName: kubernetes-dashboard containers: - name: kubernetes-dashboard image: kubernetesui/dashboard:v2.0.3 ports: - containerPort: 8443 protocol: TCP args: - --auto-generate-certificates - --namespace=kubernetes-dashboard - --enable-skip-login ``` 5. 通过以下命令将 YAML 文件应用到 kubernetes 集群中: ``` kubectl apply -f dashboard.yaml ``` 6. 等待一段时间,可以通过以下命令检查 dashboard 是否已经启动: ``` kubectl get pods -n kubernetes-dashboard ``` 7. 如果所有的 pod 状态都是 "Running",则 dashboard 已经成功启动。 8. 创建一个代理访问 dashboard: ``` kubectl proxy ``` 9. 打开浏览器,访问 `http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/`,即可进入 Kubernetes Dashboard。 请注意,将 Dashboard 暴露在公共网络中可能存在安全风险,请谨慎使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值