您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎樣理解Istio Operator,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Kubernetes operator 提供了一種將人類運維知識編碼到軟件中的模式,是一種簡化軟件基礎結構組件管理的流行方法。Istio 是自動 operator 的理想選擇,因為它的管理具有挑戰性。
到目前為止,Helm 一直是安裝和升級 Istio 的主要工具。Istio 1.4 引入了一種新的使用istioctl安裝方法。這種新的安裝方法建立在 Helm 的優勢之上,并添加了以下內容:
用戶只需要安裝一個工具:istioctl
驗證所有 API 字段
不在 API 中的小型定制不需要更改 chart 或 API
版本特定的升級 hook 可以很容易和穩健地實現
Helm 安裝方法正在棄用中。從 Istio 1.4 升級到一個默認沒有安裝 Helm 的版本也會被一個新的 istioctl 升級特性所取代。
新的 istioctl
安裝命令使用一個自定義資源來配置安裝。自定義資源是新的 Istio operator 實現的一部分,該實現旨在簡化安裝、升級和復雜的 Istio 配置更改等常見管理任務。安裝和升級的驗證和檢查與工具緊密集成,以防止常見錯誤并簡化故障排除。
每個 operator 實現都需要一個自定義資源定義(CRD) 來定義它的自定義資源,即它的 API。Istio 的 operator API 由 IstioControlPlane
CRD 定義,它是由一個 IstioControlPlane
原型生成的。API 支持所有 Istio 當前的配置文件 ,通過使用一個字段來選擇 profile。例如,下面的 IstioControlPlane
資源使用 demo
profile 配置 Istio:
apiVersion: install.istio.io/v1alpha2kind: IstioControlPlanemetadata: namespace: istio-operator name: example-istiocontrolplanespec: profile: demo
然后可以使用其他設置來自定義配置。例如,禁用遙測:
apiVersion: install.istio.io/v1alpha2kind: IstioControlPlanemetadata: namespace: istio-operator name: example-istiocontrolplanespec: profile: demo telemetry:enabled: false
使用 Istio operator API 的推薦方法是通過一組新的 istioctl
命令。例如,要在集群中安裝 Istio:
$ istioctl manifest apply -f <your-istiocontrolplane-customresource>
通過編輯配置文件并再次執行 istioctl manifest apply
來更改安裝配置。
升級到新版本的 Istio:
$ istioctl x upgrade -f <your-istiocontrolplane-config-changes>
除了在 IstioControlPlane
資源中指定完整的配置外,istioctl
命令還可以使用 --set
標志傳遞單獨的設置:
$ istioctl manifest apply --set telemetry.enabled=false
還有許多其他 istioctl
命令,例如,它們可以幫助您列出、顯示和比較配置 profile 和 manifest。
更多信息請參考 Istio 安裝說明。
Operator 實現使用 Kubernetes controller 來持續監控它們的自定義資源并應用相應的配置更改。Istio controller 監控一個 IstioControlPlane
資源,并通過更新相應集群中的 Istio 安裝配置來響應更改。
在 1.4 版中,Istio controller 處于開發的 alpha 階段,沒有完全集成到 istioctl
中。但是,可以使用 kubectl
命令來做實驗。例如,要將 controller 和默認版本的 Istio 安裝到集群中,請運行以下命令:
$ kubectl apply -f https://<repo URL>/operator.yaml $ kubectl apply -f https://<repo URL>/default-cr.yaml
然后你可以對 Istio 的安裝配置進行修改:
$ kubectl edit istiocontrolplane example-istiocontrolplane -n istio-system
一旦資源更新,controller 將檢測到這些變化,并相應地更新 Istio 安裝。
Operator controller 和 istioctl
命令共享相同的實現。重要的區別在于其執行上下文。對于 istioctl
,操作在管理用戶的命令執行和安全上下文中運行。對于 controller,集群中的一個 pod 在其安全上下文中運行代碼。在這兩種情況下,都根據一個 schema 來驗證配置,并執行相同的正確性檢查。
為了方便從使用 Helm 過渡,istioctl
和 controller 支持對 Helm 安裝 API 的透傳訪問。
您可以使用 istioctl --set
來傳遞 Helm 配置選項,方法是將字符串 values.
放在配置選項前面。例如,對于這個 Helm 命令:
$ helm template ... --set global.mtls.enabled=true
您可以使用 istioctl
這個命令:
$ istioctl manifest generate ... --set values.global.mtls.enabled=true
你也可以在一個 IstioControlPlane
自定義資源中設置 Helm 配置值。參見使用 Helm 自定義 Istio 設置。
另一個可以幫助從 Helm 遷移的特性是這個 alpha 命令:istioctl manifest migrate。此命令可用于將 Helm values.yaml
文件自動轉換為相應的 IstioControlPlane
配置。
已經創建了幾個框架,通過為部分或所有組件生成存根來幫助實現 operator。Istio operator 是在 kubebuilder 和 operator framework 的幫助下創建的。Istio 的安裝現在使用 proto 來描述 API,這樣就可以通過 schema 對執行運行時進行驗證。
有關實現的更多信息可以在 Istio operator 倉庫中的 README 和 ARCHITECTURE 文檔中找到。
從 Istio 1.4 開始,Helm 安裝將被新的 istioctl
命令所取代,該命令使用新的 operator 自定義資源定義,IstioControlPlane
,作為配置 API。一個 alpha controller 也被提供用于 operator 的早期實驗。
新的 istioctl
命令和 operator controller 都會驗證配置 schema,并執行安裝更改或升級的一系列檢查。這些檢查與工具緊密集成,以防止常見錯誤并簡化故障排除。
Istio 維護者們期望這種新方法能夠改善安裝和升級期間的用戶體驗,更好地穩定安裝 API,幫助用戶更好地管理和監控他們的 Istio 安裝。
上述就是小編為大家分享的怎樣理解Istio Operator了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。