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

  

posted @   苦逼运维  阅读(16313)  评论(1编辑  收藏  举报
编辑推荐:
· .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 中新的强大生产力特性
点击右上角即可分享
微信分享提示