kubernetes 初探
初探中学到几点,就如上面画的简单的示意图。
1 什么是RC?
RC 是replication controller 的缩写。我们可以理解为副本控制器,意思就是我们设置好友多少个副本 它就能自动把副本的数量控制在多少,多了就自动删,少了就自动新加。
2 什么是POD?
POD 是k8s 的控制的最小单元。但是 POD不是容器。一个POD里面可以装多个容器。就把POD理解为一个豌豆荚一样,里面躺着多个豆子。这几个豆子共享IP,共享资源,进程相互可见。
3 RC 是怎么管理POD的?
标签。标签在k8s中使用非常广泛。RC和pod 之间没有直接的关联,而是用标签来联系的。POD上的标签和RC中的标签选择器只要能对上号 那RC就能管得了你(增删改查),所以上面图中我叫RC为大总管。
4 POD之间是如何访问的?service又是什么?
POD的生命周期不长,由于固件的原因,应用的原因,生成力需求的原因等等都可能影响到POD的生死存亡。每次一次POD的重生 它自己的IP都在自动变化,这对需要访问它造成了很多的困难。于是乎,service 应用而生。
service 也是通过标签内管理它管辖范围内的pod的。service 生成一个虚拟的IP和端口,其他POD 值需要访问service的虚拟IP和端口就能访问service 辖区内的POD。但是后面的POD怎么知道你这个service 的虚拟IP地址和端口是多少了?后面的POD创建的时候k8s 会自动把上面的service 的IP地址和端口通过环境变量的方式写入POD内,后面的POD只需要访问环境变量就可以了。
4.1 后面的pod 添加前面的service的环境变量的时候环境变量名称是有规则的
4.1.1 service的虚拟IP地址用环境变量添加到后续的pod 中
IP地址对应的环境变量(主机名){SVCNAME}_SERVICE_HOST 其中 {SVCNAME} 是service的名称。
如果{SVCNAME} 中有中划线“-” 则加入环境变量变量后在环境变量中会变成下划线“_”
例如:先找service
再找service 对应的pod
再查看pod 中的环境变量
4.4.2 service的虚拟端口用环境变量添加到后续的pod 的环境变量中
端口地址对应的环境变量{SVCNAME}_SERVICE_PORT
{SVCNAME} 和上面4.4.1 说的规则一样,都是前面service的名称,且中划线“-” 会变化为下划线“_”
例如