文件

Operator Helm Charts

MinIO 發布適用於 Helm ChartsHelm Operator ChartsHelm Tenant Charts。您可以使用這些圖表,透過 Helm 部署 MinIO Operator 和受管理的租戶。

以下頁面說明 MinIO Operator 的 values.yaml 圖表。如需 MinIO 租戶圖表的相關文件,請參閱 租戶 Helm Charts

MinIO Operator Chart

operator

Operator Helm Chart 的根索引鍵

env

要傳遞給 Operator 部署的環境變數陣列。傳遞空陣列以使用預設值啟動 Operator。

例如

env:
- name: MINIO_OPERATOR_DEPLOYMENT_NAME
  valueFrom:
    fieldRef:
      fieldPath: metadata.labels['app.kubernetes.io/name']
- name: CLUSTER_DOMAIN
  value: "cluster.domain"
- name: WATCHED_NAMESPACE
  value: ""
- name: MINIO_OPERATOR_RUNTIME
  value: "OpenShift"

請參閱 Operator 環境變數,以取得所有支援值的清單。

image

指定要用於部署的 Operator 容器映像。 image.tag 例如,以下設定映像為 quay.io/minio/operator 儲存庫和 v6.0.3 標籤。如果容器尚未存在,則會提取映像

image:
  repository: quay.io/minio/operator
  tag: v6.0.3
  pullPolicy: IfNotPresent

該圖表還支援根據摘要值指定映像

image:
  repository: quay.io/minio/operator@sha256
  digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983
  pullPolicy: IfNotPresent
sidecarImage

指定要在租戶 Pod 上部署的 Sidecar 容器映像,用於 init 容器和 Sidecar。只有在想要使用不同於預設值的版本,或者想要設定自訂登錄時,才需要變更此設定。sidecarImage.tag 例如,以下設定映像為 quay.io/minio/operator-sidecar 儲存庫和 v6.0.3 標籤。如果容器尚未存在,則會提取映像

sidecarImage:
  repository: quay.io/minio/operator-sidecar
  tag: v6.0.3
  pullPolicy: IfNotPresent

該圖表還支援根據摘要值指定映像

sidecarImage:
  repository: quay.io/minio/operator-sidecar@sha256
  digest: a11947a230b80fb1b0bffa97173147a505d4f1207958f722e348d11ab9e972c1
  pullPolicy: IfNotPresent
imagePullSecrets

用於從私有 image.repository 中提取映像的 Kubernetes 秘密陣列。目前僅支援一個陣列元素。

runtimeClassName

要用於 Operator Pod 的自訂 容器執行時間的名稱。

initContainers

在 Operator Pod 之前啟動的 initContainers 陣列。請謹慎使用,因為 initContainer 故障會阻止 Operator Pod 啟動。傳遞空陣列以正常啟動 Operator。

replicaCount

要部署的 Operator Pod 數量。較高的值會在工作節點發生故障時提高可用性。

叢集必須有足夠數量的可用工作節點,才能滿足請求。Operator Pod 預設會使用 Pod 反親和性部署,以防止 Kubernetes 將多個 Pod 排程到單一工作節點上。

securityContext

用於部署 Operator 資源的 Kubernetes SecurityContext

您可能需要修改這些值,以符合您叢集的安全性和存取設定。

containerSecurityContext

用於部署 Operator 容器的 Kubernetes SecurityContext。您可能需要修改這些值,以符合您叢集的安全性和存取設定。

volumes

Operator 可以掛載到 Pod 的 磁碟區 (Volumes) 陣列。

磁碟區必須存在並且可讓 Operator Pod 存取。

volumeMounts

與每個 Operator 容器相關聯的磁碟區掛載點陣列。

請依照下列方式指定陣列中的每個項目

volumeMounts:
- name: volumename
  mountPath: /path/to/mount

name 欄位必須對應到 volumes 陣列中的一個項目。

nodeSelector

要套用到 Operator Pod 的任何 節點選擇器 (Node Selectors)

Kubernetes 排程器會使用這些選擇器來判斷它可以將 Operator Pod 部署到哪些工作節點上。

如果沒有任何工作節點符合指定的選擇器,則 Operator 部署將會失敗。

priorityClassName

要指派給 Operator Pod 的 Pod 優先級 (Pod Priority)

affinity

要套用到 Operator Pod 的 親和性 (affinity) 或反親和性 (anti-affinity) 設定。

這些設定決定 Pod 在工作節點上的分佈,並有助於防止或允許將 Pod 共置到相同的工作節點上。

tolerations

要與 Operator Pod 關聯的 容忍度標籤 (Toleration labels) 陣列。

這些設定決定 Pod 在工作節點上的分佈。

topologySpreadConstraints

要與 Operator Pod 關聯的 拓撲分散約束 (Topology Spread Constraints) 陣列。

這些設定決定 Pod 在工作節點上的分佈。

resources

要與 Operator Pod 關聯的資源 請求或限制 (Requests or Limits)

這些設定可以控制每個 Pod 所請求的最小和最大資源。如果沒有任何工作節點可以滿足指定的請求,Operator 可能會無法部署。

###
# Root key for Operator Helm Chart
operator:
  ###
  # An array of environment variables to pass to the Operator deployment.
  # Pass an empty array to start Operator with defaults.
  #
  # For example:
  #
  # .. code-block:: yaml
  #
  #    env:
  #    - name: MINIO_OPERATOR_DEPLOYMENT_NAME
  #      valueFrom:
  #        fieldRef:
  #          fieldPath: metadata.labels['app.kubernetes.io/name']
  #    - name: CLUSTER_DOMAIN
  #      value: "cluster.domain"
  #    - name: WATCHED_NAMESPACE
  #      value: ""
  #    - name: MINIO_OPERATOR_RUNTIME
  #      value: "OpenShift"
  #
  # See `Operator environment variables <https://github.com/minio/operator/blob/master/docs/env-variables.md>`__ for a list of all supported values.
  env:
    - name: OPERATOR_STS_ENABLED
      value: "on"
  # An array of additional annotations to be applied to the operator service account
  serviceAccountAnnotations: []
  # additional labels to be applied to operator resources
  additionalLabels: {}
  ###
  # Specify the Operator container image to use for the deployment.
  # ``image.tag``
  # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v6.0.3 tag.
  # The container pulls the image if not already present:
  #
  # .. code-block:: yaml
  #
  #    image:
  #      repository: quay.io/minio/operator
  #      tag: v6.0.3
  #      pullPolicy: IfNotPresent
  #
  # The chart also supports specifying an image based on digest value:
  #
  # .. code-block:: yaml
  #
  #    image:
  #      repository: quay.io/minio/operator@sha256
  #      digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983
  #      pullPolicy: IfNotPresent
  #
  image:
    repository: quay.io/minio/operator
    tag: v6.0.3
    pullPolicy: IfNotPresent
  ###
  # Specify the sidecar container image to deploy on tenant pods for init container and sidecar.
  # Only need to change this if want to use a different version that the default, or want to set a custom registry.
  # ``sidecarImage.tag``
  # For example, the following sets the image to the ``quay.io/minio/operator-sidecar`` repo and the v6.0.3 tag.
  # The container pulls the image if not already present:
  #
  # .. code-block:: yaml
  #
  #    sidecarImage:
  #      repository: quay.io/minio/operator-sidecar
  #      tag: v6.0.3
  #      pullPolicy: IfNotPresent
  #
  # The chart also supports specifying an image based on digest value:
  #
  # .. code-block:: yaml
  #
  #    sidecarImage:
  #      repository: quay.io/minio/operator-sidecar@sha256
  #      digest: a11947a230b80fb1b0bffa97173147a505d4f1207958f722e348d11ab9e972c1
  #      pullPolicy: IfNotPresent
  #
  sidecarImage: {}
  ###
  #
  # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``.
  # Only one array element is supported at this time.
  imagePullSecrets: [ ]
  ###
  #
  # The name of a custom `Container Runtime <https://kubernetes.dev.org.tw/docs/concepts/containers/runtime-class/>`__ to use for the Operator pods.
  runtimeClassName: ~
  ###
  # An array of `initContainers <https://kubernetes.dev.org.tw/docs/concepts/workloads/pods/init-containers/>`__ to start up before the Operator pods.
  # Exercise care as ``initContainer`` failures prevent Operator pods from starting.
  # Pass an empty array to start the Operator normally.
  initContainers: [ ]
  ###
  # The number of Operator pods to deploy.
  # Higher values increase availability in the event of worker node failures.
  #
  # The cluster must have sufficient number of available worker nodes to fulfill the request.
  # Operator pods deploy with pod anti-affinity by default, preventing Kubernetes from scheduling multiple pods onto a single Worker node.
  replicaCount: 2
  ###
  # The Kubernetes `SecurityContext <https://kubernetes.dev.org.tw/docs/tasks/configure-pod-container/security-context/>`__ to use for deploying Operator resources.
  #
  # You may need to modify these values to meet your cluster's security and access settings.
  securityContext:
    runAsUser: 1000
    runAsGroup: 1000
    runAsNonRoot: true
    fsGroup: 1000
  ###
  # The Kubernetes `SecurityContext <https://kubernetes.dev.org.tw/docs/tasks/configure-pod-container/security-context/>`__ to use for deploying Operator containers.
  # You may need to modify these values to meet your cluster's security and access settings.
  containerSecurityContext:
    runAsUser: 1000
    runAsGroup: 1000
    runAsNonRoot: true
    allowPrivilegeEscalation: false
    capabilities:
      drop:
        - ALL
    seccompProfile:
      type: RuntimeDefault
  ###
  # An array of `Volumes <https://kubernetes.dev.org.tw/docs/concepts/storage/volumes/>`__ which the Operator can mount to pods.
  #
  # The volumes must exist *and* be accessible to the Operator pods.
  volumes: [ ]
  ###
  # An array of volume mount points associated to each Operator container.
  #
  # Specify each item in the array as follows:
  #
  # .. code-block:: yaml
  #
  #    volumeMounts:
  #    - name: volumename
  #      mountPath: /path/to/mount
  #
  # The ``name`` field must correspond to an entry in the ``volumes`` array.
  volumeMounts: [ ]
  ###
  # Any `Node Selectors <https://kubernetes.dev.org.tw/docs/concepts/scheduling-eviction/assign-pod-node/>`__ to apply to Operator pods.
  #
  # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Operator pods.
  #
  # If no worker nodes match the specified selectors, the Operator deployment will fail.
  nodeSelector: { }
  ###
  #
  # The `Pod Priority <https://kubernetes.dev.org.tw/docs/concepts/scheduling-eviction/pod-priority-preemption/>`__ to assign to Operator pods.
  priorityClassName: ""
  ###
  #
  # The `affinity <https://kubernetes.dev.org.tw/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/>`__ or anti-affinity settings to apply to Operator pods.
  #
  # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes.
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: name
                operator: In
                values:
                  - minio-operator
          topologyKey: kubernetes.io/hostname
  ###
  #
  # An array of `Toleration labels <https://kubernetes.dev.org.tw/docs/concepts/scheduling-eviction/taint-and-toleration/>`__ to associate to Operator pods.
  #
  # These settings determine the distribution of pods across worker nodes.
  tolerations: [ ]
  ###
  #
  # An array of `Topology Spread Constraints <https://kubernetes.dev.org.tw/docs/concepts/scheduling-eviction/topology-spread-constraints/>`__ to associate to Operator pods.
  #
  # These settings determine the distribution of pods across worker nodes.
  topologySpreadConstraints: [ ]
  ###
  #
  # The `Requests or Limits <https://kubernetes.dev.org.tw/docs/concepts/configuration/manage-resources-containers/>`__ for resources to associate to Operator pods.
  #
  # These settings can control the minimum and maximum resources requested for each pod.
  # If no worker nodes can meet the specified requests, the Operator may fail to deploy.
  resources:
    requests:
      cpu: 200m
      memory: 256Mi
      ephemeral-storage: 500Mi