共计 2571 个字符,预计需要花费 7 分钟才能阅读完成。
本文将在前文的基础上介绍 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
三、web 访问测试
使用两个 node 节点的 ip 加端口都可以访问到 web-ui 界面,本质上是使用 iptables nat 规则实现的
在面板中可以查看到
Node、deployments、replica sets、replication controllers、pod、jobs、services、ingress、storage、secret 等信息,本质上就是通过连接 apiserver 进行查询并在 web-ui 上进行展示。