简介
从整体来看:K8s是围绕着Pod这个可以视作单个容器的“容器组”展开的。也就说pod是能被创建、调度和管理的最小单元。
POD
一、pod的一些操作
K8s
在K8s中,所有容器都会被分配一个副本控制器
每个容器都被指定一个分组的标签
当为某些容器(可以使用label指定)分配了一个service代理后,这些容器可以统一使用一个固定ip
二、pod和容器的关系
一个Pod(想象成篮子)里的容器(想象成鸡蛋)能有多少资源取决于篮子大小
label贴在篮子上
IP分配给篮子,pod中所有容器共享ip
一个容器仍会被封装成pod
三、pod的一些特性
通过K8s volume机制,在容器间共享存储、IP和端口区间
通过localhost直接访问另一容器
replication controller
replication controller 决定了一个pod有多少同时运行的副本,并保持副本的期望状态与当前的状态一致。在设计上,k8s为每个pod外挂一个控制器进程,避免了健康检查逐渐成为性能瓶颈
一、pod各种状态值
状态值 | 含义 |
---|---|
Pending | pod的创建请求已经被系统接受,但是pod内还有一个或者多个容器未启动。这个时间可能包括:下载docker镜像的网络传输时间和pod的调度时间等。 |
Running | pod已经被绑定到工作节点,而且pod内所有的容器已经被创建。最重要的是至少有一个容器处于运行状态、正在重启或启动。 |
Succeeded | 专指pod内所有容器成功退出、并且不会发生重启 |
Failed | pod内所有容器均已经退出、并且至少至少有一个容器发生错误而退出 |
Unknown | 因为某些未知的原因,主机上的kubelet目前无法获得pod的状态 |
service
最为代理来确保需要使用pod的应用而不需要知道pod的真是ip,另一方面是当使用replication controller 创建了多个pod副本时,需要一个代理为这些pod做负载均衡。或许命名为proxy或者router更为合适
主要由一个独一无二ip和一个laber selector构成
这个Ip和service的生命周期相同且不变(pod的ip地址与此不同,会随着pod的生命周期产生和消亡)
作者:bobozhangshao
链接:https://www.jianshu.com/p/f1fd8b4fb455