kubernetes 集群网络不通解决办法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Arno_e/article/details/77249018

之前在虚拟机上用源码安装的1.5.2集群,由于机器性能问题,后来直接就把它干掉了,使用上篇的方式再次安装了单机器上的服务,在按照书上做实验时,发现节点之间无法进行通讯,网络不通,按理来说,单机器上的是不存在这样的问题;回想自己的操作,突想到一个知识点,k8s的创建RC的时候会自动生成pod,该pod也会生成一个属于自己的ip,但是服务是后台的svc提供的,svc生成的ip是无法访问的,所以需要装flannel工具

两种安装的方法:
https://github.com/coreos/flannel/releases 去github上下载amd安装包,解压出来mk-docker-opts.sh,flanneld两个二进制文件,将其复制到/usr/bin/ ,编辑:vim /usr/lib/systemd/system/flanneld.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
After=etcd.service
Before=docker.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/flanneld
EnvironmentFile=-/etc/sysconfig/docker-network
ExecStart=/usr/bin/flanneld-start $FLANNEL_OPTIONS
ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
Restart=on-failure

[Install]
WantedBy=multi-user.target
RequiredBy=docker.service
vim /etc/sysconfig/flanneld

配置文件:config:

FLANNEL_ETCD_ENDPOINTS=”http://127.0.0.1:2379” ##这条是你自己的etcd的url
FLANNEL_ETCD_PREFIX=”/atomic.io/network” ##这是flannel设置对应ip key存放位置

etcdctl set /atomic.io/network/config ‘{ “Network”: “10.1.0.0/16” }’ 设置ip
tcdctl get /atomic.io/network/config ‘{ “Network”: “10.1.0.0/16” }’ 查看是否设置成功

systemctl stop docker 启动flanneld之前需要停掉docker 否则会导致容器通讯出错
systemctl start flanneld
mk-docker-opts.sh -i
source /run/flannel/subnet.env
ifconfig docker0 ${FLANNEL_SUBNET}

ip addr
3: docker0:

展开阅读全文

没有更多推荐了,返回首页