Kubernetes(K8s)(四)——k8s的web管理页面
(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 <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
[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