开发者社区> 问答> 正文

请教个问题 各位在升级kubernetes过程中 由于spec hash change导致的pod的

请教个问题 各位在升级kubernetes过程中 由于spec hash change导致的pod的重启 是如何解决的呀?

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
初商 2019-08-01 10:47:33 850 0
1 条回答
写回答
取消 提交回答
  • 为了解决跨minion之间Pod的通信问题,我们在每个minion上安装OpenvSwtich,并使用GRE或者VxLAN使得跨机器之间Pod能相互通信,本文使用GRE,而VxLAN通常用在需要隔离的大规模网络中。对于OpenvSwitch的具体安装步骤,可参考这篇博客,我们在这里就不再详细介绍安装步骤了。安装完OpenvSwitch后,接下来便建立minion1和minion2之间的隧道。首先在minion1和minion2上建立OVSBridge,[root@minion1~]#ovs-vsctladd-brobr0接下来建立gre,并将新建的gre0添加到obr0,在minion1上执行如下命令,[root@minion1~]#ovs-vsctladd-portobr0gre0--setInterfacegre0type=greoptions:remote_ip=192.168.230.5在minion2上执行,[root@minion2~]#ovs-vsctladd-portobr0gre0--setInterfacegre0type=greoptions:remote_ip=192.168.230.4至此,minion1和minion2之间的隧道已经建立。然后我们在minion1和minion2上创建Linux网桥kbr0替代Docker默认的docker0(我们假设minion1和minion2都已安装Docker),设置minion1的kbr0的地址为172.17.1.1/24,minion2的kbr0的地址为172.17.2.1/24,并添加obr0为kbr0的接口,以下命令在minion1和minion2上执行。[root@minion1~]#brctladdbrkbr0//创建linuxbridge[root@minion1~]#brctladdifkbr0obr0//添加obr0为kbr0的接口[root@minion1~]#iplinksetdevdocker0down//设置docker0为down状态[root@minion1~]#iplinkdeldevdocker0//删除docker0为了使新建的kbr0在每次系统重启后任然有效,我们在/etc/sysconfig/network-scripts/目录下新建minion1的ifcfg-kbr0如下:DEVICE=kbr0ONBOOT=yesBOOTPROTO=staticIPADDR=172.17.1.1NETMASK=255.255.255.0GATEWAY=172.17.1.0USERCTL=noTYPE=BridgeIPV6INIT=no同样在minion2上新建ifcfg-kbr0,只需修改ipaddr为172.17.2.1和gateway为172.17.2.0即可,然后执行systemctlrestartnetwork重启系统网络服务,你能在minion1和minion2上发现kbr0都设置了相应的IP地址。为了验证我们创建的隧道是否能通信,我们在minion1和minion2上相互ping对方kbr0的IP地址,从下面的结果发现是不通的,经查找这是因为在minion1和minion2上缺少访问172.17.1.1和172.17.2.1的路由,因此我们需要添加路由保证彼此之间能通信。[root@minion1network-scripts]#ping172.17.2.1PING172.17.2.1(172.17.2.1)56(84)bytesofdata.^C---172.17.2.1pingstatistics---2packetstransmitted,0received,100%packetloss,time1000ms[root@minion2~]#ping172.17.1.1PING172.17.1.1(172.17.1.1)56(84)bytesofdata.^C---172.17.1.1pingstatistics---2packetstransmitted,0received,100%packetloss,time1000ms由于通过iprouteadd添加的路由会在下次系统重启后失效,为此我们在/etc/sysconfig/network-scripts目录下新建一个文件route-eth0存储路由,这里需要注意的是route-eth0和ifcfg-eth0的黑体部分必须保持一致,否则不能工作,这样添加的路由在下次重启后不会失效。为了保证两台minion的kbr0能相互通信,我们在minion1的route-eth0里添加路由172.17.2.0/24via192.168.230.5deveno16777736,eno16777736是minion1的网卡,同样在minion2的route-eth0里添加路由172.17.1.0/24via192.168.230.4deveno16777736。重启网络服务后再次验证,彼此kbr0的地址可以ping通,如:[root@minion2network-scripts]#ping172.17.1.1PING172.17.1.1(172.17.1.1)56(84)bytesofdata.64bytesfrom172.17.1.1:icmp_seq=1ttl=64time=2.49ms64bytesfrom172.17.1.1:icmp_seq=2ttl=64time=0.512ms^C---172.17.1.1pingstatistics---2packetstransmitted,2received,0%packetloss,time1002msrttmin/avg/max/mdev=0.512/1.505/2.498/0.993ms

    答案来源于网络

    2019-10-14 20:03:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像