你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

AKS 平台自动化和 DevOps

作为一个云原生构造,Kubernetes 需要云原生方法来进行部署和操作。 Azure 和 Kubernetes 是开放且可扩展的平台,具有丰富且架构良好的 API,提供了一定的机会和能力,能够全面实现自动化。 依靠自动化和常规 DevOps 最佳做法来规划 DevOps和高度自动化的方法。

设计注意事项

下面是 AKS 平台自动化和 DevOps 的一些设计注意事项:

  • 确定工程和自动化方法时,请考虑 Azure 服务限制 以及持续集成和持续交付(CI/CD)环境。 有关另一个示例,请参阅 GitHub 使用限制

  • 保护对开发、测试、Q&A 和生产环境的访问时,请从 CI/CD 角度考虑安全选项。 部署会自动进行,因此相应地映射访问控制。

  • 请考虑将前缀和后缀与定义完善的约定一起使用,以唯一标识每个已部署的资源。 这些命名约定可避免在彼此相邻部署解决方案时发生冲突,并提高团队的整体敏捷性和吞吐量。

  • 清点工作流,以支持在正常和灾难恢复计划(DRP)制度中的工程、更新和部署解决方案。 考虑根据这些工作流映射管道,最大程度地提高熟悉性和工作效率。

    需要考虑的一些示例方案和管道包括:

    • 部署、修补和升级群集
    • 部署和升级应用程序
    • 部署和维护加载项
    • 对灾难恢复进行故障转移
    • 蓝绿部署
    • 维护金丝雀环境
  • 请考虑使用 服务网格 向工作负荷添加更多安全性、加密和日志功能。

  • 考虑使用其他资源(例如订阅、标记和标签)来支持您的 DevOps 体验,从而更好地跟踪和追溯部署及相关工件。

  • 考虑 牛与宠物 范式转变的影响。 预期 Pod 和 Kubernetes 的其他方面是暂时的,并相应地调整自动化和管道基础结构。 不要依赖 IP 地址或其他资源是固定或永久的。

设计建议

下面是 AKS 平台自动化和 DevOps 的一些设计建议:

  • 依赖管道或操作来:

    • 在整个团队中最大程度地落实已应用的做法。
    • 消除重复工作带来的很多负担。
    • 提供关于整体质量和敏捷性的可预测性和见解。
  • 通过使用基于触发器的管道和计划的管道,尽早且经常进行部署。 基于触发器的管道可确保更改经过适当的验证,而定时管道管理变化环境中的行为。

  • 将基础结构部署与应用程序部署分开。 核心基础结构更改少于应用程序。 将每种部署类型视为单独的流和管道。

  • 使用 云原生 选项进行部署。 使用基础设施即代码部署基础设施(包括控制平面),并使用HelmKubernetes 中的运维模式来部署和维护 Kubernetes 本机组件。

  • 使用 GitOps 部署和维护应用程序。 GitOps 使用 Git 存储库作为单一事实来源,避免配置偏移,并在回滚和相关过程中提高工作效率和可靠性。

  • Pod 托管标识机密存储 CSI 驱动程序的 Azure Key Vault 提供程序一起使用,来保护机密、证书和连接字符串。

  • 通过避免硬编码的配置项和设置,努力实现最大化的部署并发性。

  • 依赖于基础设施和应用程序部署的公认惯例。 将 允许控制器用于 Kubernetes 的 Azure Policy 加载项 结合使用,以验证并强制实施其他定义的策略之间的约定。

  • 在以下方面始终如一地采用左移方法:

    • 通过在流程早期添加漏洞扫描工具来提高安全性,比如容器扫描。
    • 策略,通过使用策略作为代码,并通过允许控制器以云原生方式强制实施策略。
  • 将每个故障、错误或中断视为自动化和提高整体解决方案质量的机会。 将此方法集成到左移方法和站点可靠性工程 (SRE) 框架中。