工作負載群組

WorkloadGroup 描述了工作負載實例的集合。它提供了一個規範,讓工作負載實例可以用來啟動它們的代理,包括元數據和身分識別。它僅用於非 k8s 工作負載(如虛擬機器),並且旨在模仿現有的 sidecar 注入和部署規範模型,該模型用於 Kubernetes 工作負載來啟動 Istio 代理。

以下範例宣告了一個工作負載群組,代表將在 bookinfo 命名空間中以 reviews 名義註冊的工作負載集合。在啟動過程中,這組標籤將與每個工作負載實例關聯,而連接埠 3550 和 8080 將與工作負載群組關聯,並使用服務帳戶 defaultapp.kubernetes.io/version 僅為標籤的任意範例。

apiVersion: networking.istio.io/v1
kind: WorkloadGroup
metadata:
  name: reviews
  namespace: bookinfo
spec:
  metadata:
    labels:
      app.kubernetes.io/name: reviews
      app.kubernetes.io/version: "1.3.4"
  template:
    ports:
      grpc: 3550
      http: 8080
    serviceAccount: default
  probe:
    initialDelaySeconds: 5
    timeoutSeconds: 3
    periodSeconds: 4
    successThreshold: 3
    failureThreshold: 3
    httpGet:
     path: /foo/bar
     host: 127.0.0.1
     port: 3100
     scheme: HTTPS
     httpHeaders:
     - name: Lit-Header
       value: Im-The-Best

WorkloadGroup

WorkloadGroup 可以指定單個工作負載的啟動屬性,並為 WorkloadEntry 提供範本,類似於 Deployment 如何透過 Pod 範本指定工作負載的屬性。一個 WorkloadGroup 可以有多個 WorkloadEntryWorkloadGroup 與控制服務註冊表的資源(如 ServiceEntry)沒有關係,因此不為這些工作負載配置主機名稱。

欄位類型描述必要
metadataObjectMeta

將用於所有相應 WorkloadEntries 的元數據。工作負載群組的使用者標籤應在此處的 metadata 中設定,而不是在 template 中設定。

templateWorkloadEntry

用於產生屬於此 WorkloadGroupWorkloadEntry 資源的範本。請注意,addresslabels 欄位不應在範本中設定,而空的 serviceAccount 應預設為 default。工作負載身分(mTLS 憑證)將使用指定的服務帳戶令牌啟動。此群組中的工作負載條目將與工作負載群組位於相同的命名空間中,並繼承上述 metadata 欄位的標籤和註解。

probeReadinessProbe

ReadinessProbe 描述了使用者必須為其工作負載上的健康檢查提供的配置。此配置在語法和邏輯上都與 K8S 非常相似。

ReadinessProbe

欄位類型描述必要
initialDelaySecondsint32

在啟動準備探測之前,容器啟動後經過的秒數。

timeoutSecondsint32

探測逾時的秒數。預設為 1 秒。最小值為 1 秒。

periodSecondsint32

執行探測的頻率(以秒為單位)。預設為 10 秒。最小值為 1 秒。

successThresholdint32

探測在失敗後被認為成功的最小連續成功次數。預設為 1 秒。

failureThresholdint32

探測在成功後被認為失敗的最小連續失敗次數。預設為 3 秒。

httpGetHTTPHealthCheckConfig (oneof)

httpGet 會在給定的端點執行,而其狀態/是否能夠連線將決定健康狀態。

tcpSocketTCPHealthCheckConfig (oneof)

健康狀態由代理是否能夠連線來決定。

execExecHealthCheckConfig (oneof)

健康狀態由執行命令的退出狀態決定。

HTTPHealthCheckConfig

欄位類型描述必要
pathstring

在 HTTP 伺服器上存取的路徑。

portuint32

端點所在的連接埠。

hoststring

要連線的主機名稱,預設為 Pod IP。您可能需要在 httpHeaders 中設定 “Host”。

schemestring

HTTP 或 HTTPS,預設為 HTTP

httpHeadersHTTPHeader[]

代理將傳遞以發出請求的標頭。允許重複標頭。

HTTPHeader

欄位類型描述必要
namestring

標頭欄位名稱

valuestring

標頭欄位值

TCPHealthCheckConfig

欄位類型描述必要
hoststring

要連線的主機,預設為 localhost

portuint32

主機的連接埠

ExecHealthCheckConfig

欄位類型描述必要
commandstring[]

要執行的命令。退出狀態 0 被視為存活/健康,而非零則為不健康。

WorkloadGroup.ObjectMeta

ObjectMeta 描述將附加到 WorkloadEntry 的元數據。它是支援的 Kubernetes 元數據的子集。

欄位類型描述必要
labelsmap<string, string>

要附加的標籤

annotationsmap<string, string>

要附加的註解

這些資訊是否有用?
您有任何改進建議嗎?

感謝您的回饋!