Istio Operatorとは
Istioのコントロールプレーンをインストールし、継続的に更新するための設定方法として開発されたものです。
MySQL Operatorなどと同じような雰囲気です。
Istioのコントロールプレーンの運用において必要な項目を自動化するためのKubernetesのカスタムコントローラーです。
Isitoにおいては、管理の選択肢として以下のものが上げられます。
- Istioctl(https://istio.io/latest/docs/setup/install/istioctl/)
- Helm(https://istio.io/latest/docs/setup/install/helm/)
- Istio Operator(https://istio.io/latest/docs/setup/install/operator/)
どのようなものか
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
profile: default
hub: gcr.io/istio-testing
tag: latest
revision: 1-8-0
meshConfig:
accessLogFile: /dev/stdout
enableTracing: true
components:
egressGateways:
- name: istio-egressgateway
enabled: true
こちらは、公式ドキュメントから引用した、IstioOperatorについて記述したyamlの例です。
リソースを使用すると、使用する Istioインストール設定プロファイル、IstioのDocker Image(gcr.io/istio-testing)、グローバルメッシュ設定、およびゲートウェイやパイロットなどの各コンポーネントの設定を構成できます。
Operatorパターンなので、当然ですが必要な設定についてこのIstio Operator Resourceに保存しておき、実際にIstioをその状態に向かわせているのは、Istio Operator Controllerの方です。
Istio Operator Controllerは、istiod, ingress, egressなどを設定します。
ところが、、、
公式によると、
https://istio.io/latest/docs/setup/install/operator/
Istioctl および Helm のインストール方法を優先してください。新しい Istio インストールに IstioOperaor を使用することはお勧めしません。IstioOperaor は引き続きサポートされますが、新しい機能のリクエストは優先されません。
とのこと。API CentricにIstioを管理する唯一の方法であるIstio Operatorが非推奨となってしまいました。
最低限宣言的に構成の管理をすることIstioctlでもできるようです。
# my-config.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
accessLogFile: /dev/stdout
$ istioctl install -f my-config.yaml
このようにmy-config.yamlを作成すれば宣言的な管理はできるそうですが、kubectl apply -f
コマンドで実行したいですよね。
Helmやistioctlでのインストールが一般的になっていたんですね〜。