一、预置条件
在开始使用本快速入门指南之前,请确保满足以下预置条件:
·腾讯云凭证:在使用 Crossplane 之前,你需要拥有有效的腾讯云 SecretId 和 SecretKey。如果你还没有这些凭证,请前往 访问管理控制台 的 API 密钥管理页面申请安全凭证。
·腾讯云账号:你需要拥有创建 VPC(私有网络)的权限。
·kubectl:你需要能够正常访问你的 Kubernetes 集群,详情请参见 安装 kubectl。
·Helm:你需要安装 Helm,并确保版本为 v3.2.0 或更高版本,详情请参见 安装 Helm。
二、创建集群
集群创建有多种方式,这里介绍通过 kind 快速创建一个本地 Kubernetes 集群。
更多方式,请参见 结合 minikube 使用 CrossPlane。
三、安装 kind
请参见 kind 产品文档 的 Installation 步骤完成安装。
kind 创建集群需要依赖 docker,请确保已经提前安装。
四、创建集群
在终端中执行以下命令,创建集群。
kind create cluster
稍等片刻,将创建默认集群 kind。
五、(可选)查看集群状态
执行命令kubectl cluster-info –context kind-kind,查看当前集群的状态:
如果你的环境存在多个 Kubernetes 集群,请参见 在多个集群上下文中切换 进行管理。
❯ kubectl cluster-info –context kind-kindKubernetes control plane is running at https://127.0.0.1:60425CoreDNS is running at https://127.0.0.1:60425/api/v1/namespaces/kube-system/services/kube-dns:dns/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
六、安装 Crossplane
执行下列命令,将 Crossplane 安装到当前集群中。
helm repo add crossplane-stable https://charts.crossplane.io/stable && \\helm repo update && \\helm install crossplane \\–namespace crossplane-system \\–create-namespace crossplane-stable/crossplane
七、验证 Crossplane 安装
执行以下命令,验证 Crossplane 是否成功安装。
kubectl get pods -n crossplane-system
安装成功后,你可以看到 crossplane 和 crossplane-rbac-manager 两个正在运行的 pod。
NAME READY STATUS RESTARTS AGEcrossplane-6494656b8b-qr62x 1/1 Running 0 30scrossplane-rbac-manager-8458557cdd-lfn8q 1/1 Running 0 30s
八、安装 TencentCloud Provider
执行以下命令,将腾讯云 Provider(如 v0.8.1,点击获取 更多版本)的配置信息部署到集群中:
cat <<EOF | kubectl apply -f –
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata: name: provider-tencentcloud
spec: package: xpkg.upbound.io/crossplane-contrib/provider-tencentcloud:v0.8.1
EOF
(可选)此外,也可以将上述配置信息写入 provider.yml 文件中,然后执行以下命令:
kubectl apply -f provider.yml
九、验证 Provider 安装
执行以下命令,验证 Provider 是否成功安装。
kubectl get providers
返回信息如下所示(版本号可能存在差异),则表示 Provider 安装成功。
NAME INSTALLED HEALTHY PACKAGE AGEprovider-tencentcloud True True xpkg.upbound.io/crossplane-contrib/provider-tencentcloud:v0.8.1 22h
十、创建密钥
执行以下命令,通过 Kubernetes 配置文件,创建密钥:
cat <<EOF | kubectl apply -f -apiVersion: v1kind: Secretmetadata: name: tencentcloud-aksk namespace: crossplane-systemtype: OpaquestringData: credentials: | { "secret_id": "********************************", "secret_key": "********************************", "region": "ap_xxxxxx" }EOF
输出信息如下:
secret/tencentcloud-aksk created
十一、为 Provider 配置密钥
执行以下命令,通过 Kubernetes 配置文件,配置 Provider 密钥:
cat <<EOF | kubectl apply -f -apiVersion: tencentcloud.crossplane.io/v1alpha1kind: ProviderConfigmetadata: name: defaultspec: credentials: source: Secret secretRef: name: tencentcloud-aksk namespace: crossplane-system key: credentialsEOF
输出信息如下:
providerconfig.tencentcloud.crossplane.io/default created
十二、使用 Crossplane 创建腾讯云 VPC 资源
执行以下命令,通过 Kubernetes 配置文件,创建 VPC:
cat <<EOF | kubectl apply -f -apiVersion: vpc.tencentcloud.crossplane.io/v1alpha1kind: VPCmetadata: name: resource-vpc namespace: crossplane-systemspec: forProvider: cidrBlock: 10.1.0.0/16 name: crossplane-test-vpcEOF
输出信息如下:
vpc.vpc.tencentcloud.crossplane.io/resource-vpc created
十三、验证创建的资源
执行命令kubectl get vpc,输出如下信息代表 VPC 创建成功:
❯ kubectl get vpcNAME READY SYNCED EXTERNAL-NAME AGEresource-vpc True True vpc-dhckvylj 13s
此时,你可以在 腾讯云控制台 查看创建的 VPC 资源。