Kubernetes(K8s)(四)——k8s的web管理页面
(1).部署Kubernetes Dashboard web页面
Kubernetes Dashboard(仪表盘)是Kubernetes项目中基于Web监控和操作界面的项目。
1)确认节点正常
1 2 3 4 | [root@kube-master ~]# kubectl get node NAME STATUS AGE kube-node1 Ready 35d kube-node2 Ready 35d |
2)创建名为dashborad-deployment.yaml的deployment资源配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | [root@kube-master ~]# vim dashboard-deployment.yaml apiVersion: extensions/v1beta1 #指定api版本 kind: Deployment #指定资源类型 metadata: #指定资源元数据(属性) name: kubernetes-dashboard-latest #指定deployment名称 namespace : kube-system #指定命名空间 spec: #资源内容详细定义 replicas: 1 #副本期望值 template: #模板 metadata: #模板元数据 labels: #自定义标签 k8s-app: kubernetes-dashboard version: latest kubernetes.io/cluster-service: "true" spec: #模板内容详细定义 containers: #容器内容详细定义 - name: kubernetes-dashboard #容器名称(docker容器实例名称的一部分) image: docker.io/bestwu/kubernetes-dashboard-amd64:v1.6.3 #使用镜像,这个镜像是中文的 imagePullPolicy: IfNotPresent #拉取策略 resources: #容器运行资源限制 limits: #上限 cpu: 100m #0.1核 memory: 50Mi #50M(1024计算) requests: #下限 cpu: 100m memory: 50Mi ports: #容器对外开放端口 - containerPort: 9090 #容器端口号 args: #容器启动时的参数命令 - --apiserver-host=http: //192.168.128.110:8080 livenessProbe: #监控检测设置 httpGet: #http获取检测 path: / #uri地址 port: 9090 #容器端口号 initialDelaySeconds: 30 #启动后首次检测时间为30秒后 timeoutSeconds: 30 #检测超时时间30秒 |
3)创建名为dashboard-service.yaml的service服务配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [root@kube-master ~]# vim dashboard-service.yaml apiVersion: v1 #指定api版本 kind: Service #指定资源类型 metadata: #资源元数据(属性) name: kubernetes-dashboard # namespace : kube-system #命名空间,需要保证与deployment处于同一命名空间 labels: #标签 k8s-app: kubernetes-dashboard kubernetes.io/cluster-service: "true" spec: #服务内容详细定义 selector: #标签选择器,选择dashboard-deployment独有标签 k8s-app: kubernetes-dashboard ports: #服务对外开放端口 - port: 80 #提供给内部Pod访问使用的端口 nodePort: 30303 #提供给外部访问的端口 targetPort: 9090 #Pod内部的服务的端口号 |
4)准备相关镜像
所有节点都下载相关镜像,当然不下载也是没事的,因为可以自动下载。registry.access.redhat.com/rhel7/pod-infrastructure:latest和docker.io/bestwu/kubernetes-dashboard-amd64:v1.6.3,由于k8s已经在使用中,所以pod-infrastructure存在故不做下载。
1 2 3 4 5 6 | [root@kube-node1 ~]# docker pull docker.io/bestwu/kubernetes-dashboard-amd64:v1.6.3 Trying to pull repository docker.io/bestwu/kubernetes-dashboard-amd64 ... v1.6.3: Pulling from docker.io/bestwu/kubernetes-dashboard-amd64 ff9e00b73eb4: Pull complete Digest: sha256:d820c9a0a0a7cd7d0c9d3630a2db0fc33d190db31f3e0797d4df9dc4a6a41c6b Status: Downloaded newer image for docker.io/bestwu/kubernetes-dashboard-amd64:v1.6.3 |
5)启动dashboard的deployment和service
1 2 3 4 | [root@kube-master ~]# kubectl create -f dashboard-deployment.yaml deployment "kubernetes-dashboard-latest" created [root@kube-master ~]# kubectl create -f dashboard-service.yaml service "kubernetes-dashboard" created |
启动完成后通过命令查看
1 2 3 4 5 6 7 8 9 | [root@kube-master ~]# kubectl get deployment -- namespace =kube-system NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE kubernetes-dashboard-latest 1 1 1 1 3d [root@kube-master ~]# kubectl get service -- namespace =kube-system NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes-dashboard 10.254.146.81 <none> 80/TCP 3d [root@kube-master ~]# kubectl get pod -- namespace =kube-system -o wide NAME READY STATUS RESTARTS AGE IP NODE kubernetes-dashboard-latest-4124080496-dprcl 1/1 Running 1 3d 10.255.39.2 kube-node1 |
6)通过http://[masterIP]:8080/ui访问
我这里就是http://192.168.128.110:8080/ui,之后会自动跳转到如下页面
7)销毁
如果只是短时间内不用可以只删除service,如果长时间不用删除deployment和service
1 2 3 4 | [root@kube-master ~]# kubectl delete -f dashboard-service.yaml service "kubernetes-dashboard" deleted [root@kube-master ~]# kubectl delete -f dashboard-deployment.yaml deployment "kubernetes-dashboard-latest" deleted |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性