【云安全】云原生-K8S(三) 安装 Dashboard 面板

在Kubernetes中安装Dashboard需要几个步骤,包括部署Dashboard组件、配置访问权限以及暴露Dashboard服务等。以下是详细的步骤:

1. 部署 K8S Dashboard

可以通过以下命令用Kubernetes官方的YAML文件来快速部署,由于是国外网站,需要注意网络问题,可以使用代理解决网络不通的问题

复制代码
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

#网络不通,可以使用代理
export http_proxy=http://192.168.48.1:7890
export https_proxy=http://192.168.48.1:7890

这将创建Kubernetes Dashboard的所有资源,包括部署、服务、RBAC角色和角色绑定。

查看 Dashboard 部署状态,使用以下命令检查是否成功安装

复制代码
kubectl -n kubernetes-dashboard get pods -o wide

成功安装

如果状态不正常,通过删除其 Pod,让 Kubernetes 自动重新创建一个新的 Pod,重启Dashboard

复制代码
kubectl -n kubernetes-dashboard delete pod kubernetes-dashboard-xxxxxxx-xxxxx

如果状态一直不正常,需要删除Deployment后重新安装

复制代码
kubectl -n kubernetes-dashboard delete deployment kubernetes-dashboard

#删除之后,重新来一遍
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

2. 创建服务账户和 RBAC 权限

默认情况下,Dashboard需要合适的权限才能访问Kubernetes集群。你可以为Dashboard创建一个服务账户,并授予它足够的权限。以下是创建一个具有集群管理员权限的服务账户的YAML文件(dashboard-adminuser.yaml)

复制代码
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

应用此YAML文件

复制代码
kubectl apply -f dashboard-adminuser.yaml

成功创建服务账户和RBAC权限

3. 获取登录 Token

Dashboard默认使用Token来进行认证。为了获取登录Token,你可以执行以下命令

复制代码
#首先,运行以下命令来查看 admin-user 的详细信息
kubectl -n kubernetes-dashboard get serviceaccount admin-user -o yaml

#然后,在输出中,你会看到一个名为 secrets 的字段,它包含一个 secret 名称。接下来,使用该 secret 名称查看 token
kubectl -n kubernetes-dashboard describe secret <secret-name>

将会输出一个Token,稍后在访问Dashboard时需要用到

4. 访问 K8S Dashboard

Kubernetes Dashboard通常通过集群内部的服务暴露,因此你可以选择使用 kubectl proxy 来访问它,执行以下命令启动

复制代码
kubectl proxy

#这会在本地启动一个代理,使得你可以通过以下URL访问Dashboard

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

#打开这个链接后,你将被要求输入登录Token。在登录页面中粘贴你刚才中获得的Token

5. 暴露 Dashboard 外部访问

Ps:外部访问无需开启 kubectl proxy

暴露Dashboard外部访问,可以将Dashboard服务暴露为NodePort或者LoadBalancer,具体取决于你所在的环境。例如,如果你想通过NodePort暴露Dashboard,可以修改Dashboard服务的配置

复制代码
kubectl -n kubernetes-dashboard edit svc kubernetes-dashboard

将服务类型(type)修改为 NodePort

复制代码
spec:
  type: NodePort

保存并退出,查看 kubernetes-dashboard 命名空间下的所有Service(服务)资源,确定暴露端口

复制代码
kubectl get svc -n kubernetes-dashboard

这时你可以通过节点IP和暴露的端口在浏览器中访问Dashboard

利用刚才的token成功登录

这样你就能够通过Dashboard来管理和监控你的Kubernetes集群了。

相关推荐
阿里云云原生1 小时前
让 AI Agent 看见正在发生的业务,阿里云 EventHouse 正式商业化
云原生
Elastic 中国社区官方博客1 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
AOwhisky2 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
风曦Kisaki4 小时前
#企业级docker私有仓库构建:harbor仓库与阿里云镜像仓库
阿里云·docker·容器
期待着20134 小时前
docker 安装 ,在centos7.9
运维·docker·容器
admin and root4 小时前
「移动安全」安卓APP 反编译&frida脱壳技巧分享
android·开发语言·python·web安全·微信小程序·移动安全·攻防演练
微三云 - 廖会灵 (私域系统开发)5 小时前
电商系统从单体到微服务拆分实践:拆什么、怎么拆、拆完后怎么办
微服务·云原生·架构
云水一下5 小时前
零基础玩转bWAPP靶场(十四):SQL 注入(GET/选择型)
web安全·sql注入·bwapp
ShirleyWang0125 小时前
让headlamp控制台能访问
linux·服务器·python·k8s·k3s
Demons_kirit5 小时前
实验:文件路径遍历,简单情况(Lab: File path traversal, simple case)
网络安全