Pod介绍与Pod通讯

一、Pod介绍
1、Pod,k8s管理的最小单元

2、每个Pod默认启动pause容器

3、Pod中允许部署多个容器,容器连接pause容器

1)共享pause的网络栈,容器之间的端口,不能冲突(容器间访问通过:localhost:端口,即可)

2)共享pause的存储卷

4、Pod分类

1)自主式Pod: 不受控制器管理,不会根据副本期望值自动创建或回收Pod

2)控制器管理的Pod: k8s控制器管理的Pod

二、k8s的控制器
1、RC & RS & Deployment
1)RC: ReplicationController,维护副本期望值;异常过多时回收。新版k8s已舍弃RC,改用RS。

2)RS: ReplicaSet,与RC无本质区别,RS支持集合式筛选(符合条件筛选,比如:标签+其他)

3)Deployment

支持滚动更新(逐个创建新版本的副本,过程:创建一个新版本停用一个旧版本,创建一个新版本停用一个旧版本,逐步创建停用)
支持回滚
不负责Pod创建,通过创建RS达到滚动更新               
2、HPA
1)HPA,HorizontalPodAutoScale,水平自动伸缩管理

监控pod的资源利用率
监控cpu,当pod的cpu达到80%时(并发较高),自动创建pod;当cpu小于80%时,删除pod;达到水平伸缩
配置pod副本最大数与最小数
vialpha版本,可以根据内存进行伸缩;不是稳定版
3、StatefullSet
1)解决有状态服务的问题

2)用途

稳定的持久化存储
稳定的网络标识
有序部署
有序回收
3)其他说明

有状态服务与无状态服务: 查看了解
MySQL还不能稳定的运行在k8s
部署有状态服务,还需要再详细设计
4、DaemonSet
1)确保全部(或一些)Node上运行一个Pod的副本。

2)当有新的Node加入时,自动创建Pod

3)当有Node移除时,自动回收Pod

4)删除DeamonSet,将删除他创建的所有Pod

5)daemonSet充当node中守护进程的角色

6)如何理解“一些”,node可以打污点,打了污点的node不被调度

5、Job 与 Cron Job
1)负责批处理任务,仅执行一次的任务

2)异常退出,可重试

3)可配置执行N次成功,才算最终成功

 6、服务发现
1)客户端访问Pod服务,不是直连Pod

2)客户端连接service,service通过暴露nodeport(方式之一)供客户端连接访问

三、网络通讯
1、Pod内,容器间通讯
1)通过pause容器,通过localhost:端口方式直接通讯

 2、Pod之间的通讯
1)Pod在同一主机: 通过网桥直接转发

2)Pod在不同主机: 通过Flannel进行虚拟网络转发。Overlay Network。

3)Flannel: CoreOS团队为k8s设计的网络规划服务。功能是让集群中不同节点主机创建的Docker容器都具有集群中唯一的虚拟IP地址。

4)Flannel转发示例图:

5)Flannel与etcd

etcd存储管理Flannel可分配的IP地址段资源
监控etcd中每个Pod的实际地址,并在内存中建立维护Pod节点路由表
3、Pod与Service通讯
1)基于性能考虑,全部为iptables维护与转发

2)高版本已经支持LVS,性能更优

4、外网访问Pod
1)通过Service,Service暴露nodeport
————————————————
版权声明:本文为CSDN博主「hgSuper」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/myloverisxin/article/details/123846291

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值