K8S 之 Pod的理解

一、POD理解

docker调度的是容器,在k8s集群中,最小的调度单元是Pod,一个POD里面可以有一个容器或多个容器,但业务使用中,通常会拆分为应用一个POD,数据库一个POD,以达到有效的安全与资源分布管理。
K8S 之  Pod的理解

二、使用yaml格式定义POD

#一个POD包含两个容器
apiVersion: v1                      #该Pod的版本信息,可通过命令查看
kind: Pod                             #创建一个pod的资源
metadata:
  name: myblog                    #该pod资源的名称
  namespace: luffy               #该pod资源的命名空间
  labels:
    component: myblog        #该pod资源的label标签归属
spec:                                   #为该pod资源定义精确的信息
  containers:                        #定义为容器
  - name: myblog                #第一个容器的名称
    image: 10.3.153.200:5000/myblog:v1              #容器的镜像拉取
    env:                                            #该容器内的环境变量传输
    - name: MYSQL_HOST   
      value: "127.0.0.1"                     #因一个pod下的容器,可直接访问本地数据库
    - name: MYSQL_PASSWD
      value: "123456"
    ports:                                           #容器定义发布端口,类同于expose
    - containerPort: 8002
  - name: mysql                    #第二个容器的名称
    image: 10.3.153.200:5000/mysql:5.7-utf8
    ports:
    - containerPort: 3306
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: "123456"
    - name: MYSQL_DATABASE
      value: "myblog"

apiVersion: v1(版本含义)

K8S 之  Pod的理解

kind: Pod(可通过以下命令查看、K8S的所有资源)

K8S 之  Pod的理解

metadata

帮助唯一性标识对象的一些数据,包括一个 name 字符串、UID 和可选的 namespace、labels标签

spec

对象 spec 的精确格式对每个 Kubernetes 对象来说是不同的,包含了特定于该对象的嵌套字段

containers

定义该POD下的容器信息,如容器名称、镜像、端口、磁盘等等信息

三、如何编写资源yaml

1、拿来主义,从机器中已有的资源中拿来参考

K8S 之  Pod的理解

2、学会在官网查找, https://kubernetes.io/docs/home/

K8S 之  Pod的理解

四、Pod状态与生命周期

K8S 之  Pod的理解

K8S 之  Pod的理解

猜你喜欢

转载自blog.51cto.com/12965094/2637250