美文网首页
deployment.yaml 关键字

deployment.yaml 关键字

作者: 爲誰而来 | 来源:发表于2022-09-14 10:56 被阅读0次

Deployment yaml文件包含四个部分:

apiVersion: 表示版本

kind: 表示资源

metadata: 表示元信息

spec: 资源规范字段

apiVersion: apps/v1 # 指定api版本

kind: Deployment  # 指定创建资源的角色/类型 

metadata:  # 资源的元数据/属性

  name: demo  # 资源的名字,在同一个namespace中必须唯一

  namespace: default # 部署在哪个namespace中

  labels:  # 设定资源的标签

    app: demo

    version: stable

spec: # 资源规范字段

  replicas: 1 # 声明副本数目

  revisionHistoryLimit: 3 # 保留历史版本

  selector: # 选择器

    matchLabels: # 匹配标签

      app: demo

      version: stable

  strategy: # 策略

    rollingUpdate: # 滚动更新

      maxSurge: 30% # 最大额外可以存在的副本数,可以为百分比,也可以为整数

      maxUnavailable: 30% # 示在更新过程中能够进入不可用状态的 Pod 的最大值,可以为百分比,也可以为整数

    type: RollingUpdate # 滚动更新策略

  template: # 模版

    metadata: # 资源的元数据/属性

      annotations: # 自定义注解列表

        sidecar.istio.io/inject: "false" # 自定义注解名字

      labels: # 设定资源的标签

        app: demo

        version: stable

    spec: # 资源规范字段

      containers:

      - name: demo # 容器的名字 

        image: demo:v1 # 容器使用的镜像地址 

        imagePullPolicy: IfNotPresent # 每次Pod启动拉取镜像策略,三个选择 Always、Never、IfNotPresent

                                      # Always,每次都检查;Never,每次都不检查(不管本地是否有);IfNotPresent,如果本地有就不检查,如果没有就拉取

        resources: # 资源管理

          limits: # 最大使用

            cpu: 300m # CPU,1核心 = 1000m

            memory: 500Mi # 内存,1G = 1024Mi

          requests:  # 容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行

            cpu: 100m

            memory: 100Mi

        livenessProbe: # pod 内部健康检查的设置

          httpGet: # 通过httpget检查健康,返回200-399之间,则认为容器正常

            path: /healthCheck # URI地址

            port: 8080 # 端口

            scheme: HTTP # 协议

            # host: 127.0.0.1 # 主机地址

          initialDelaySeconds: 30 # 表明第一次检测在容器启动后多长时间后开始

          timeoutSeconds: 5 # 检测的超时时间

          periodSeconds: 30 # 检查间隔时间

          successThreshold: 1 # 成功门槛

          failureThreshold: 5 # 失败门槛,连接失败5次,pod杀掉,重启一个新的pod

        readinessProbe: # Pod 准备服务健康检查设置

          httpGet:

            path: /healthCheck

            port: 8080

            scheme: HTTP

          initialDelaySeconds: 30

          timeoutSeconds: 5

          periodSeconds: 10

          successThreshold: 1

          failureThreshold: 5

        #也可以用这种方法 

        #exec: 执行命令的方法进行监测,如果其退出码不为0,则认为容器正常 

        #  command: 

        #    - cat 

        #    - /tmp/health 

        #也可以用这种方法 

        #tcpSocket: # 通过tcpSocket检查健康 

        #  port: number

        ports:

          - name: http # 名称

            containerPort: 8080 # 容器开发对外的端口

            protocol: TCP # 协议

      imagePullSecrets: # 镜像仓库拉取密钥

        - name: harbor-certification

      affinity: # 亲和性调试

        nodeAffinity: # 节点亲和力

          requiredDuringSchedulingIgnoredDuringExecution: # pod 必须部署到满足条件的节点上

            nodeSelectorTerms: # 节点满足任何一个条件就可以

            - matchExpressions: # 有多个选项,则只有同时满足这些逻辑选项的节点才能运行 pod

              - key: beta.kubernetes.io/arch

                operator: In

                values:

                - amd64

相关文章

网友评论

      本文标题:deployment.yaml 关键字

      本文链接:https://www.haomeiwen.com/subject/uibkortx.html