网页跟网站的区别,北京seo公司司,wordpress自动发外链,wordpress迁移服务器前言
上篇成功部署Kubernetes集群后#xff0c;为了方便管理和监控集群资源#xff0c;安装Kubernetes Dashboard显得尤为重要。Kubernetes Dashboard 是一个通用的、基于 Web 的 UI#xff0c;旨在让用户轻松地部署容器化应用到 Kubernetes 集群#xff0c;并对这些应用进…前言
上篇成功部署Kubernetes集群后为了方便管理和监控集群资源安装Kubernetes Dashboard显得尤为重要。Kubernetes Dashboard 是一个通用的、基于 Web 的 UI旨在让用户轻松地部署容器化应用到 Kubernetes 集群并对这些应用进行故障排查以及管理集群资源。通过 Dashboard你可以获取集群内运行的应用概览信息创建或修改各种 Kubernetes 资源如 Deployment、Job、DaemonSet 等还可以执行弹性伸缩、滚动升级等操作。
一、准备工作
1. 确认Kubernetes集群状态
确保你的Kubernetes集群已经成功部署并处于运行状态。如果尚未部署请先参考上两篇博文进行集群部署。
2.选择 Dashboard版本
前往 Dashboard官方下载页面选择适配的版本进行下载。由于我的 Kubernetes 版本是 1.30.8根据官方建议选择 kubernetes-dashboard-7.7.0 版本。
3. 安装Helm
从Kubernetes Dashboard 7.0.0版本开始官方已经不再支持基于Manifest文件的安装方式转而推荐使用Helm进行安装。因此需要先安装Helm。
Helm和Kubernetes版本
Helm 版本与支持的 Kubernetes 版本有对应关系详细内容请参考 Helm 官方文档Helm 版本对应关系。根据Kubernetes的版本我们选择安装 Helm 3.15.x 版本。
安装Helm
用二进制版本安装
下载Helm访问Helm官方文档根据操作系统下载相应版本的Helm二进制文件。解压并安装将下载的二进制文件解压并移动到系统PATH中的目录如/usr/local/bin。初始化Helm执行helm help检查Helm是否安装成功并添加稳定仓库。
tar -zxvf helm-v3.15.x-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
helm help
helm repo add bitnami https://charts.bitnami.com/bitnami二、安装Kubernetes Dashboard
使用 Helm 安装
首先添加 Dashboard 的 Helm 仓库并更新本地库
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm repo update然后可以使用以下命令来安装最新版的 Dashboard
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \--namespace kubernetes-dashboard \--create-namespace如果需要指定版本则可以使用 --version 参数
helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \--namespace kubernetes-dashboard \--create-namespace \--version 7.0.0 \--timeout 600s如果有网络问题或超时可以选择手动下载安装文件并在本地安装。
helm install kubernetes-dashboard /root/kubernetes-dashboard-7.7.0.tgz --namespace kubernetes-dashboard --create-namespace如果想要在安装时修改默认参数可以使用--set keyvalue[,keyvalue]的参数指定方式修改参数的数值。例如
helm install kubernetes-dashboard/kubernetes-dashboard --name kubernetes-dashboard \--setapi.containers.resources.limits.cpu200m或者可以在安装图表时提供指定上述参数值的 YAML 文件。例如
helm install kubernetes-dashboard/kubernetes-dashboard --name kubernetes-dashboard -f values.yaml提示您可以使用默认使用的values.yaml作为参考查找属性和默认值。 三、访问Dashboard
使用 Port Forwarding进行命令行代理
Port Forwarding 是一种临时性的解决方案它允许你通过本地机器上的端口直接访问集群内部的服务。这对于开发人员来说非常方便因为他们不需要对外暴露服务即可进行调试或测试。
方法概述
Port Forwarding 是一种临时性的解决方案它允许你通过本地机器上的端口直接访问集群内部的服务。这对于开发人员来说非常方便因为他们不需要对外暴露服务即可进行调试或测试。
开启访问
要通过 Port Forwarding 访问 Dashboard请执行以下命令
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard 8443:443这将Dashboard在 https://localhost:8443 上可用。 提示测试完成可以通过按下CtrlC来终止端口转发 优点与缺点
这种方式的优点在于方法简单易用无需更改任何集群配置适合小规模测试或个人使用。但仅限于执行命令的本地机器它是临时的关闭终端后连接即断开无法在其他机器上访问并且每次使用时都需要手动开启端口转发。
修改服务类型为 NodePort
方法概述
NodePort 允许 Kubernetes 服务在各个集群节点的特定端口上对外暴露。这使得用户能够通过任意节点的 IP 地址和指定 NodePort 进行访问 Dashboard。范围通常是 30000-32767从而允许外部流量通过该端口进入集群并访问指定的服务。
开启访问
编辑 Dashboard 的服务配置将其类型更改为 NodePort
kubectl patch svc kubernetes-dashboard-kong-proxy -n kubernetes-dashboard --typejson -p [{op:replace,path:/spec/type,value:NodePort}]若需要指定端口可以指定一个固定的 nodePort
kubectl patch svc kubernetes-dashboard-kong-proxy -n kubernetes-dashboard --typejson -p [{op:add,path:/spec/ports/0/nodePort,value:30000}]也可以直接使用编辑器编辑然后保存退出即可
优点与缺点
这种方法一旦配置完成只要集群存在就可以持续访问提供了长期稳定的访问途径同时可以直接通过任意节点 IP 加上指定端口号来访问服务易于访问。但是它也带来了较高的安全风险如果未正确配置防火墙规则可能会导致服务被未经授权的人访问此外还需要选择一个未被占用的端口因此有一定的端口限制。 如果显示您的连接不是私密连接在当前页面用键盘输入thisisunsafe,不是在地址栏输入就直接输入页面即会自动刷新进入网页。不行就多输入几次但是要确保输入是正确的。具体请查看这篇博客 三、创建用户和token
创建ServiceAccount和ClusterRoleBinding
为了快速访问Dashboard可以创建一个具有管理员权限的ServiceAccount并生成一个临时Token
cat dashboard-user.yaml EOFapiVersion: v1kind: ServiceAccountmetadata:name: admin-usernamespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:name: admin-userroleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-adminsubjects:- kind: ServiceAccountname: admin-usernamespace: kube-systemEOF# 创建用户kubectl apply -f dashboard-user.yaml# 生成临时tokenkubectl -n kube-system create token admin-user7.0以前的版本安装
下载配置文件
进入到master节点下载dashboard对应版本的 recommended.yaml 文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml设置访问端口
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard将type: ClusterIP 改为 type: NodePort保存退出会生成一个范围是 30000-32767的端口。 查看启动的端口
kubectl get svc -A |grep kubernetes-dashboard创建访问账号
#创建访问账号准备一个yaml文件 vi dash.yaml
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboardkubectl apply -f dash.yaml获取令牌访问
#获取访问令牌
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath{.secrets[0].name}) -o go-template{{.data.token | base64decode}}使用令牌登录 版本差异
对于最新的Kubernetes版本官方确实更加强调安全性和最佳实践。因此不推荐使用不过期的令牌。相反官方建议使用短期有效的令牌并且这些令牌应该定期轮换以减少潜在的安全风险。 新版的Kubernetes使用kubectl -n kubernetes-dashboard get secret会报错secret不再默认自动挂载到Pod中而是需要显式地请求。由于官方不推荐这种方式所以本文也不再进行介绍。