在受管理的控制層中啟用選用功能
本頁面說明如何在受管理的 Cloud Service Mesh 中啟用選用功能。如要瞭解叢集內控制層,請參閱「在叢集內控制層啟用選用功能」。
在您佈建代管 Cloud Service Mesh 時,支援的功能會因控制層實作方式而異,且某些功能僅可透過許可清單使用。詳情請參閱「支援的功能」。如果您目前使用的是 IstioOperator
型設定,從 IstioOperator 遷移工具可協助您轉換為受控管控制平面支援的設定。
無分發版的 Proxy 圖片
如果您直接透過代管的
TRAFFIC_DIRECTOR
控制層導入,則只支援不含發布端的圖片類型。而且無法變更。如果您的機隊原本使用
ISTIOD
控制層導入方式,且已遷移至TRAFFIC_DIRECTOR
導入方式,則在遷移期間,您的映像檔類型不會有所變更,您可以自行將映像檔類型變更為 distroless。
最佳做法是將容器執行階段的內容限制為必要的套件。這種方法可提升安全性,並提高常見安全漏洞與揭露 (CVE) 掃描器的信號雜訊比。Istio 提供以 distroless 基本映像檔為基礎的 Proxy 映像檔。
無發行版的 Proxy 映像檔不含 Proxy 以外的任何二進位檔。因此,您無法在容器中exec
殼層,或使用 curl
、ping
或其他偵錯公用程式。不過,您可以使用暫時性容器附加至執行中的負載 Pod,以便檢查並執行自訂指令。例如,請參閱「收集 Cloud Service Mesh 記錄」。
以下設定會為整個 Cloud Service Mesh 啟用無發行映像檔。圖片類型變更需要重新啟動每個 Pod,並重新注入才能生效。
apiVersion: v1
kind: ConfigMap
metadata:
name: istio-release-channel
namespace: istio-system
data:
mesh: |-
defaultConfig:
image:
imageType: distroless
您可以使用下列 Pod 註解覆寫 imageType
。
sidecar.istio.io/proxyImageType: debug
使用註解變更部署作業的圖片類型後,應重新啟動部署作業。
kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME
由於不需要偵錯基準映像檔,因此大多數類型的 Proxy 偵錯功能都應使用 gcloud beta container fleet mesh debug proxy-status / proxy-config
(詳細資料)。
傳出流量政策
根據預設,outboundTrafficPolicy
會設為 ALLOW_ANY
。在這個模式下,系統會允許所有流量連往任何外部服務。如要控管並限制流量,只允許流量傳送至已定義服務項目的外部服務,您可以將 ALLOW_ANY
的預設行為變更為 REGISTRY_ONLY
。
下列設定會將
outboundTrafficPolicy
設為REGISTRY_ONLY
:apiVersion: v1 kind: ConfigMap metadata: name: istio-release-channel namespace: istio-system data: mesh: |- outboundTrafficPolicy: mode: REGISTRY_ONLY
其中 release-channel 是發布版本 (
asm-managed
、asm-managed-stable
或asm-managed-rapid
)。您可以使用下列指令,在 configmap 中進行先前必要的設定變更:
kubectl edit configmap istio-release-channel -n istio-system -o yaml
執行下列指令即可查看 ConfigMap:
kubectl get configmap istio-release-channel -n istio-system -o yaml
如要確認
outboundTrafficPolicy
已透過REGISTRY_ONLY
啟用,請確認mesh:
部分顯示下列行。... apiVersion: v1 data: mesh: | outboundTrafficPolicy: mode: REGISTRY_ONLY ...
使用者驗證
您可以設定代管 Cloud Service Mesh 使用者驗證,以便執行瀏覽器端的使用者驗證,並控管對已部署工作負載的存取權。詳情請參閱「設定 Cloud Service Mesh 使用者驗證」。
為工作負載設定最低 TLS 版本
如果您直接透過代管的 TRAFFIC_DIRECTOR
控制層導入,就無法變更這項設定。
您可以使用 minProtocolVersion
欄位,為工作負載中的 TLS 連線指定最低 TLS 版本。如要進一步瞭解如何設定最低傳輸層安全標準 (TLS) 版本,以及檢查工作負載的 TLS 設定,請參閱「Istio 工作負載最低傳輸層安全標準 (TLS) 版本設定」。
以下範例顯示 ConfigMap
將工作負載的最低 TLS 版本設為 1.3:
apiVersion: v1
kind: ConfigMap
metadata:
name: istio-release-channel
namespace: istio-system
data:
mesh: |-
meshMTLS:
minProtocolVersion: TLSV1_3