k8s中各资源关系详解(pod,service,ingress)

1,433 阅读1分钟

pod

1.描述

1.pod是k8s最小调度单元,一个pod中可以存在多个container(容器)
2.一个pod你可以理解为一个独立的虚拟机,有独立的内核空间,网络设备,磁盘,cpu等pod级别的资源
3.多个container共享一个pod资源,可以部署多个应用
4.pod相当于一台独立主机,container相当于pod的内部一个个进程

2.如图

image.png

service

1.描述

1.service是多个pod的代理,通常情况下,我们把一类服务使用一个service进行代理访问(支付服务部署了3个pod,也就是3和节点)
2.pod每次重启都会变化ip,ip地址不固定,不是一个固定入口,我们程序没法使用
3.service会负载去访问代理的多个pod,有分流的作用,也有高可用的作用
4.service通过iptables链规则去和多个pod匹配(相当于DNS类似),iptables也只是service代理其中一种方式

2.如图

image.png

ingress

1.ingress主要是负载在service层面的一个聚合器,当整个系统有多个子系统时(订单,支付,库存)
2.ingress作用和nginx作用差不多,为多个子系统提供统一入口,使用反向代理多个子service
3.如果内部子系统需要互相访问,那么最好从ingress进行统一访问,在对应pod配置host

1630813803(1).jpg