Kubernetes集群配置dashboard服务

wangzan 2018-03-09

本文将在前文的基础上介绍kube-ui(也叫dashboard)的创建和使用。这个东西本质上就是webui连接master的api接口,通过api获取k8s集群的相关信息,然后在web上展示出来,对用户来说比较友好一些,实际用处并不是很大。

一、下载镜像文件并纳入本地仓库统一管理

# docker pull docker.io/mritd/kubernetes-dashboard-amd64
# docker tag docker.io/mritd/kubernetes-dashboard-amd64  \
registry.fjhb.cn/kubernetes-dashboard-amd64
# docker push registry.fjhb.cn/kubernetes-dashboard-amd64

二、根据rc文件创建 Deployment和service

# cat kube-ui-rc.yaml
# Copyright 2015 Google Inc. All Rights Reserved. 

# Licensed under the Apache License, Version 2.0 (the "License"); 
# you may not use this file except in compliance with the License. 
# You may obtain a copy of the License at 

#    http://www.apache.org/licenses/LICENSE-2.0 

# Unless required by applicable law or agreed to in writing, software 
# distributed under the License is distributed on an "AS IS" BASIS, 
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
# See the License for the specific language governing permissions and 
# limitations under the License. 

# Configuration to deploy release version of the Dashboard UI. 

# Example usage: kubectl create -f <this_file> 

kind: Deployment 
apiVersion: extensions/v1beta1
metadata: 
  labels: 
    app: kubernetes-dashboard 
    version: latest
  name: kubernetes-dashboard 
  namespace: default
spec: 
  replicas: 1 
  selector: 
    matchLabels: 
      app: kubernetes-dashboard 
  template: 
    metadata: 
      labels: 
        app: kubernetes-dashboard 
      # Comment the following annotation if Dashboard must not be deployed on master
      annotations:
        scheduler.alpha.kubernetes.io/tolerations: |
          [
            {
              "key": "dedicated",
              "operator": "Equal",
              "value": "master",
              "effect": "NoSchedule"
            }
          ]
    spec: 
      containers: 
      - name: kubernetes-dashboard 
        image:  registry.fjhb.cn/kubernetes-dashboard-amd64
        imagePullPolicy: Always
        ports: 
        - containerPort: 9090 
          protocol: TCP 
        args: 
          # Uncomment the following line to manually specify Kubernetes API server Host 
          # If not specified, Dashboard will attempt to auto discover the API server and connect 
          # to it. Uncomment only if the default does not work. 
          - --apiserver-host=192.168.115.5:8080 
        livenessProbe: 
          httpGet: 
            path: / 
            port: 9090 
          initialDelaySeconds: 30 
          timeoutSeconds: 30 
--- 
kind: Service 
apiVersion: v1 
metadata: 
  labels: 
    app: kubernetes-dashboard 
  name: kubernetes-dashboard 
  namespace: default
spec: 
  type: NodePort 
  ports: 
  - port: 80 
    targetPort: 9090 
  selector: 
    app: kubernetes-dashboard# kubectl create -f kube-ui-rc.yaml
# kubectl get svc
# kubectl get pod

Kubernetes集群配置dashboard服务
三、web访问测试
使用两个node节点的ip加端口都可以访问到web-ui界面,本质上是使用iptables nat规则实现的
Kubernetes集群配置dashboard服务
Kubernetes集群配置dashboard服务
Kubernetes集群配置dashboard服务
Kubernetes集群配置dashboard服务
在面板中可以查看到
Node、deployments、replica sets、replication controllers、pod、jobs、services、ingress、storage、secret等信息,本质上就是通过连接apiserver进行查询并在web-ui上进行展示。
Kubernetes集群配置dashboard服务

相关推荐