组件 kubernetes 属性管理

    与kubenetes中定义属性不同的是,该属性为yaml格式时,开头无需填写属性名。

    nodeSelector

    用于将Pod调度到匹配Label的Node上,如果没有匹配的标签会调度失败。

    labels

    是附加到k8s对象上的键值对标识,支持高效的查找和监听。作用就是字面意思,给k8s对象打上标签,我们可以使用标签来选择对象。

    volumes

    数据的持久化存储,volumes在k8s中定义时的格式为:

    在平台添加属性时不需要在开头定义volumes,如以下格式

    1. - name: config-vol
    2. configMap:
    3. name: log-config
    4. items:
    5. - key: log_level
    6. path: log_level

    volumeMounts

    挂载volumes,volumeMounts在k8s中定义时的格式为:

    1. volumeMounts: #容器内挂载点
    2. - mountPath: /data
    3. name: redis-data #必须有名称

    在平台添加属性时不需要在开头定义volumeMounts,如以下格式:

    1. - mountPath: /data
    2. name: redis-data

    affinity

    详细信息可参考k8s官方文档

    亲和性调度,affinity在k8s中定义时的格式为:

    1. affinity:
    2. nodeAffinity: # 作用域:Pod和Node之间
    3. requiredDuringSchedulingIgnoredDuringExecution: # Node亲和性-硬策略
    4. nodeSelectorTerms:
    5. - matchExpressions:
    6. - key: kubernetes.io/hostname
    7. operator: NotIn
    8. values:
    9. - node3

    在平台添加属性时不需要在开头定义affinity,如以下格式:

    tolerations

    详细信息可参考k8s官方文档

    1. tolerations:
    2. - key: "key1"
    3. value: "value1"
    4. effect: "NoSchedule"
    5. tolerationSeconds: 3600
    6. - key: "key1"
    7. operator: "Equal"
    8. value: "value1"
    9. effect: "NoExecute"

    在平台添加属性时不需要在开头定义tolerations,如以下格式:

    1. - key: "key1"
    2. operator: "Equal"
    3. value: "value1"
    4. effect: "NoSchedule"
    5. - key: "key1"
    6. operator: "Equal"
    7. value: "value1"
    8. effect: "NoExecute"

    serviceAccountName

    配置服务账户,详细信息可参考k8s官方文档

    privileged

    决定是否 Pod 中的某容器可以启用特权模式。 默认情况下,容器是不可以访问宿主上的任何设备的,不过一个“privileged(特权的)” 容器则被授权访问宿主上所有设备。 这种容器几乎享有宿主上运行的进程的所有访问权限。

    env

    详细信息可参考k8s官方文档 https://kubernetes.io/zh-cn/docs/tasks/inject-data-application/define-environment-variable-container/

    环境变量,env在k8s中定义时的格式为:

    1. env:
    2. - name: Version
    3. value: v5.8
    4. - name: NGINX_USERNAEM
    5. valueFrom:
    6. secretKeyRef:
    7. name: nginx-secret
    8. key: username
    9. optional: false
    10. - name: NGINX_PASSWORD
    11. valueFrom:
    12. secretKeyRef:
    13. name: nginx-secret
    14. key: password
    15. optional: false
    16. - name: MY_POD_IP
    17. valueFrom:
    18. fieldRef:
    19. fieldPath: status.podIP

    在平台添加属性时不需要在开头定义env,如以下格式:

    1. - name: Version
    2. value: v5.8
    3. - name: NGINX_USERNAEM
    4. secretKeyRef:
    5. name: nginx-secret
    6. key: username
    7. optional: false
    8. - name: NGINX_PASSWORD
    9. valueFrom:
    10. secretKeyRef:
    11. key: password
    12. optional: false
    13. - name: MY_POD_IP
    14. valueFrom:
    15. fieldRef:
    16. fieldPath: status.podIP

    shareProcessNamespace

    在 Pod 中的容器之间共享进程命名空间

    详细信息可参考k8s官方文档 https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/share-process-namespace/

    dnsPolicy

    Pod的DNS策略, 可以逐个 Pod 来设定。目前 Kubernetes 支持以下特定 Pod 的 DNS 策略

    Default: Pod 从运行所在的节点继承名称解析配置

    ClusterFirst: 与配置的集群域后缀不匹配的任何 DNS 查询(例如 “www.kubernetes.io”) 都将转发到从节点继承的上游名称服务器。集群管理员可能配置了额外的存根域和上游 DNS 服务器。

    None: 此设置允许 Pod 忽略 Kubernetes 环境中的 DNS 设置。 注: Pod 会使用其 dnsConfig 字段所提供的 DNS 设置

    详细信息可参考k8s官方文档

    dnsConfig配置在k8s中定义时的格式为:

    在平台添加属性时不需要在开头定义dnsConfig,如以下格式:

    1. nameservers:
    2. - 1.2.3.4
    3. searches:
    4. - ns1.svc.cluster-domain.example
    5. - my.dns.search.suffix
    6. options:
    7. - name: ndots
    8. value: "2"
    9. - name: edns0

    resources

    为Pod和容器管理资源

    详细信息可参考k8s官方文档

    resources在k8s中定义时的格式为:

    1. resources:
    2. requests:
    3. memory:
    4. limits:
    5. memory:

    在平台添加属性时不需要在开头定义resources,如以下格式:

    1. requests:
    2. memory:
    3. limits:
    4. memory:

    hostIPC

    控制容器是否可以共享主机的IPC名称空间

    lifecycle

    为容器的生命周期事件设置处理函数

    详细信息可参考k8s官方文档 https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/

    1. lifecycle:
    2. ostStart:
    3. exec:
    4. command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
    5. preStop:

    在平台添加属性时不需要在开头定义lifecycle,如以下格式