本篇博文介绍在k8s(kubernetes)上部署kube-ui
在部署节点进入cluster/addons可以看到kube-ui目录
root@docker3:~/k8s/kubernetes/cluster/addons# ls
cluster-monitoring dns fluentd-elasticsearch fluentd-gcp kube-ui README.md
修改YAML配置
root@docker3:~/k8s/kubernetes/cluster/addons/kube-ui# vim kube-ui-rc.yaml
内容如下
apiVersion: v1
kind: ReplicationController
metadata:
name: kube-ui-v1
namespace: kube-system
labels:
k8s-app: kube-ui
version: v1
kubernetes.io/cluster-service: "true"
spec:
replicas: 3
selector:
k8s-app: kube-ui
version: v1
template:
metadata:
labels:
k8s-app: kube-ui
version: v1
kubernetes.io/cluster-service: "true"
spec:
containers:
- name: kube-ui
image: docker3:5000/kube-ui
resources:
limits:
cpu: 100m
memory: 50Mi
ports:
- containerPort: 8080
主要修改replicas备份数默认为1,笔者修改为3
image:值,原先为google的registry,笔者修改为私有registry的镜像。
由于docker1,docker2,docker3处于类似局域网,笔者处理的方法在docker3上运行了registry的容器,然后把需要的镜像
从外网push到docker,再push到docker3的私有registry中。
修改docker私有镜像库地址
由于安全问题,私有库会报错,需要修改docker启动参数
root@docker3:~# vim /etc/default/docker
DOCKER_OPTS="-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock --bip=172.16.8.1/24 --mtu=1372 --insecure-registry=docker3:5000"
主要新增--insecure-registry参数
启动一个长期运行的registry容器
#docker run -d -p 5000:5000 --restart=always --name registry registry
指定kubernetes的pod-infra-container-image
kube-ui部署需要一个pause镜像,默认会到谷歌下载,我们可以在kubelet配置文件中指定
root@docker3:~# vim /etc/default/kubelet
KUBELET_OPTS="--address=0.0.0.0 --port=10250 --pod-infra-container-image=docker3:5000/pause:latest --hostname_override=docker3 \
--api_servers=http://docker3:8080 --logtostderr=true --cluster_dns=192.168.3.10 --cluster_domain=cluster.local"
主要新增参数--pod-infra-container-image=docker3:5000/pause:latest指向你本地下载pause镜像即可。
以上参数需要在所有minion修改,并重启服务
#service kubelet restart
这样我们的准备工作就完成了,现在回到cluster/addons/目录
我们来回顾一下:
1.修改了YAML指向了本地的kube-ui镜像;
2.在所有minion节点pull了kube-ui和pause镜像;
3.修改了kubelet默认pod-infra镜像;
创建
root@docker3:~/k8s/kubernetes/cluster/addons# kubectl create -f kube-ui/
删除
root@docker3:~/k8s/kubernetes/cluster/addons# kubectl delete -f kube-ui/
以上操作会自动创建/删除目录下YAML配置的相关rc/svc
查看分发情况
root@docker3:~# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system kube-ui-v1-7ksnt 1/1 Running 0 11h
kube-system kube-ui-v1-gl8wc 1/1 Running 0 11h
kube-system kube-ui-v1-pwqg4 1/1 Running 0 11h
三个minion均处于running状态
root@docker3:~# kubectl get rc --all-namespaces
NAMESPACE CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
kube-system kube-ui-v1 kube-ui docker3:5000/kube-ui k8s-app=kube-ui,version=v1 3
root@docker3:~# kubectl get svc --all-namespaces
NAMESPACE NAME LABELS SELECTOR IP(S) PORT(S)
default kubernetes component=apiserver,provider=kubernetes <none> 192.168.3.1 443/TCP
kube-system kube-ui k8s-app=kube-ui,kubernetes.io/cluster-service=true,kubernetes.io/name=KubeUI k8s-app=kube-ui 192.168.3.114 80/TCP
查看Master中容器运行情况
root@docker3:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8c4f610be22b docker3:5000/kube-ui "/kube-ui" 11 hours ago Up 11 hours k8s_kube-ui.4f327c3a_kube-ui-v1-pwqg4_kube-system_7f6280b8-4bf8-11e5-837b-fa163e264958_f0940eef
0d3236ad778c docker3:5000/pause:latest "/pause" 11 hours ago Up 11 hours k8s_POD.968ce479_kube-ui-v1-pwqg4_kube-system_7f6280b8-4bf8-11e5-837b-fa163e264958_32419dcf
17a7459723e6 registry "/bin/sh -c 'exec doc" 11 hours ago Up 11 hours 0.0.0.0:5000->5000/tcp registry
我们可以通过访问Master节点来查看UI
笔者则通过虚拟机的浮动IP来访问UI。http://192.168.51.36:8080/ui
URL会自动跳转至http://192.168.51.36:8080/api/v1/proxy/namespaces/kube-system/services/kube-ui/#/dashboard/
至此kube-ui就部署完成了