Google Cloudチームは、Google Cloud Config Connectorの一般提供を開始した。Kubernetsクラスタにインストールすれば、データベースや仮想マシンといったサービスを、Kubernetesリソースとして扱うことが可能になる。
Config Connectorは、Google Cloud Platform(GCP)にマップするカスタムリソース定義を利用する、Kubernetesオペレータである。これによって"Google CloudインフラストラクチャをKubernetesアプリケーションと同じ方法で管理することが可能になり、複雑性と開発者の認知的負荷が軽減"できる、とGoogleは述べている。Config Connectorのリリースを伝えるブログ記事では、アプリケーションコンポーネント間でのインフラストラクチャの一貫性が重要である、とされている。
しかしながら、Cloud SQLやCloud Storageのように、Kubernetes上で動作するアプリケーションがKubnernetes外部のリソースを利用することは少なくない。これらのリソースは、Kubernetesと同じ設定アプローチを使用していないのが一般的だ。これがチーム間の軋轢を生み出して、開発者に頻繁な"コンテキストスイッチ"を強いることになる。さらに、これらアプリケーションの設定や運用には、外部リソースを設定し、Kubernetesリソースを設定した上で、前者を後者から利用可能にするという、複数ステップのプロセスが必要になる。
Kubernetesは、望ましい状態(desired state)の宣言的定義を受け入れ、宣言されたリソースを生成し、現在の状態を望ましい状態に継続的に一致させることで動作する。Config Connectorは非Kubernetesリソースのプロビジョニングと管理にも、Kuberenetsエクスペリエンスを活用できるようにするものだ。Confg Connectorは、サポートするリソースがすべてGCPサービスであれば、任意のKubernetesクラスタ — GCP以外で動作するものを含む — にインストールすることができる。対象となるGCPリソースはBig Query、Cloud Bigtable、Compute Engine、Firestore、Pub/Sub、Memorystore、Cloud Spanner、Cloud SQL、Cloud Storageなどである。
これらGoogle Cloudリソースのサービス定義は、他のKubernetesリソースと同様、YAMLファイルに記述する。例えば次のYAMLは、Cloud Spannerインスタンスを生成するものだ。
apiVersion: spanner.cnrm.cloud.google.com/v1beta1
kind: SpannerInstance
metadata:
labels:
label-one: "value-one"
name: spannerinstance-sample
spec:
config: regional-us-west1
displayName: Spanner Instance Sample
numNodes: 1
他のKubernetesリソースと同様、定義を更新すればリソースも更新される。New StackのJanakiram MSV氏がCloud SQLデータベースの生成と、リソース定義を変更してそれを地理的に移動する方法を紹介している。
Kubernetesオブジェクトをkubectlで修正するのと同じ方法で、GCPリソースを更新することも可能である。例えばYAMLファイルを修正してSQLデータベースインスタンスのゾーンを変更し、新たな定義に適用することができる。この作業により、対応するCloud SQL APIがコールされ、データベースが新たなゾーンに移動される。
望ましい状態による管理に加えて、ロールベースのアクセス管理、イベントの可視化、機密情報を扱うシークレットストレージ、結果整合性によるリソース間の依存性管理などのKubernetesエクスペリエンスも、カスタムリソースに適用することができる。
基本的に異なるタイプのリソース管理を統合する試みは、これが初めてではない。Terraformはインフラストラクチャ・アズ・コードに対処することで、さまざまなGoogle Cloudサービスのプロビジョニングと管理をひとつのエクスペリエンスに統合する。Chefのような従来型の設定管理プロダクトでも、Google Cloudサービスに対する一貫的なアプローチをサポートしている。アプリケーション開発者によるサービスインスタンスのプロビジョニングとアタッチを支援する、Open Service Broker APIのようなベンダニュートラルな標準も登場している。Googleは、Kubernetesを中心とした標準化に期待しているようで、自らのプラットフォームニュートラルなサービスブローカは廃止する予定である。