HashiCorp Terraform Cloud Kubernetes 操作符提升可扩展性和性能

HashiCorp发布Terraform Cloud Operator for Kubernetes v2版本

HashiCorp近日发布了Terraform Cloud Operator for Kubernetes的v2版本。该Operator通过Kubernetes自定义资源(Custom Resource)管理Terraform Cloud工作区,新版本增加了对多个自定义资源的支持、改进的同步机制、新暴露的指标以及将监控范围限定到特定命名空间的功能。

主要功能和改进

  1. 多自定义资源支持

    • 新版本引入了多个自定义资源,每个资源都有独立的控制器,用于管理不同的Terraform Cloud资源。
    • 可以调整每个控制器的worker线程数量,默认每个控制器有一个worker,但可以增加以提高并发处理能力。
  2. 命名空间限定监控

    • 新增--namespace选项,允许将Operator的监控范围限定在特定的Kubernetes命名空间。
  3. 改进的同步机制

    • 新增--sync-period选项,优化了自定义资源与Terraform Cloud之间的同步。
  4. 暴露Prometheus指标

    • 每个控制器的标准Prometheus格式指标现在可以通过HTTPS端口8443/metrics路径获取。
    • 指标列表可在Kubebuilder文档中查看。
  5. Terraform Cloud客户端管理

    • 每个自定义资源现在都有自己的Terraform Cloud客户端,允许单个Operator部署跨多个Terraform Cloud组织使用。

使用场景

  • 基础设施管理

    • 通过Kubernetes控制平面直接管理Kubernetes内外的基础设施。
    • 平台团队可以为应用开发人员提供Kubernetes原生工作流,同时确保使用经过批准的Terraform模块。
  • 资源管理

    • 通过AgentPool管理Terraform Cloud agent池和agent令牌。
    • 通过Module实现API驱动的运行工作流。
    • 通过Workspace管理Terraform Cloud工作区。

示例代码

以下示例创建了一个名为agent-pool-development的agent池,并生成了一个名为token-red的令牌:

---
apiVersion: app.terraform.io/v1alpha2
kind: AgentPool
metadata:
  name: this
spec:
  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

自动扩展功能

  • autoscaling部分允许Operator根据工作区的负载动态调整agent pod的数量,最少1个,最多3个。

其他信息

阅读 24
0 条评论