预置条件
在开始使用本快速入门指南之前,请确保满足以下预置条件:
腾讯云凭证:在使用 Crossplane 之前,您需要拥有有效的腾讯云 SecretId 和 SecretKey。如果您还没有这些凭证,请前往 访问管理控制台 的 API 密钥管理页面申请安全凭证。
腾讯云账号:您需要拥有创建 VPC(私有网络)的权限。
kubectl:您需要能够正常访问您的 Kubernetes 集群,详情请参见 安装 kubectl。
Helm:您需要安装 Helm,并确保版本为 v3.2.0 或更高版本,详情请参见 安装 Helm。
创建集群
安装 kind
创建集群
在终端中执行以下命令,创建集群。
kind create cluster
稍等片刻,将创建默认集群
kind
。
(可选)查看集群状态
执行命令
kubectl cluster-info --context kind-kind
,查看当前集群的状态:❯ 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
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
配置 Provider 密钥
创建密钥
执行以下命令,通过 Kubernetes 配置文件,创建密钥:
cat <<EOF | kubectl apply -f -apiVersion: v1kind: Secretmetadata:name: tencentcloud-aksknamespace: 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: SecretsecretRef:name: tencentcloud-aksknamespace: crossplane-systemkey: 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-vpcnamespace: crossplane-systemspec:forProvider:cidrBlock: 10.1.0.0/16name: 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