BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース HashiCorp社、Terraform Cloud Operator for Kubernetesの性能・拡張性を向上

HashiCorp社、Terraform Cloud Operator for Kubernetesの性能・拡張性を向上

原文リンク(2023-12-12)

HashiCorpはTerraform Cloud Operator for Kubernetesv2をリリースした。このオペレータは単一のKubernetesカスタムリソースを通してTerraform Cloudワークスペースを管理できる。このリリースでは、複数のカスタマーリソースのサポート、ウォッチスコープを特定のネームスペースに設定すること、同期の改善、新しく公開されたメトリクスが追加された。

Terraform Cloud Operator for Kubernetes を使うことで、Kubernetes の内部と外部の両方のインフラストラクチャを、Kubernetes のコントロールプレーンから直接プロビジョニング可能になる。HashiCorpのシニアソフトウェアエンジニアであるJohn Houston氏とプロダクトマネージャーのVishnu Ravindra氏が説明している。"[p]latformチームは、承認されたTerraformモジュールの使用を保証しながら、Kubernetesネイティブなワークフローをアプリケーション開発者に提供できるようになった。"

Terraform Cloud Operator for Kubernetes high-level architecture

Terraform Cloud Operator for Kubernetesのハイレベルアーキテクチャ(出典:HashiCorp

バージョン2のリリースでは、複数のカスタムリソースが用意され、それぞれが異なるTerraform Cloudリソース用の独立したコントローラを持つようになった。さらに、各コントローラーに割り当てられるワーカースレッドの数を変更できるようになった。デフォルトでは、各コントローラーにはワーカーが1つあるが、コントローラーが同時に処理できるカスタムリソースの数を増やすために追加が可能だ。

オペレータはAgentPoolを介してTerraform Cloud エージェントプールTerraform Cloud エージェントトークンを管理するために使用できる。ModuleAPI駆動の実行ワークフローを実装するために使われ、WorkspaceTerraform Cloudワークスペースを管理するために使われる。以下の例では、agent-pool-developmentというエージェントプールを作成し、token-redというトークンを生成している。

---apiVersion: app.terraform.io/v1alpha2kind: AgentPoolmetadata:  name: thisspec:  organization: kubernetes-operator  token:    secretKeyRef:      name: tfc-operator      key: token  name: agent-pool-development  agentTokens:  - name: token-red  agentDeployment:   replicas: 1  autoscaling:    targetWorkspaces:    - name: us-west-development    - id: ws-NUVHA9feCXzAmPHx    - wildcardName: eu-development-*    minReplicas: 1    maxReplicas: 3

これが実行されると、token-redエージェントトークンはmy-agent-pool-token-redKubernetesシークレットに格納される。オートスケーリング部分によって、オペレータはリソースの必要性に基づいて、少なくとも1つのエージェントポッドが最大3まで稼働していることを確認できる。この評価は、targetWorkspacesの下にリストされたワークスペースの負荷を監視することによって行われる。

オペレータは各Custom ResourceのTerraform Cloudクライアントを管理するようになった。この改善により、1つのオペレータデプロイメントを複数のTerraform Cloud組織で使用できるようになった。

このリリースでは、標準 Prometheus フォーマットのメトリクスも公開され、HTTPS ポート8443を介して標準の/metricsパスで利用可能になる。オペレータは、controller-runtimeによって提供されるすべてのメトリクスをエクスポートする。公開されるメトリクスの詳細なリストは、Kubebuilderのリリースドキュメントに記載されている。

このリリースでは、オペレータのウォッチスコープを特定のネームスペースにフォーカスするための新しい--namespaceオプションも追加された。新しい--sync-periodオプションはカスタムリソースと Terraform Cloud の同期を改善する。

Terraform Cloud Operator for Kubernetes はTerraform Cloud のユーザー向けに提供されている。バージョン1からバージョン2に移行するユーザーのために移行ガイドが用意されている。詳細はリリースのブログ記事かTerraformのディスカッションフォーラムで確認できる。Terraform Cloud Operator for KubernetesはGitHubで公開されている。

作者について

この記事に星をつける

おすすめ度
スタイル

BT