k8s-pod-踩坑篇1-证书、pod网络相关

因为这个坑其实有点深,如果其中每一个知识点都展开讨论,会使篇幅变得非常巨大,所以本篇知识点会有一些跳跃。

踩坑篇-证书、pod网络相关

上面的结果对我来说是一个大坑,但是踩坑过程也是学习中的一个重要组成部分。

从上面的情况来看,pod的yaml配置文件中是否暴露port这个问题已经不是重点,问题的重点在于为什么有的主机能访问到,有的主机不能访问。

我的测试环境:共3台服务器

server1:10.100.1.236 master节点

server2:10.100.1.237 worker节点1

server3:10.100.1.238 worker节点2

测试结果:

从236访问237的nginx,访问不到;

从236访问238的nginx,能访问到;

从237访问237的nginx,能访问到;

从237访问238的nginx,访问不到;

从238访问237的nignx,访问不到。

wr!这是咋回事啊!喝口水冷静一下。

查看系统pod是否都是正常的。果然,237的calico pod没有正常运行。

首先想到的是防火墙,检查防火墙配置,结果防火墙已经全部关闭,看来不是防火墙的问题。

不过这里也解开了我的其中一个疑惑:calico是用到iptables的转发功能的,之前担心如果关闭防火墙会不会影响它的使用,现在的结果中存在不同机器之间正常访问的情况,那就推出关闭防火墙不会影响calico正常使用。(备注:因为关闭防火墙会影响docker的网络使用,本人碰到过这个情况。)

回到我们的主要问题,不是防火墙,会不会是k8s的网络转发配置错了,或者是selinux没关掉,按照之前安装时的步骤重新执行一遍,结果还是不行。

去看那个不正常的calico pod的日志吧,其实开始就应该去看日志,但是对于一个新手,wtm不会看日志啊,于是要先解决k8s是如何查看日志的,现在回过来看比较简单,但刚上手时就像抹黑前行。

kubectl logs ...

貌似很简单的命令,其实这个命令更多的是输出pod内容器的日志,查看了我的那个出问题的calico pod,日志很少,完全看不出有用信息。

kubectl describe ...

这个才是查看pod详细信息的正确打开方式。

虽然知道了这个命令,但是不知道该看哪里,于是一行一行的看下来,这就是学习新知识麻烦之处,还好内容不是很多,看到了报错信息,简单说就是BGP错误(由于工作比较忙,写文档的时候距离我解决问题已经过去2天,当时也没有保留截图), BGP又是啥玩意儿。喝口水继续研究,印象中好像是calico的一个组成部分,再仔细过一下calico的原理。网上搜calico原理的文章不少,抄来抄去的不少,侧重点也不同,一定要多看,才能真正理解。关于BGP就不展开了,展开了又是一大段。

我这里出现BGP报错的的原因是calico pod在选取网卡的时候选错了,237有多块网卡,calico默认的选取方式是first detect,说白了就是随便选一个。结果就选了一个虚拟网卡,只能在本机访问,所以出现了上面有的能访问,有的不能访问的情况。

解决方案:指定IP_AUTODETECTION_METHOD参数的值,告诉calico如何选取网卡。

        - name: IP_AUTODETECTION_METHOD
          value: "interface=ens.*"

问题又来了,这段东西往哪儿加啊,我的配置文件和网上说的完全不同啊,一脸懵逼。

打开安装calico时的配置文件,耐心摸一遍。

再次阅读calico的文档,发现了calico的三种安装方式。我之前用的是calico的快速开始,下面的才是正确的打开方式。分成了3种情况:小于50节点、大于50节点、etcd存储。

尝试使用etcd的方式,因为k8s的基础数据都是存在etcd的,然后下载配置,在daemonset的container的env中,把IP_AUTODETECTION_METHOD加进去,启动试一下,结果说tls有问题。其实启动前我就想到了会有这个问题,但是k8s 的tls老复杂了,砰砰运气,果然还是不行。

再喝一口水,把k8s的tls证书再摸一遍。关于tls和上面的BGP,calico原理的学习需要花一点时间,但是还是有必要的(要不然也没法解决问题),也能学到不少东西。

言归正传,采用etcd的安装方式,需要的证书,在master上可能是没有问题的(偷懒不想去验证了),因为在master的/etc/kubernetes/pki目录下,证书密钥比较齐全,但是在worker节点就没有这些证书了,得手动去创建,创建方法,使用方法我都不清楚,而且在研究k8s tls证书的时候,sa.pub sa.key的知识点让我选择了第二种安装方式 Install Calico with Kubernetes API datastore, more than 50 nodes

sa.pub sa.key

这两个是servie account用到的公私钥,作用是pod和apiserver通信,而且不需要手动配置到pod里面。而我们要安装的calico网络也正是有pod的方式组成的,正好解决了上面遇到的证书问题,准确说应该是绕过了证书问题。再回想一下k8s的网络通信,虽然k8s数据存在etcd,但是scheduler、control-manager都不是直接和etcd通信的,都是通过api server,所以我选择的第二种方式应该也是合理的。

然后根据官文操作,下载下来啥也不用改,直接启动,还是会出现bgp的问题,这次尝试中找到一个线索,237上的calico pod所使用的网络是192.168.84.1,这是一个虚拟网卡,确认了是网卡选择问题。

image-20210509191653511.png

按照官文给出的方法,我们给他指定一个,我的网卡都是enp开头的,所以做如下配置。

在daemonset的calico node的container 的env里面添加

        - name: IP_AUTODETECTION_METHOD
          value: "interface=enp.*"

然后delete后重新create,等待一段时间,所有pod状态都变成running了。

然后尝试访问nginx,已经全部都通了。

这里再简单说一下下面两种方式的不同之处

第二种比第一种,实际上是再flex和api server之间多了一个缓存typha,用于减小api server的压力。(flex是什么:搜索calico原理,很多博文都会介绍的;typha不用多研究,只要知道它是缓存就可以了)

官文上也说了,要给typha指定replicas的数量,建议给每200个node配置一个typha,typha总数不要冲过20个,生产环境建议最少配置3个typha。我现在只是测试环境,为减小硬件开支,我只将其配置为 1。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容