解决一次calico异常情况,pod之间访问pod ip不通
k8s 集群采用二进制安装,cni网络插件用calico通讯
问题描述:
发现有些pod不是很正常例如: ht13.node
正常系统采样
[root@ht6 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@ht6 ~]# uname -r
3.10.0-1160.42.2.el7.x86_64
[root@ht6 ~]# docker ps | grep calico
3c5a2fe1f2d3 9f355e076ea7 "/install-cni.sh" 3 months ago Up 3 months k8s_install-cni_calico-node-rfns5_kube-system_7e3f2319-1c3d-11ec-9a8a-065c62000e9f_1
735699701a90 k8s.gcr.io/pause-amd64:3.0 "/pause" 3 months ago Up 3 months k8s_POD_calico-node-rfns5_kube-system_7e3f2319-1c3d-11ec-9a8a-065c62000e9f_1
24db12a21b59 quay.io/calico/node:v3.1.0 "start_runit" 3 months ago Up 3 months calico-node
//ipip模式采样
[root@ht6 ~]# ifconfig tunl0
tunl0: flags=193<UP,RUNNING,NOARP> mtu 1440
inet 172.17.244.192 netmask 255.255.255.255
tunnel txqueuelen 1000 (IPIP Tunnel)
RX packets 37971826 bytes 12993721945 (12.1 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 41952855 bytes 5357352541 (4.9 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在master上查看,貌似正常 ht13.node
[root@master-web-38 ~]# kubectl get pod -n kube-system -o wide | grep calico
calico-node-rfns5 1/1 Running 1 148d 10.121.55.131 ht6.node
calico-node-wfvd6 1/1 Running 0 81d 10.121.52.193 ht13.node
node节点异常系统采样
[root@ht13 calico]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@ht13 calico]# uname -r
3.10.0-327.el7.x86_64
[root@ht13 ~]# docker images | grep calico
quay.io/calico/cni v3.1.3 9f355e076ea7 3 years ago 68.8MB
quay.io/calico/node v3.1.0 ad8d84fa5f8c 3 years ago 277MB
//关注这里,因为,我们看到calico-node 没有创建起来
重新创建calico
[root@ht13 calico]# ll
total 392880
drwxr-xr-x 2 root root 4096 Nov 28 18:51 calico
-rw-r--r-- 1 root root 11829 Nov 28 18:51 calico.example.yaml
-rw-r--r-- 1 root root 2483 Nov 29 19:37 calico-node.service.sh
-rw-r--r-- 1 root root 277872640 Nov 28 18:51 caliconode.v3.1.0.tar
-rw-r--r-- 1 root root 1081 Nov 28 18:51 calico.sh
-rw-r--r-- 1 root root 19389 Nov 28 18:51 calico.yaml
-rw-r--r-- 1 root root 69124608 Nov 28 18:51 cni.v3.1.3.tar
-rw-r--r-- 1 root root 55256576 Nov 28 18:51 kube-controllers.v3.1.3.tar
-rw-r--r-- 1 root root 1247 Nov 28 18:51 rbac.yaml
//执行重新创建calico-node
[root@ht13 calico]# sh calico-node.service.sh
//查看calico
[root@ht13 calico]# docker ps | grep calico

[root@ht13 calico]# vi calico-node.service.sh
K8S_MASTER_IP="10.121.52.193"
HOSTNAME='ht13.node'
#HOSTNAME=`cat /etc/hostname`
ETCD_ENDPOINTS="https://10.121.52.111" //这个是master
cat > /lib/systemd/system/calico-node.service <<EOF
[Unit]
Description=calico node
After=docker.service
Requires=docker.service
[Service]
User=root
Environment=ETCD_ENDPOINTS=${ETCD_ENDPOINTS}
PermissionsStartOnly=true
ExecStart=/usr/bin/docker run --net=host --privileged --name=calico-node \\
-e ETCD_ENDPOINTS=\${ETCD_ENDPOINTS} \\
-e ETCD_CA_CERT_FILE=/etc/etcd/ssl/etcd-root-ca.pem \\
-e ETCD_CERT_FILE=/etc/etcd/ssl/etcd.pem \\
-e ETCD_KEY_FILE=/etc/etcd/ssl/etcd-key.pem \\
-e NODENAME=${HOSTNAME} \\
-e IP= \\
-e IP_AUTODETECTION_METHOD=can-reach=${K8S_MASTER_IP} \\
-e AS=64512 \\
-e CLUSTER_TYPE=k8s,bgp \\
-e CALICO_IPV4POOL_CIDR=172.17.0.0/16 \\
-e CALICO_IPV4POOL_IPIP=always \\
-e CALICO_LIBNETWORK_ENABLED=true \\
-e CALICO_NETWORKING_BACKEND=bird \\
-e CALICO_DISABLE_FILE_LOGGING=true \\
-e FELIX_IPV6SUPPORT=false \\
-e FELIX_DEFAULTENDPOINTTOHOSTACTION=ACCEPT \\
-e FELIX_LOGSEVERITYSCREEN=info \\
-e FELIX_IPINIPMTU=1440 \\
-e FELIX_HEALTHENABLED=true \\
-e CALICO_K8S_NODE_REF=${HOSTNAME} \\
-v /etc/calico/etcd-root-ca.pem:/etc/etcd/ssl/etcd-root-ca.pem \\
-v /etc/calico/etcd.pem:/etc/etcd/ssl/etcd.pem \\
-v /etc/calico/etcd-key.pem:/etc/etcd/ssl/etcd-key.pem \\
-v /lib/modules:/lib/modules \\
-v /var/lib/calico:/var/lib/calico \\
-v /var/run/calico:/var/run/calico \\
quay.io/calico/node:v3.1.0
ExecStop=/usr/bin/docker rm -f calico-node
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
//现在尝试把一个pod在该node节点上重建
1、把该节点设置为可调度(通过rancher,rancher这方面调度非常方便)
2、把一个pod重新创建在该node上
解决一次calico异常情况,pod之间访问pod ip不通的更多相关文章
- 解决oracle 端口 1521 本机127可通 其他ip不通
http://wenku.baidu.com/link?url=8tRGGObqgLd6-yqprioIZSyluu9K0BgA29Lhx7F57pVDIHbMHVDNTa_SlEmVugGT4QJO ...
- Git异常情况汇总
本篇博客总结下Git使用情况中遇到的异常情况并给出解决方案,关于Git的常用命令请移步我的另一篇博客<Git常用命令> 异常情况如下: 1.git远程删除分支后,本地git branch ...
- axios对请求各种异常情况处理的封装
前端网络请求封装 前端采用了axios来处理网络请求,为了避免在每次请求时都去判断各种各样的网络情况,比如连接超时.服务器内部错误.权限不足等等不一而足,我对axios进行了简单的封装,这里主要使用了 ...
- Java项目中经常遇到的一些异常情况
一. 1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存 ...
- 如何解决结果由block返回情况下的同步问题(转)
开发中经常会遇到一种简单的同步问题: 系统在获取资源时,采用了block写法,外部逻辑需要的结果是在block回调中返回的 举个例子: 请求获取通讯录权限的系统弹窗 调用系统方法请求通讯录权限: AB ...
- 解决C#导出excel异常来自 HRESULT:0x800A03EC的方法 .
解决C#导出excel异常来自 HRESULT:0x800A03EC的方法 . xlBook.SaveAs(FilePath,Microsoft.Office.Interop.Excel.XlFi ...
- 异常情况下的Activity生命周期分析
情况1:资源相关的系统配置发生改变 资源相关的系统配置发生改变,举个栗子.当前Activity处于竖屏状态的时候突然转成横屏,系统配置发生了改变,Activity就会销毁并且重建,其onPause, ...
- python3 selenium 如何处理异常情况
使用场景: 1.元素只有在某一特定情况下才会出现 2.元素定位不到 使用方法: try: except exceptions.NoSuchElementException: 举例说明: # _._ c ...
- mysql进阶(二十)CPU超负荷异常情况
CPU超负荷异常情况 问题 项目部署阶段,提交订单时总是出现cpu超负荷工作情况,导致机器卡死,订单提交失败.通过任务管理器可见下图所示: 通过任务管理器中进程信息(见下图)进行查看,可见正是由于项目 ...
随机推荐
- 拓扑排序 python
现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1.给你一个数组 prerequisites ,其中 prerequisites[i] = [ai, bi] , ...
- oracle数据库导入导出语句
一.导出: 导出语句: expdp sanyayun/sanyayun@syerpdb directory=DMP dumpfile=fooderp.dmp content=all SCHEMAS=s ...
- 6月29日学习总结 Django自带的用户认证
Django自带的用户认证 我们在开发一个网站的时候,无可避免的要设计.实现网站的用户系统.此时我们需要实现包括但不限于用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. D ...
- FusionCube 9000 虚拟化之数据库场景(虚拟化超融合基础设施)
1.本场景为fusioncube9000虚拟化场景,带两台dbn节点. 配置清单: 1台cna节点 2台dbn节点,部署数据库操作系统,一般安装oracle数据双机. 2台mcna节点,作为管理节点, ...
- (转)String,StringBuilder,StringBuffer区别
Java中的String,StringBuilder,StringBuffer三者的区别 注:转自-博客园-酥风 最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuild ...
- zk 节点宕机如何处理?
Zookeeper 本身也是集群,推荐配置不少于 3 个服务器.Zookeeper 自身也要保 证当一个节点宕机时,其他节点会继续提供服务. 如果是一个 Follower 宕机,还有 2 台服务器提供 ...
- jQuery--选择器案例实战
1.案例需求 jquery最基础的选择器部分已经基本结束,来一个简单案例总结回顾下学的东西. 案例需求: 用一个按钮控制元素的显示与隐藏,页面如下,从第五个开始,不要最后一个,控制他们的显示和隐藏. ...
- java-方法引用
/** * 方法引用格式: * 双冒号:: 引用运算符,它所在的表达式被称为方法引用.如果Lambda表达式 * 的函数方案已经存在于某个地方的实现中, * ===>那么可以通过双冒号来引用改方 ...
- Java 有没有 goto?
goto 是 Java 中的保留字,在目前版本的 Java 中没有使用.(根据 James Gosling (Java 之父)编写的<The Java Programming Language& ...
- solr集群搭建,zookeeper集群管理
1. 第一步 把solrhome中的配置文件上传到zookeeper集群.使用zookeeper的客户端上传. 客户端命令位置:/root/solr-4.10.3/example/scripts/cl ...