使用外部Secrets Manager管理Kubernetes密钥
Jun 12, 2022 · 5 min read · External Secrets Operator AWS Secrets Manager Flux GitOps Kubernetes Git EKS CD Continuous Delivery ·背景 密钥的管理对于使用 GitOps 方式做持续发布是一个挑战,特别是当目标部署平台是 Kubernetes 的时候。 K8S 使用声明式配置管理最终状态,而K8S中的密钥仅仅是将密钥内容做了base64格式的编码。 在基于 Flux 的 GitOps 实战介绍了使用Bitnami Sealed Secrets加密密钥内容, 可以安全的将加密后的Kubernetes Manifest文件提交到Git代码仓库,由Sealed Secrets发现这些SealedSecret的密码, 并解密后动态的创建K8S原生Secrets对象。 SealedSecret 解决了如何在 Git 代码仓库中安全的保存密钥的痛点,但是该方式仍然需要系统管 …
Read More基于 Flux 的 GitOps 管理 Crossplane 部署及资源
背景 在Flux 部署实战的总结展望中有一个方向是如何将云上基础设施资源同Kubernetes内资源统一管理, 而Crossplane提供了一个高度可扩展的后端,使用声明式程序同时编排应用程序和基础设施,不用关心它们在哪里运行。 近期 AWS 官方博客宣布了 AWS Blueprints for Crossplane,为客户提供了在 Amazon EKS 上应用 Crossplane 的参考实现。 AWS Blueprints for Crossplane AWS Blueprints for Crossplane 是一个 Github 上开源项目,它提供了如下参考架构及功能, ✅ 使用Terraform 创建 Amazon EKS …
Read More在上篇介绍基于 CNCF 下的 GitOps 工具 FluxCD v2 实现了管理多账户的 Kubernetes 集群的共享组件,Secrets 使用的最佳实践, GitOps 流水线事件同 IM(Slack) 的集成,以及对 GitOps 代码的 CI 流程。 本文将围绕如何使用 Flux 的多租户管理最佳实践,打造基于 GitOps 工作流程的共享服务平台, 实现租户(业务/应用团队)可自助的持续部署。 一、基于 GitOps 的共享服务平台设定 Kubernetes 提供了命名空间作为一种机制将同一集群中的资源划分为相互隔离的组。 同一个集群中多租户多团队的应用管理将沿用 Kubernetes 内置的各种机制来为不同的租户、团 …
Read More在前文介绍了 GitOps 的概念,Kubernetes 上 GitOps 最佳实践以及对比了 CNCF 基金会下 云原生的 GitOps 工具(ArgoCD 和 Flux)。本篇将带你按照 Flux 的最佳实践在跨VPC跨账户的 Kubernetes 上实践 GitOps 的持续集成,轻松管理数十数百乃至更多的集群及部署在上面的应用。 0. 必备条件 假设业务对稳定性的需求,使用3个 Kubernetes 集群分别对应 DEV, STAGING 和 PRODUCT 环境。这些集群环境根据企业的需求 可能会分布在不同的云账户和VPC网络中。读者可根据实际企业情况创建一个或多个集群。本文以 Amazon EKS 为例,EKS集群的创建 …
Read More