赞
踩
一、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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。