作者:手机用户2702936867 | 来源:互联网 | 2023-09-06 15:48
(1).部署KubernetesDashboardweb页面KubernetesDashboard(仪表盘)是Kubernetes项目中基于Web监控和操作界面的项目。1)确认节点
(1).部署Kubernetes Dashboard web页面
Kubernetes Dashboard(仪表盘)是Kubernetes项目中基于Web监控和操作界面的项目。
1)确认节点正常
[root@kube-master ~]# kubectl get node
NAME STATUS AGE
kube-node1 Ready 35d
kube-node2 Ready 35d
2)创建名为dashborad-deployment.yaml的deployment资源配置文件
[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服务配置文件
[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存在故不做下载。
[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
[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
启动完成后通过命令查看
[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 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
[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