首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
技术百科首页 >云资源自动化 for Crossplane

云资源自动化 for Crossplane

修改于 2024-08-20 09:42:55
226
概述

云资源自动化 for Crossplane 是一款基于当前业界流行的多云管理开源工具 Crossplane 开发的腾讯云产品。作为构建于 Kubernetes 之上的扩展,通过与腾讯云的云资源服务相结合,用户能够以 Kubernetes 方式使用基础设施即代码原则管理云上基础设施,轻松实施跨云平台的 DevOps多云部署等场景。

云资源自动化 for Crossplane 的产品优势是什么?

覆盖较多腾讯云产品

云资源自动化 for Crossplane 已经提供超过260个 CRD,覆盖计算、存储、网络、容器服务负载均衡中间件数据库等腾讯云产品。借助 Crossplane,您可以快速管理业务所依赖的腾讯云基础设施。

声明式 API

Crossplane 使用 Kubernetes 风格的声明式 API,允许开发人员和运维人员使用熟悉的工具和工作流程来管理腾讯云基础设施,可以无缝接入当前业务已有的 DevOps 流程,不会对业务造成迁移负担。

云原生生态

Crossplane 作为 CNCF 沙箱项目,它同时遵循了 CNCF 的最佳实践和标准。使用者可以结合 Helm 来部署腾讯云资源;可以结合 OPA 设置准入规则,实施基于策略的腾讯云资源管理;可以与 Prometheus 和 Grafana 集成,以提供对腾讯云资源的实时监控和报警功能。

实时状态同步

Crossplane 通过定义 Kubernetes 控制器,监控管理的腾讯云资源状态并提供状态同步。如果有人修改或删除了 Kubernetes 之外的资源,Crossplane 会撤销更改或重新创建已删除的腾讯云资源,以确保资源的一致性和可靠性。

完全免费(不含云基础资源)

起源于开源技术,您只需要为所创建的云基础资源付费,本产品不会产生云资源的额外使用成本或者影响云资源的价格。

云资源自动化 for Crossplane 的应用场景有哪些?

多云管理

当企业希望减少对单一云厂商的依赖,充分利用每个云厂商的相对优势,优化云的使用和成本时,云资源自动化 for Crossplane 为企业多云部署提供基础。

多种集成方式

云资源自动化 for Crossplane 作为控制平面,提供 CLI/API/UI 等多种使用方式,以便使用者根据自己的业务需求选择适合的方式将其集成到已有的 Devops 流程。

应用程序与基础设施一体化部署

云资源自动化 for Crossplane 让应用程序以及依赖基础设施的部署,都可以通过 Kubernetes Yaml 进行描述,通过 Kubectl 进行部署,数据的共享也更加的安全和高效。

云资源自动化 for Crossplane 怎么开启日志?

腾讯云 Crossplane Provider 基于 Terraform Provider 开发。您可以通过以下配置来获取 Terraform 日志。

配置

您可以通过 ControllerConfig 来设置开启对应的日志。

1. 在 Provider 配置 spec 中添加 controllerConfigRef,示例配置如下:

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: provider-tencentcloud
spec:
  package: xpkg.upbound.io/crossplane-contrib/provider-tencentcloud:v0.7.1
  controllerConfigRef:
    name: debug-config

2. 设置 ControllerConfig,示例配置如下:

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: pkg.crossplane.io/v1alpha1
kind: ControllerConfig
metadata:
  name: debug-config
spec:
  args:
    - --debug
  env:
    - name: TF_LOG
      value: TRACE
    - name: TF_LOG_PATH
      value: /tmp/terraform-trace.log

TF_LOG_PATH 用于设置日志路径。配置生效后,将在 tmp 目录下,生成对应的日志。

查看日志

由于 Crossplane 使用的是 Kubernetes 容器,日志将存放在运行 Provider 的 pod 上。

执行如下命令,获取当前集群下的 pod:

代码语言:javascript
代码运行次数:0
运行
复制
kubectl get pods -n crossplane-system

输出如下:

代码语言:javascript
代码运行次数:0
运行
复制
NAME                                                 READY   STATUS    RESTARTS        AGE
crossplane-6494656b8b-qr62x                          1/1     Running   1 (3h35m ago)   6d4h
crossplane-rbac-manager-8458557cdd-lfn8q             1/1     Running   1 (3d ago)      6d4h
provider-tencentcloud-13db077a7bf0-66567f785-clb7g   1/1     Running   0               43m

找到以 “provider-tencentcloud-” 开头且状态为 “Running” 的 pod。然后,您可以使用 kubectl exec 命令进入容器中:

代码语言:javascript
代码运行次数:0
运行
复制
kubectl exec -it provider-tencentcloud-13db077a7bf0-66567f785-clb7g /bin/bash -n crossplane-system

使用 vi 命令查看对应的日志:

代码语言:javascript
代码运行次数:0
运行
复制
kubectl exec -it provider-tencentcloud-13db077a7bf0-66567f785-clb7g /bin/bash -n crossplane-system
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.bash-5.1$ vi /tmp/terraform-trace.log

云资源自动化 for Crossplane 怎么导入资源?

如果您在使用 Crossplane 管理云资源之前已经通过腾讯云控制台创建了资源,您可以按照以下步骤将它们作为受管资源导入,并让 Crossplane 对其进行管理。受管资源的 managementPolicies 字段可以将外部资源导入 crossplane。

Crossplane 支持 手动 或 自动 导入资源。

手动导入资源

要导入 Provider 中的现有外部资源,请创建一个带有 "crossplane.io/external-name" 注解的新托管资源,并指定资源名称或 ID。

以导入 VPC 实例为例:

代码语言:javascript
代码运行次数:0
运行
复制
apiVersion: vpc.tencentcloud.crossplane.io/v1alpha1
kind: VPC
metadata:
  name: example-import-vpc
  annotations:
    crossplane.io/external-name: "vpc-nntzt8p1"
spec:
  forProvider:
    cidrBlock: "10.1.0.0/16"
    name: "crossplane-import"

其中:

metadata.name 字段为托管资源的名称,由用户指定。

metadata.annotations 中 crossplane.io/external-name 的值设置为待导入资源的实例 ID。

如果托管资源存在必选字段,需在 spec.forProvider 中指定;否则将 forProvider 设置为 {}。以上述配置为例,cidrBlock 和 name 为 VPC 资源的必选值,导入时,需填入该资源的实际值。

使用 kubectl apply -f 命令执行上述配置,示例如下:

代码语言:javascript
代码运行次数:0
运行
复制
kubectl apply -f import_vpc.yml

自动导入资源

与手动导入类似,请参见 自动 导入方式进行操作。

相关文章
  • Crossplane-云基础架构管理平台
    606
  • Crossplane 很棒,但关键基础设施呢?
    383
  • 弥合基础设施即代码和GitOps的鸿沟
    169
  • Crossplane - 比 Terraform 更先进的云基础架构管理平台?
    4.4K
  • [译]Crossplane vs Terraform
    1.9K
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券