1. Pod的书写

apiVersion: v1 #必选,API 的版本号

kind: Pod  #必选,资源类型Pod

metadata:  #必选,元数据信息

  name: nginx    #必选,符合RFC 1035规范的Pod名称

  namespace: tjdz #默认是default,pod所在的命名空间

  labels: #标签选择器,一般用于Selector

    - app: nginx

  annontations: #注释列表

    - app: nginx

spec: #必选,用于定义容器的详细信息

  container:  #必选,容器列表

  - name: nginx    #必选,容器名称

    image: nginx:v1   #必选,容器所使用的镜像地址

    imagePullPolicy: Always   #镜像的拉去策略

    command:    #容器启动时执行的命令

    - nginx

    - g

    - "daemon off;"

    ports:

    - containerPort: 80   #端口号

    - protocol: TCP #端口号协议

2.deploy的书写

#指定api版本标签
apiVersion: apps/v1
#定义资源的类型/角色,deployment为副本控制器
#此处资源类型可以是Deployment、Job、Ingress、Service等
kind: Deployment
#定义资源的元数据信息,比如资源的名称、namespace、标签等信息
metadata:
#定义资源的名称,在同一个namespace空间中必须是唯一的
  name: nginx-test
  lables:
    app: nginx
#定义deployment资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性
spec:
#定义副本数量
  replicas: 3
#定义标签选择器
  selector:
#定义匹配标签
    matchLabels:
#需与后面的.spec.template.metadata.labels定义的标签保持一致
      app: nginx
#定义业务模板,如果有多个副本,所有副本的属性会按照模板的相关配置进行匹配
  template:
    metadata:
#定义Pod副本将使用的标签,需与前面的.spec.selector.matchLabels定义的标签保持一致
      labels:
        app: nginx
    spec:
#定义容器属性
      containers:
#定义一个容器名,一个-name:定义一个容器
      - name: nginx
#定义容器使用的镜像以及版本
        image: nginx:1.15.4
        ports:
#定义容器对外的端口
        - containerPort: 80

3. SVC

apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
  labels:
    app: nginx
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
  selector:
#此处定义的selector要与deployment所定义的selector相同
#service依靠标签选择器来检索提供服务的nodes
    app: nginx
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐