当前位置: 首页 > wzjs >正文

做网站的那些个人工作室十一冶建设集团有限责任公司网站

做网站的那些个人工作室,十一冶建设集团有限责任公司网站,用dw做网站图片的基本尺寸,seo排名优化资源本次实验旨在完成 Kubernetes Dashboard 的部署、配置及访问,掌握通过 Helm 安装 Dashboard、创建访问权限、配置端口转发及 NodePort 访问方式,并实现基于令牌的安全登录,最终通过 Web 界面管理 Kubernetes 集群资源。 实验环境 单节点 Ku…

本次实验旨在完成 Kubernetes Dashboard 的部署、配置及访问,掌握通过 Helm 安装 Dashboard、创建访问权限、配置端口转发及 NodePort 访问方式,并实现基于令牌的安全登录,最终通过 Web 界面管理 Kubernetes 集群资源。

实验环境

  • 单节点 Kubernetes 集群(master 节点)
  • 操作系统:CentOS/RHEL
  • Kubernetes 版本:v1.24+
  • Helm 版本:v3.12.3

Dashboard 是基于网页的 Kubernetes 用户界面。

你可以使用 Dashboard 将容器应用部署到Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment、Job、DaemonSet 等等)。 例如,你可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。
Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。
https://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/web-ui-dashboard/ 官方解释
 
Kubernetes Dashboard 目前仅支持基于 Helm 的安装,因为它速度更快, 并且可以让我们更好地控制
Dashboard 运行所需的所有依赖项。
https://cloud.tencent.com/developer/article/2497939  Kubernetes 包管理工具之 Helm 简介

注意:要在有k8s的虚拟机中完成

1.手动下载安装Helm (适用于内网/离线环境)

也可以使用官方脚本一键安装,二选一即可,我选择手动安装

# 官方脚本一键安装helm
# 原理:脚本会自动下载最新版本的 Helm 二进制文件并安装到系统路径。
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3  
chmod 700 get_helm.sh  
sudo ./get_helm.sh  
helm version
手动安装helm
# 下载wget工具
yum install -y wget# 下载 Helm v3.12.3(根据系统架构,如 `linux-amd64`,选择版本)
wget https://get.helm.sh/helm-v3.12.3-linux-amd64.tar.gz# 解压后将 `helm` 文件移动到系统 PATH 目录(如 `/usr/local/bin`)
tar -zxvf helm-v3.12.3-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm# 验证安装
helm version

 2.默认情况下不会部署 Dashboard,可以通过以下命令部署

# 进入目录
cd /etc/yum.repos.d/# 添加 kubernetes-dashboard 仓库
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/# 使用 kubernetes-dashboard Chart 部署名为 kubernetes-dashboard 的 Helm Release
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard# 多了一个命名空间kubernetes-dashboard
kubectl get namespaces# 查看kubernetes-dashboard 产生的pod
kubectl get pod -n kubernetes-dashboard# 查看service,其中 kubernetes-dashboard-kong-proxy 是我们访问的主要pod;
kubectl get svc -A

 

错误情况处理:

从输出来看,Kubernetes Dashboard 已经成功部署,但所有 Pod 都处于 Pending 状态,这表示它们无法被调度到节点上运行。 

 进行诊断,定位问题出现在哪,可以将以下命令的输出导入ai询问解决办法

# 检查 Pod 的 Pending 原因
kubectl describe pods -n kubernetes-dashboard重点关注 Events 部分的错误信息,常见原因包括:
资源不足(CPU/内存不够)。
节点选择器/污点不匹配。
PV/PVC 问题(如果 Dashboard 需要持久化存储)。# 检查节点资源状态
kubectl get nodes# 定位具体原因
kubectl describe pods
kubectl describe nodes

从你的诊断信息来看,Kubernetes Dashboard 的 Pod 处于 Pending 状态的主要原因是 节点调度问题。具体表现为:

核心问题分析

  1. 节点状态异常

    • master 节点:Ready,但有污点 node-role.kubernetes.io/control-plane:NoSchedule(默认不允许调度普通 Pod)。

    • node1 和 node2NotReady,且有污点 node.kubernetes.io/unreachable:NoSchedule(节点失联导致不可调度)。

  2. 调度失败的直接原因

    • 所有 Dashboard Pod 因节点污点无法调度到任何节点:

      0/3 nodes are available:
        1 node(s) had untolerated taint {node-role.kubernetes.io/control-plane: },
        2 node(s) had untolerated taint {node.kubernetes.io/unreachable: }.

由于本实验仅使用一台k8s的master节点的机子,可采用临时的解决办法,不需要将node1和node2变成ready,只需要临时允许 Pod 调度到 master

# 1. 删除 master 的 NoSchedule 污点
kubectl taint nodes master node-role.kubernetes.io/control-plane:NoSchedule-# 2. 重新部署 Dashboard(触发重新调度)
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard \--namespace kubernetes-dashboard

 https://localhost:8443

验证修复结果

# 查看kubernetes-dashboard 产生的pod
kubectl get pod -n kubernetes-dashboard# 查看service,其中 kubernetes-dashboard-kong-proxy 是我们访问的主要pod;
kubectl get svc -A

 

3.访问 Dashboard 用户界面

访问方式原理优势常见问题
NodePort(10.1.1.85:30083)通过集群节点的物理端口访问,无需本地进程可远程访问防火墙限制、证书验证
端口转发(localhost:8443)通过 kubectl 进程将本地端口映射到集群 Service,仅本地可用无需开放节点防火墙进程终止、端口占用、浏览器限制
(1)执行如下指令:启动dashboard(本地开发访问方式)
# 启动命令进行端口转发
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443 --address 0.0.0.0  &kubectl 会使得 Dashboard 可以通过 [https://localhost:8443](https://localhost:8443/)
访问。
UI **只能**通过执行这条命令的机器进行访问。# 验证端口已绑定
ss -tulnp | grep 8443# 若返回 HTML 内容,说明端口转发正常
curl -k https://localhost:8443

 

此时正常情况可以通过访问Kubernetes 仪表板(本地访问)

注意:登录需要token,且token有时效性,获得令牌的步骤在下面

https://10.1.1.85:8443/

​ 

(2)创建 ServiceAccount 及ClusterRoleBinding角色绑定

K8S有两种用户:User 和 Service Account,User 给人用,Service Account 给进程用,让进程有相关权限,Dashboard 是一个进程,我们就可以创建一个Service Account 给它 

通过命令方式创建用户和绑定角色(也可以通过yaml 文件创建)

创建 ServiceAccount 和 ClusterRoleBinding(授予管理员权限)# 创建 ServiceAccount(管理员账户)
kubectl create serviceaccount admin01 -n kubernetes-dashboard# 绑定 ClusterRoleBinding(授予集群管理员权限)
kubectl create clusterrolebinding admin01 --clusterrole=cluster-admin \--serviceaccount=kubernetes-dashboard:admin01

(3)创建对应服务账号的token,我选择自定义token有效期为24h
生成访问令牌(Token)正常来说时间不用太长# 生成默认有效期(1小时)的令牌
kubectl -n kubernetes-dashboard create token admin01# 生成自定义有效期(24小时)的令牌
kubectl -n kubernetes-dashboard create token admin01 --duration 24heyJhbGciOiJSUzI1NiIsImtpZCI6ImxTR3lxNnE3UlI2em9qLUM0d3JMWHFOcG5MOUllWDZRY1ZYOU5MRGs3NTQifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzQ4NDIzMjk1LCJpYXQiOjE3NDgzMzY4OTUsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbjAxIiwidWlkIjoiNTM2ZjZjODYtMDQ1Mi00MTA2LTg4MzYtNmZkZDFlYzY4OTc3In19LCJuYmYiOjE3NDgzMzY4OTUsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbjAxIn0.Uh55Iqr1gWlcCXrEFMhQcB2gmNDSiqNkJPv4b_m7kQqKxL59sSOgPTNov4PCgrP9mmYgb-hahBarMJ0JRPelYPA3vFt20sT1MAQR3V-xNpRITUUkqEY3UZ_5D7UTSYjP9624r5-vsZ_cQj60Kfcm9zsmZTXD67nAX_MB8RtYBwWvg-fEcvRDYpSugTQz8TePmcGTFUyOxClGDby4n9N6SKFtoSJFaBJVa7neKeFE6DWA3L3Xlc1S9HObzbo2_BZct4LJnqHoIcjv2uQoRy2goiVJzuRU_fqnZaJkKjQDxmp8IBfkQScSpBQwECNvqeP3wLwPR34CshwjrBjzRMWneg
​ (4)修改端口类型,可以实现外部访问
修改 Service 类型为 NodePort(外部访问)# 修改 Service 类型为 NodePort
kubectl patch svc kubernetes-dashboard-kong-proxy -n kubernetes-dashboard \--type='json' -p '[{"op":"replace","path":"/spec/type","value":"NodePort"}]'# 指定固定 NodePort(例如 30083)
kubectl patch svc kubernetes-dashboard-kong-proxy -n kubernetes-dashboard \--type='json' -p '[{"op":"add","path":"/spec/ports/0/nodePort","value":30083}]'

测试访问:https://10.1.1.85:30083/

由于 Dashboard 使用的是自签名证书,浏览器会显示安全警告。不同浏览器的处理方式如下:

  • Chrome/Edge
    输入地址后可能会看到 “此站点不安全” 的提示,点击 “高级” → “继续前往 localhost(不安全)”
  • Firefox
    点击 “高级” → “接受风险并继续”
  • Safari
    可能需要先在 “系统偏好设置” → “安全性与隐私” 中允许访问该证书。

输入令牌点击登录 

出现以下页面即可

4. k8s dashboard 的基本使用

(1)点击pods,创建pod(三种方式)

直接编写yaml或json 文件;导入已经写好的yaml或json;通过表单创建

点击部署,刷新状态查看

点击对应的pod 能看到详细信息;类似与  kubectl describe  pod xx 

​ (2)pod具体操作——点击 如下图标,看看作用

1为查看日志

2为在pod中运行  

3为编辑资源 

4为删除资源 

5.扩展内容

(1)权限查询
role: 名称空间的系统权限
clusterrole:全局权限
(2)系统权限
查询某一个名称空间内的所有系统权限
kubectl -n kube-system get role
查询名称空间内的系统权限的详细信息
kubectl -n kube-system describe role kube-proxy


(3)全局权限
查看所有全局权限
kubectl -n kube-system get clusterrole


指定查看某一个权限的详细信息
kubectl -n kube-system describe clusterrole admin


(4)查看用户
kubectl get serviceaccounts  [用户名]  -n kubernetes-dashboard 

示例:

# 查询 kubernetes-dashboard 命名空间下的所有 ServiceAccount

kubectl get serviceaccounts -n kubernetes-dashboard

6.验证内容

  1. 部署验证

    • Dashboard 相关 Pod 均处于 Running 状态,包括 API、Auth、Kong 代理和 Web 组件
    • Service 配置正确,kubernetes-dashboard-kong-proxy 暴露目标端口
  2. 访问验证

    • 本地端口转发访问 https://localhost:8443 成功返回 Dashboard 页面
    • NodePort 方式访问 https://10.1.1.85:30083 可正常登录
    • 令牌验证通过,可进入集群管理界面
  3. 功能验证

    • 成功通过 Web 界面创建 Pod、查看资源状态
    • 实现 Pod 日志查看、在线编辑、删除等操作
    • 验证 RBAC 权限查询功能,可查看 Role、ClusterRole 及 ServiceAccount 信息

7.关键问题与解决方案

  1. Pod 调度失败

    • 原因:master 节点默认禁止调度普通 Pod(NoSchedule 污点)
    • 解决:移除污点 kubectl taint nodes master node-role.kubernetes.io/control-plane:NoSchedule-
  2. 端口占用问题

    • 原因port-forward 进程未正确终止导致端口残留
    • 解决:强制终止进程 pkill -9 -f "kubectl port-forward",重新启动转发
  3. 证书验证失败

    • 原因:自签名证书未被浏览器信任
    • 解决:Chrome 中输入 thisisunsafe 强制跳过,或导入证书到浏览器信任列表
  4. 令牌失效问题

    • 原因:默认令牌有效期仅 1 小时
    • 解决:使用 --duration 参数生成长期令牌(如 24h

本次实验完整实现了 Kubernetes Dashboard 的部署与访问,验证了从环境准备、组件部署、权限配置到界面操作的全流程。通过解决节点调度、端口占用、证书验证等典型问题,掌握了 Dashboard 在单节点集群中的实用部署方案。Dashboard 作为 Kubernetes 的图形化管理工具,有效降低了集群操作门槛,但其安全配置和性能优化仍需在实际应用中持续关注。


文章转载自:

http://D5HnB7yG.myfwb.cn
http://JJSQv5lP.myfwb.cn
http://XDOJ8YbN.myfwb.cn
http://GTbKV7GI.myfwb.cn
http://hsLwBoFv.myfwb.cn
http://66stFTgZ.myfwb.cn
http://LviBJ1Ic.myfwb.cn
http://VSd4QStO.myfwb.cn
http://sJVj5eVF.myfwb.cn
http://SAuShbS3.myfwb.cn
http://gwiFOO31.myfwb.cn
http://lbnyO0JQ.myfwb.cn
http://mQ1ErFJD.myfwb.cn
http://53vkiyAq.myfwb.cn
http://UeWgdUOg.myfwb.cn
http://VzqvLdEy.myfwb.cn
http://rVy05kOk.myfwb.cn
http://Voa2lbx0.myfwb.cn
http://O3oJMFnv.myfwb.cn
http://B0FM6dMQ.myfwb.cn
http://lXuMBAYP.myfwb.cn
http://0qQCsb8u.myfwb.cn
http://XOUyVeiA.myfwb.cn
http://SFgnppJJ.myfwb.cn
http://NlJHh18V.myfwb.cn
http://d65jty9r.myfwb.cn
http://OaDkgxIb.myfwb.cn
http://bgKbOACY.myfwb.cn
http://oTozm7dp.myfwb.cn
http://Rq4cuKCO.myfwb.cn
http://www.dtcms.com/wzjs/610996.html

相关文章:

  • 深圳罗湖住房和建设局网站收纳用品网站建设
  • 昆明网站建设首选公司seo搜索引擎优化师
  • 做网站简单返利网站程序
  • 做携程怎样的网站校园网页设计模板素材
  • 做的网站怎么上传图片网站怎么做分时
  • 太原网站建设口碑推荐云虚拟主机怎么建网站
  • 平顶山网站制作哪家公司好南京网站设南京网站设计计
  • 南平摩托车罚款建设网站缴费百度明星人气榜
  • 老网站做seo能不能重新注册怎样在百度上做广告推广
  • 怎么自己做网站游戏网站不能上传附件
  • 北京网站seo价格优惠券的网站制作
  • 做电子杂志的网站汽车网站更新怎么做
  • 建设食品网站如何给一个公司做网站
  • 专门做网站的公司 南阳国外装修网站模板
  • 织梦网站栏目管理wordpress自动上传至cdn
  • 天河做网站哪家强如何做网站吸引广告商
  • 陕西住房和建设厅网站郑州便民网
  • ppt成品网站表白网页制作软件app
  • 哪些网站可以做淘宝客做网站有费用吗
  • 免费论坛申请网站解决网站提示有风险
  • 大连网站建设价格低哪里有做手机壳的的
  • 做网站播放未上映的电影凡科网官网登陆
  • jsp做的网页是网站吗大江网站建设
  • 织梦网站怎么安装小程序定制开发团队
  • 在线科技成都网站推广公司如何建设一个国外网站
  • 工业信息部网站备案百度云虚拟主机如何建设网站
  • 做哪类视频网站需要视频牌照wordpress 云播插件
  • 制作网站软件网络广告策划书案例
  • phpcms 适合什么的网站网上购物网站模板
  • 做网站去哪个平台提供常州网站推广