K8S 基础概念
总结:
k8s是一套分布式、高可用的容器编排架构。
pod实现容器打包,最小的单位。
replicaset实现冗余,确定副本个数,感知重启。
service实现一个pod集合的统一地址暴露,管理映射。
deployment实现一套replicaset的部署,决定升级回滚。
ingress是api-gateway.
图解见:https://zhuanlan.zhihu.com/p/32618563
硬件上,节点是有内存和计算能力的物理设备或云虚拟机。
集群把节点聚集起来变成一个内存和资源池。集群接受一个任务(pod),然后自动给节点运行。资源集中/冗余/自动恢复。
持久卷相当于接到集群上的存储设备。节点的存储相当于缓存。
软件上,
镜像是把应用和依赖打包。镜像的版本管理在harbor。容器是他的运行实例,像轻量的虚拟机。
一个pod由多个container组成,是最小的调度工作单位。pod有自己的ip,内部的container共享内存空间,方便通信。
pod像计算机,container像进程。操作container的是docker,操作pod的是k8s。
replicaset管理多个相同pod形成的冗余。一个pod宕机了,replicaset会自动新建pod。
deployment管理多个replicaset。可以是不同的replicaset。支持回滚和滚动升级。
https://blog.csdn.net/fly910905/article/details/103758149
pod上还有一层逻辑层service,防止pod失联。
每个pod有自己的ip,service提供一个统一的入口,去映射pod。
service和deployment相互独立,也可以一起使用。
组织好架构,还需要一个访问的入口ingress。负载均衡器/工作负载workload
port
Service的nodeport
https://zhuanlan.zhihu.com/p/157565821
service的ip的端口固定,将请求转给不固定ip的pod。
三种类型:
- clusterip 在集群内访问的固定VIP
- Nodeport:集群外nodeip:nodeport——》service ip:port—iptable—》pod ip:port
- loadbalancer: 集群外负载均衡ip:port——》任意node ip:port——》servce ip:port——》pod ip:port
VIP/OIP v.s. PIP
VIP/Overlay IP 是虚拟的ip,在物理PIP只上又加了一层。
VIP/OIP只在集群内访问。可以给pod这种没有实际IP的东东也加上IP。类似内网IP和公网IP。
4层/ 7层负载均衡
service是4层,传输层,TCP/UCP的ip:port
ingress是7层,应用层,根据报文中的应用内容来负载均衡。(比如说url的参数)
https://zhuanlan.zhihu.com/p/64777456