
kubernetes--pod的控制器、pod之间的网络通信
同一个pod内部通信:同一个pod共享同一个网络命名空间,共享同一个linux协议栈(调用频繁的应用放到同一个pod里,例如nginx和php-fpm) pod1和pod2通信:pod1和pod2在同一台机器,由docker0网桥直接转发请求至pod2,不需要经过flannel pod1和pod3通信:pod1和pod3不在同一台主机,pod的地址是与docker0在同一个网段的,但docker0网段与宿主机网卡是两个完全不同的IP地址,并且不同node之间的通信只能通过宿主机的物理网卡进行。将pod的IP和所在node的IP关联起来,通过这个关联让pod可以互相访问(fannel、etcd、数据包的二次封装转发实现) pod至service的网络:目前基于性能考虑,全部为iptables维护和转发 pod到外网:pod向外网发送请求,查找路由表,转发数据包到宿主机的网卡,宿主网卡完成路由选择后,iptables执性Masquerade,把源IP更改为宿主网卡IP,然后向外网服务器发送请求
发布日期:2021-05-08 16:30:30
浏览次数:16
分类:精选文章
本文共 1877 字,大约阅读时间需要 6 分钟。
pod的概念
pod是一组容器的集合。多个容器放在一个池里,这个池就叫pod。pod可以分为两类,自主式pod和控制器管理的pod。自主式pod不被控制器管理(死了就没了,除了管理员再次启动),控制管理的pod有持续的声明周期,有控制器管理。pod的控制器
RC、RS、Deployment、HPA、StatefulSet、DaemonSet、Job、Cronjob RC:ReplicationController,用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的pod来替代;而如果异常多出来的容器也会自动回收 RS:ReplicaSet和RC只是名字不同,并且RS支持集合式的slelctor Deployment:自动管理ReplicaSet。无需担心跟其他机制不兼容问题,支持滚动更新(rollong-update) Horzontal Pod Autoscaling:仅适用于Deployment和ReplicaSet,在V1版本中仅支持根据pod的CPU利用率扩缩容,在V1alpha版本中,支持根据内存和用户自定一定metric扩缩容 StatefulSet:是为了解决有状态服务的问题而设计的,器应用场景包括: 1 稳定的持久化存储,即pod重新调度后还是能访问到相同的持久化数据,基于PVC来实现 2 稳定的网络标志,即pod重新调度后其podName和HostName不变,基于HeadlessService(无头服务),即没有ClusterIP的Service来实现 3 有序部署,有序扩展。即pod是有顺序的,在部署或者扩展的时候要依据定义的顺序依次进行(即从0到n-1,在下一个pod运行之前所有之前的pod必须是running和ready状态),基于init containers来实现 4 有序收缩,有序删除(即从n-1到0) DaemonSet:确保全部或者一些node上运行着一个pod的副本。当有node加入集群时,也会为他们新增一个pod。当有node从集群中移除时,这些pod也会被回收。删除DaemonSet将会删除它创建的所有pod。 使用DaemonSet的一些典型用法: 1)运行集群存储的deamon。例如在每个node上运行glusterd、ceph 2)在每一个node上运行日志收集的daemon,例如fluentd、logstash 3)在每个node上运行监控daemon,例如Prometheus Node Exporter Job:负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或者多个pod成功结束 CronJob:管理基于是时间的Job,即在给定时间点运行一次;周期性的爱给定时间点运行pod的网络通讯方式
pause:pod中的第一个容器,它是为整个pod提供网络基础设施设定的,所以整体的NetworkSettings中也只有在pause容器中有锁设定,他负责的内容和init类似,包括基础网络设定的命名空间的共享,僵尸进程的处理
Flannel四CoreOS团队针对Kubernetes设计的一个网络规划服务,他的功能是让集群中的不同节点的Docker容器中都具有全集群唯一的虚拟IP地址。而且它还能在这些IP地址之间建立一个副高(Overlay Network),通过这个覆盖网络,将数据包原封不动的传递到目标容器内

发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月02日 20时03分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java大数据最全课程学习笔记(2)--Hadoop完全分布式运行模式
2021-05-09
大部分程序员还不知道的 Servelt3 异步请求,原来这么简单?
2021-05-09
[apue] popen/pclose 疑点解惑
2021-05-09
[apue] getopt 可能重排参数
2021-05-09
移动互联网恶意软件命名及分类
2021-05-09
adb shell am 的用法
2021-05-09
PySide图形界面开发(一)
2021-05-09
Android如果有一个任意写入的漏洞,如何将写权限转成执行权限
2021-05-09
三角网格体积计算
2021-05-09
现代3D图形编程学习-基础简介(2) (译)
2021-05-09
Github教程(3)
2021-05-09
vue实现简单的点击切换颜色
2021-05-09
vue3 template refs dom的引用、组件的引用、获取子组件的值
2021-05-09
深入浅出mybatis
2021-05-09
Zookeeper快速开始
2021-05-09
882. Reachable Nodes In Subdivided Graph
2021-05-09
402. Remove K Digits
2021-05-09
375. Guess Number Higher or Lower II
2021-05-09
650. 2 Keys Keyboard
2021-05-09
764. Largest Plus Sign
2021-05-09