大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
云原生工具
云平台与 Kubernetes 生态提供大量 平台级工具:External Secrets Operator(ESO)、Cloud Provider IAM、CSI 驱动、Config Sync 等,用于把 云 API 能力 安全地注入集群与 CI。本课覆盖 /roadmaps/devops 的 cloud-specific-tools 与 secret-management 交叉节点,衔接 devops-cloud-essentials 的机密管理、kubernetes-essentials 的 Secret/ConfigMap,以及 terraform-essentials 创建的 IAM 角色。
学习目标
- 理解 External Secrets Operator(ESO) 如何把 Azure Key Vault / AWS Secrets Manager 同步为 K8s Secret
- 熟悉 Cloud Controller Manager、CSI、Workload Identity 等平台集成组件职责
- 为 CodeRoadMap 设计「密钥不落 Git、不进镜像」的多云方案
External Secrets Operator
ESO 通过 ExternalSecret CRD 从外部机密 store 拉取数据,生成原生 Secret:
# SecretStore — 指向 Azure Key Vault
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: azure-kv-store
namespace: coderoadmap
spec:
provider:
azurekv:
vaultUrl: "https://kv-coderoadmap-prod.vault.azure.net"
authType: WorkloadIdentity
serviceAccountRef:
name: backend-sa
# ExternalSecret — 同步 MySQL 连接串
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: backend-db-credentials
namespace: coderoadmap
spec:
refreshInterval: 1h
secretStoreRef:
name: azure-kv-store
kind: SecretStore
target:
name: backend-db-credentials
creationPolicy: Owner
data:
- secretKey: SPRING_DATASOURCE_URL
remoteRef:
key: mysql-connection-string
- secretKey: SPRING_DATASOURCE_PASSWORD
remoteRef:
key: mysql-password
# Deployment 引用 — 与普通 Secret 无异
envFrom:
- secretRef:
name: backend-db-credentials
其他云原生平台工具
| 工具 | 作用 |
|---|---|
| Cluster Autoscaler | 节点池按 Pending Pod 自动扩缩 |
| Metrics Server / HPA | 应用层水平伸缩 |
| CSI Secret Store Driver | 挂载机密为 Volume(替代 env 注入) |
| Crossplane | K8s 原生 CRD 管理云资源(与 Terraform 互补) |
| Argo CD / Flux | GitOps 持续交付平台配置 |
# HPA 示例 — CodeRoadMap backend
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: backend-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: coderoadmap-backend
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
设计原则
- 单一可信源:Key Vault / Secrets Manager 为权威,K8s Secret 为缓存
- 最小权限:Workload Identity / IRSA,禁止长期 Access Key
- 轮换自动化:ESO
refreshInterval+ 应用支持热重载或滚动重启 - 与 IaC 分工:Terraform 创建 Vault 与 IAM;ESO 负责运行时同步
练习
- 为 CodeRoadMap 画 ESO 数据流:Key Vault → ExternalSecret → Pod env
- 对比 CSI Secret Store 挂载与 ESO env 注入在「密钥轮换、应用改造量」上的差异
- 在 /roadmaps/devops 标注 secret-management 与 cloud-specific-tools,列出至少 3 个本课工具
小结
云原生平台工具把云的 IAM、机密、存储 API 以 K8s 原生方式接入集群。 ESO 是多云 Secret 同步的事实标准之一。下一课回到 操作系统发行版,理解 RHEL/BSD 家族对平台选型的影响。