13、k8s-pod模块-pod结构-pod的yaml属性
每个pod中都可以包含一个或多个容器、这些容器可以分为两类:
·用户程序所在的容器、数量可多可少
·pause容器,这是每个pod都会有的一个根容器、它的作用有两个:
·可以以它为依据、评估整个pod的健康状态
·可以在根容器上设置ip地址,其它容器都以此IP(pod ip) 来实现pod内部的网络通信(这里指的是pod内部的通信、pod之间的通讯采用虚拟的二层网络技术来实现、当前环境使用的是flannel)
pod的资源清单:yaml文件的配置
1、查看pod的yaml配置示例(k8s内部提供): ·查看一级属性可配置项:kubectl explain pod ·查看二级属性可配置项:kubectl explain pod.metadata ·查看三级属性可配置项:kubectl explain pod.metadata.name ·..... 2、适用于namespace、deployment、service
yaml一级清单解析
注意:在kubernetes中基本所有资源的一级属性都是一样的、主要包括下面5部分:
1、apiVersion: <string> 版本、由kubernetes内部定义、版本号必须可以使用kubectl api-versions来查询到 2、kind: <string> 类型,由kubernetes内部定义、版本号必须可以使用kubectl api-resources来查询到 3、metadata: <Object> 元数据、主要是资源标识核说明、常用的有name、namespace、labels等 4、spec: <Object> 描述、这是配置中最重要的一部分、里面是对各种资源配置的详细描述 5、status: <Object> 状态信息、里面的内容不需要定义、有kubernetes自动生产
·可通过-o yaml 查看某个pod的状态:kubectl get pods nginx0-64777cd554-cdsh6 -ndev -o yaml
spec选项的常用子属性:
1、containers: <[]Object> 容器列表,用于定义容器的详细信息 2、nodeName: <String> 根据nodeName的值将pod调度到指定的Node节点上 3、nodeSelector: <map[]> 根据NodeSelector中定义的信息选择将该pod调度到包含这些label的Node上 4、hostNetwork: <boolean> 是否使用主机网络模式、默认所谓false、如果设置为true、表示使用宿主机网络 5、volumes: <[]Object> 存储卷、用于定义pod上面挂载的存储信息 6、restartPolicy: <string> 重启策略、表示pod在遇到故障的时候的处理策略