crossplane/stack-awsCrossplane Stack for Amazon Web Services (AWS) 是 Crossplane 生态系统中的核心组件,旨在通过 Kubernetes API 原生管理 Amazon Web Services (AWS) 云资源。该镜像封装了 AWS 云服务的适配器逻辑,允许用户以声明式方式定义、部署和管理 AWS 资源(如 EC2 实例、S3 存储桶、RDS 数据库等),实现基础设施即代码 (IaC) 的 Kubernetes 原生体验。
其核心用途包括:
覆盖 AWS 核心服务的资源管理,包括但不限于:
kubectl 直接操作yaml# 应用 Provider 配置 apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: name: provider-aws spec: package: xpkg.upbound.io/crossplane-contrib/provider-aws:v0.41.0 # 版本需与 Crossplane 兼容
执行:
bashkubectl apply -f provider-aws.yaml
bashkubectl get providers # 输出示例: # NAME INSTALLED HEALTHY PACKAGE AGE # provider-aws True True xpkg.upbound.io/crossplane-contrib/provider-aws 5m
将 AWS 访问密钥(AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY)存储为 Kubernetes Secret:
yamlapiVersion: v1 kind: Secret metadata: name: aws-creds namespace: crossplane-system type: Opaque data: access-key-id: <base64-encoded-AWS_ACCESS_KEY_ID> secret-access-key: <base64-encoded-AWS_SECRET_ACCESS_KEY>
执行:
bashkubectl apply -f aws-creds.yaml
关联 Secret 与 AWS Stack,定义默认区域等参数:
yamlapiVersion: aws.crossplane.io/v1beta1 kind: ProviderConfig metadata: name: default spec: credentials: source: Secret secretRef: namespace: crossplane-system name: aws-creds key: access-key-id key: secret-access-key region: us-west-2 # 替换为目标 AWS 区域
执行:
bashkubectl apply -f provider-config.yaml
yamlapiVersion: s3.aws.crossplane.io/v1beta1 kind: Bucket metadata: name: crossplane-demo-bucket spec: forProvider: region: us-west-2 acl: private providerConfigRef: name: default # 关联上述 ProviderConfig
执行:
bashkubectl apply -f s3-bucket.yaml
bashkubectl get bucket crossplane-demo-bucket # 输出示例(状态为 READY 表示创建成功): # NAME READY SYNCED EXTERNAL-NAME AGE # crossplane-demo-bucket True True crossplane-demo-bucket 2m
Crossplane Stack for AWS 通常作为 Kubernetes 集群内的 Pod 运行,以下为容器镜像及部署配置参考:
xpkg.upbound.io/crossplane-contrib/provider-awsv0.41.0(需与 Crossplane 核心版本兼容,参考 官方版本矩阵)Crossplane 通过 Provider CRD 自动部署 Stack 容器,底层 Deployment 配置示例:
yamlapiVersion: apps/v1 kind: Deployment metadata: name: crossplane-provider-aws namespace: crossplane-system spec: replicas: 1 selector: matchLabels: pkg.crossplane.io/provider: provider-aws template: metadata: labels: pkg.crossplane.io/provider: provider-aws spec: containers: - name: provider image: xpkg.upbound.io/crossplane-contrib/provider-aws:v0.41.0 args: - --debug resources: limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi
| 参数 | 说明 | 示例值 |
|---|---|---|
spec.credentials | AWS 凭证来源(Secret 或 IRSA) | source: Secret |
spec.region | 默认 AWS 区域 | us-west-2 |
spec.assumeRole | 可选 IAM 角色 ARN | arn:aws:iam::123456789012:role/crossplane-role |
| 环境变量 | 说明 | 来源 |
|---|---|---|
AWS_ACCESS_KEY_ID | AWS 访问密钥 ID | 来自 Secret 挂载 |
AWS_SECRET_ACCESS_KEY | AWS 密钥 | 来自 Secret 挂载 |
AWS_REGION | AWS 区域 | ProviderConfig 定义 |
DEBUG | 启用调试日志(true/false) | true |



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务