5.0.2 Pod 对象, 编排

凡是调度,网络,存储以及安全相关的属性,基本上是Pod级别的。
例如:
NodeSelector:是一个用户将Pod与Node进行绑定的字段。
NodeName:一旦这个字段被赋值,Kubernetes就会认为这个Pod经过了调度。
HostAliases:定义了Pod的hosts文件(比如/etc/hosts)里的内容.

除了跟机器相关的配置外,凡是跟容器的Linux Namespace相关的属性,也一定是Pod级别的。

凡是Pod中的容器要共享宿主机的Namespace,也一定是Pod级别的

Container字段
ImagePullPolicy字段。定义了拉取镜像的策略
Lifecycle字段。定义了ContainerLifecycle Hooks

Kubernetes v1.11 之后加入了投射数据卷,projected Volume. 其存在的意义不是为了存放容器里的数据,也不是用来进行容器和宿主机之间的数据交换,而是为容器提供预先定义好的数据

一般有四种:
1.Secret (存放数据库的Credential信息)
2.ConfigMap (不需要加密的,应用所需的配置信息)
3.Downward API
4.ServiceAccountToken

kubernetes架构中,叫做kube-controller-manager的组件,就是一系列控制器的集合.
遵循一个通用编排模式,控制循环(control loop)

for {
  实际状态 := 获取集群中对象 X 的实际状态(Actual State)
  期望状态 := 获取集群中对象 X 的期望状态(Desired State)
  if 实际状态 == 期望状态{
    什么都不做
  } else {
    执行编排动作,将实际状态调整为期望状态
  }
}

kubelet的监控来源包括,心跳汇报的容器抓共同和节点状态,监控系统保存的应用监控数据,或者控制器主动收集的感兴趣的信息。

期望状态,来自于用户提交的YAML文件

你可能感兴趣的:(5.0.2 Pod 对象, 编排)