k8s dashboard 配置如下
在centos 7.7.1908 配置kubernets 集群模式,并开启dash-board 图形界面时遇到各种问题,将目前踩过的坑列举如下,望各位借鉴。master node 172.16.18.104node1 172.16.18.105node2 172.16.18.106私有镜像仓库地址: 172.16.18.111k8s 集群配置参见https://www....
在centos 7.7.1908 配置kubernets 集群模式,并开启dash-board 图形界面时遇到各种问题,将目前踩过的坑列举如下,望各位借鉴。
master node 172.16.18.104
node1 172.16.18.105
node2 172.16.18.106
私有镜像仓库地址: 172.16.18.111
k8s 集群配置参见
https://www.jianshu.com/p/65ecef9016ae
https://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html
1. docker 私有仓库搭建:
1) yum install docker
2) systemctl start docker ,systemctl enable docer
3) 下拉镜像:docker pull registry
4) docker search pod-infrastructure
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/neurons/pod-infrastructure k8s pod 基础容器镜像 2
docker.io docker.io/tianyebj/pod-infrastructure registry.access.redhat.com/rhel7/pod-infra... 2
docker.io docker.io/w564791/pod-infrastructure latest 1
docker.io docker.io/xiaotech/pod-infrastructure registry.access.redhat.com/rhel7/pod-infra... 1 [OK]
。。。。。。
找到ok的
然后
docker pull docker.io/tianyebj/pod-infrastructure
5) 创建docker仓库目录 mkdir -p /data/registry
6) docker run -itd -p 5000:5000 -v /data/registry/:/var/lib/registry docker.io/registry
7) 对下载的镜像进行打包
docker tag docker.io/tianyebj/pod-infrastructure 172.16.18.111:5000/pod-infrastructure 将新下载的镜像进行打包,其中172.16.18.111:5000为本地地址及刚才启动docker服务端口
删除老镜像 docker rmi docker.io/tianyebj/pod-infrastructure
8) 修改 /etc/sysconfig/docker 中OPTIONS 内容如下 ,添加-signature-verification=false --insecure-registry 172.16.18.111:5000:
内容如下:
# /etc/sysconfig/docker
# Modify these options if you want to change the way the docker daemon runs
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry 172.16.18.111:5000'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi
重新启动docker
systemctl restart docker
运行: docker run -itd -p 5000:5000 -v /data/registry/:/var/lib/registry docker.io/registry
9) setenforce 0
或者 修改 /etc/sysconfig/selinux
SELINUX=disabled # 重启后生效
10)docker push 172.16.18.111:5000/pod-infrastructure
11)本地仓库建好了
2) 利用本地仓库搭建 dash-board
1) 下载 kubernets-dashboard.yaml
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.5.1/src/deploy/kubernetes-dashboard.yaml
修改部分内容:
(1) spec:
containers:
- name: kubernetes-dashboard
image: 172.16.18.111:5000/k8s-dashboard:v1.5.1 # 修改为本地仓库地址即可
(2)修改apiserver地址:如下
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=http://172.16.18.104:8080
2) 在master节点及node 节点上修改docker配置 /etc/sysconfig/docker
# /etc/sysconfig/docker
# Modify these options if you want to change the way the docker daemon runs
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi
OPTIONS='--insecure-registry 172.16.18.111:5000'
ADD_REGISTRY='--add-registry 172.16.18.111:5000'
3) 修改完需要重启服务
master节点:
systemctl restart etcd
systemctl restart flanneld
systemctl restart docker kube-apiserver kube-controller-manager kube-scheduler
node 节点:
systemctl restart flanneld
systemctl restart kubelet kube-proxy
6) 创建dash-board 服务:
kubectl create -f kubernetes-dashboard.yaml
同样删除服务:
kubectl create -f kubernetes-dashboard.yaml
问题:
1. k8s dashboard 报错 Error: 'dial tcp 172.168.56.2:9090: getsockopt: connection refused'
解决:
在服务器节点上运行:
iptables -P FORWARD ACCEPT 即可 重启后失效。或者echo "net.ipv4.ip_forward = 1" >>/usr/lib/sysctl.d/50-default.conf
然后再master 节点上访问 curl -i http://172.17.26.2:9090 可以访问
即可。
参见:https://blog.csdn.net/qa1986nibuhao/article/details/80814870
2. 容器无法启动原因:
1) 无法下拉容器registry.access.redhat.com/rhel7/pod-infrastructure:latest 该问题容易,通过搭建私有仓库或者换掉镜像源即可解决
解决:
1) 运行命令:kubectl get pods -n kube-system | grep -v Running
kubectl logs kubernetes-dashboard-593926443-k6rdz -n kube-system
其中:kubernetes-dashboard-593926443-k6rdz 为当前启动pod-infrastructure的节点名称。
如果是dns-cluster 问题,无法在dns 地址上解析域名,需要node和master节点上修改 /etc/kubernetes/kubelet 内容如下:
###
###
# kubernetes kubelet (minion) config
# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=0.0.0.0"
# The port for the info server to serve on
# KUBELET_PORT="--port=10250"
# You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=k8s-node1"
# location of the api-server
KUBELET_API_SERVER="--api-servers=http://k8s-master:8080"
# pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=172.16.18.111:5000/pod-infrastructure:latest"
# Add your own!
KUBELET_ARGS=" --cluster-dns=172.16.18.104 --cluster-domain=k8s-master" #
备注 172.16.18.104 为当前k8s-master节点地址。
172.16.18.111:5000 为新建私有仓库地址。
更多推荐
所有评论(0)