你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
作为一个云原生构造,Kubernetes 需要云原生方法来进行部署和操作。 Azure 和 Kubernetes 是开放且可扩展的平台,具有丰富且架构良好的 API,提供了一定的机会和能力,能够全面实现自动化。 依靠自动化和常规 DevOps 最佳做法来规划 DevOps和高度自动化的方法。
设计注意事项
下面是 AKS 平台自动化和 DevOps 的一些设计注意事项:
确定工程和自动化方法时,请考虑 Azure 服务限制 以及持续集成和持续交付(CI/CD)环境。 有关另一个示例,请参阅 GitHub 使用限制。
保护对开发、测试、Q&A 和生产环境的访问时,请从 CI/CD 角度考虑安全选项。 部署会自动进行,因此相应地映射访问控制。
请考虑将前缀和后缀与定义完善的约定一起使用,以唯一标识每个已部署的资源。 这些命名约定可避免在彼此相邻部署解决方案时发生冲突,并提高团队的整体敏捷性和吞吐量。
清点工作流,以支持在正常和灾难恢复计划(DRP)制度中的工程、更新和部署解决方案。 考虑根据这些工作流映射管道,最大程度地提高熟悉性和工作效率。
需要考虑的一些示例方案和管道包括:
- 部署、修补和升级群集
- 部署和升级应用程序
- 部署和维护加载项
- 对灾难恢复进行故障转移
- 蓝绿部署
- 维护金丝雀环境
请考虑使用 服务网格 向工作负荷添加更多安全性、加密和日志功能。
考虑使用其他资源(例如订阅、标记和标签)来支持您的 DevOps 体验,从而更好地跟踪和追溯部署及相关工件。
考虑 牛与宠物 范式转变的影响。 预期 Pod 和 Kubernetes 的其他方面是暂时的,并相应地调整自动化和管道基础结构。 不要依赖 IP 地址或其他资源是固定或永久的。
设计建议
下面是 AKS 平台自动化和 DevOps 的一些设计建议:
依赖管道或操作来:
- 在整个团队中最大程度地落实已应用的做法。
- 消除重复工作带来的很多负担。
- 提供关于整体质量和敏捷性的可预测性和见解。
通过使用基于触发器的管道和计划的管道,尽早且经常进行部署。 基于触发器的管道可确保更改经过适当的验证,而定时管道管理变化环境中的行为。
将基础结构部署与应用程序部署分开。 核心基础结构更改少于应用程序。 将每种部署类型视为单独的流和管道。
使用 云原生 选项进行部署。 使用基础设施即代码部署基础设施(包括控制平面),并使用Helm和Kubernetes 中的运维模式来部署和维护 Kubernetes 本机组件。
使用 GitOps 部署和维护应用程序。 GitOps 使用 Git 存储库作为单一事实来源,避免配置偏移,并在回滚和相关过程中提高工作效率和可靠性。
将 Pod 托管标识和机密存储 CSI 驱动程序的 Azure Key Vault 提供程序一起使用,来保护机密、证书和连接字符串。
通过避免硬编码的配置项和设置,努力实现最大化的部署并发性。
依赖于基础设施和应用程序部署的公认惯例。 将 允许控制器 与 用于 Kubernetes 的 Azure Policy 加载项 结合使用,以验证并强制实施其他定义的策略之间的约定。
在以下方面始终如一地采用左移方法:
- 通过在流程早期添加漏洞扫描工具来提高安全性,比如容器扫描。
- 策略,通过使用策略作为代码,并通过允许控制器以云原生方式强制实施策略。
将每个故障、错误或中断视为自动化和提高整体解决方案质量的机会。 将此方法集成到左移方法和站点可靠性工程 (SRE) 框架中。