每日禅语
不动心”是一个人修养和定力的体现,若一个人心无定力,就会被外界环境左右,随外界的境遇而动摇。佛家认为,心是一切的基础,一个人如果想要真正入定,必须先从修心开始。修心即是净心,心灵不随外物而转,就能达到心智的自由。五色幡升空时迎风飘动,一僧说是幡动,一僧说是风动,六祖惠能从旁边经过,笑谈,既非风动,也非幡动,乃二僧心动。风动、幡动,都不过是外境的变迁,不动心,才能真正认清自我,保持内心的安宁。人们想要净心时,往往习惯于用理性去控制,但这样做很可能适得其反。虽然在不断告诉自己“不能动心,不能动心”,其实这个时候心已经在动了;提醒自己“心不能随境转”,这个时候心已经转了。真正的净心不是刻意控制,也不是刻意把握它。什么时候都知道自己的心,心自然而然就不因外在环境而波动。心不动了,人就不会为外界的诱惑所动,从而可以净化自身。
文章背景
最近搭建K8s集群的时候,使用calico网络插件的时候发现,calico 的pod节点已经处于running状态,但是一直没有处于ready状态。但是以前使用虚拟机搭建集群的时候从来没有遇到这个问题,这次搭建的集群是3台实体服务器搭建的,为啥会有这个问题发生呢?于是就有了下面的文章。
1.calicao部署手册
k8s部署文档,如果只是部署calico只用看第5小节就可以了
2.问题发现
2.1 执行kubectl get pod -o wide -n kube-system,发现有一个节点的calico-node没有出入READY状态,如下:
2.2执行kubectl describe pod calico-node-xvj55 -n kube-system,发现有如下报错:
具体错误信息:BIRD is not ready:BGP not established with xxxxxxxxxxxx
3.原因分析
3.1问题导致的原因是由于因为Calico的默认行为是选择第一个可用的网卡。所以导致Calico 在多网卡kubernetes节点上有的时候会选择错误的网卡,导致容器间通信异常。
- 出现问题的原因:集群中的节点中有不同的网卡名称,所以会选择错误的网卡
- 节点1
- 节点2
4.解决方案
4.1设置网卡名都为eth0,calicao匹配目标网卡
- name: calico-node
image: registry.geoway.com/calico/node:v3.19.1
env:
# Auto-detect the BGP IP address.
- name: IP
value: "autodetect"
- name: IP_AUTODETECTION_METHOD
value: "interface=eth0"
4.2目标IP或域名可达
- name: calico-node
image: registry.geoway.com/calico/node:v3.19.1
env:
# Auto-detect the BGP IP address.
- name: IP
value: "autodetect"
- name: IP_AUTODETECTION_METHOD
value: "can-reach=www.google.com"
4.3排除匹配网卡
- name: calico-node
image: registry.geoway.com/calico/node:v3.19.1
env:
# Auto-detect the BGP IP address.
- name: IP
value: "autodetect"
- name: IP_AUTODETECTION_METHOD
value: "skip-interface=ens1"
4.4指定CIDR地址,多个子网使用逗号","分隔。
- name: calico-node
image: registry.geoway.com/calico/node:v3.19.1
env:
# Auto-detect the BGP IP address.
- name: IP
value: "autodetect"
- name: IP_AUTODETECTION_METHOD
value: "cidr=192.168.200.0/24,172.15.0.0/24"