Kubernetes 的阐释
使用容器(通过其依赖项和配置打包的微服务)构建的新式应用程序越来越多。Kubernetes(发音为“koo-ber-net-ees”)是用于大规模部署和管理这些容器的开源软件 - 在希腊语中,这个词还有“舵手”或“飞行员”的意思。使用 Kubernetes(有时被称为“k8s”或“k-eights”)可更快地构建、交付和缩放容器化应用。
Kubernetes 的工作原理
由于应用程序扩展到跨多个服务器部署的多个容器,因此对其进行操作变得更加复杂。为了管理这种复杂性,Kubernetes 提供了一个开放源代码 API,用于控制这些容器的运行方式和位置。
Kubernetes 会根据虚拟机的可用计算资源和每个容器的资源要求,协调一组虚拟机并安排容器在这些虚拟机上运行。容器分组为 Pod(Kubernetes 的基本操作单位),这些 Pod 可缩放到所需的状态。
Kubernetes 还会自动管理服务发现、合并负载均衡、跟踪资源分配并根据计算利用率进行缩放。此外,它还会检查单个资源的运行状态,并通过自动重启或复制容器使应用自行修复。
为什么要使用 Kubernetes?
启动和运行容器化应用可能会很复杂,因为它们常常涉及到跨不同的计算机部署的多个容器。Kubernetes 提供了计划和部署这些容器的方式,还根据你的所需状态对其进行缩放并管理它们的生命周期。使用 Kubernetes 以一种可移植、可伸缩且可扩展的方式实现基于容器的应用程序。
使工作负载可移植
容器应用与其基础结构是分开的,因此在 Kubernetes 上运行时可移植。在本地、混合和多云环境中将其从本地计算机移动到生产环境 - 同时都保证不同环境之间的一致性。
轻松缩放容器
使用 Kubernetes 定义复杂的容器化应用程序,并跨服务器群集(甚至多个群集)进行部署。Kubernetes 根据你所需的状态扩缩应用程序时,会自动监视和维护容器运行状况。
构建扩展性更强的应用
一个由开发人员和公司构成的大型开源社区会主动构建可向 Kubernetes 添加安全性、监视和管理等功能的扩展和插件。此外,获得认证的 Kubernetes 合规性计划要求每个 Kubernetes 版本都支持可简化这些社区产品/服务的使用的 API。
在完整的 Kubernetes 平台上构建
虽然 Kubernetes 本身具有可移植性、可伸缩性和可扩展性,而通过添加端到端开发、操作和安全控制,你不用损害安全性和可靠性就可更快地部署更新,还能在基础结构管理方面节省时间。采用 Kubernetes 时,还请考虑实现:
-
基础结构自动化或无服务器 Kubernetes 可以消除日常任务,如预配、修补和升级。
-
用于容器化应用开发以及持续集成和持续部署 (CI/CD) 工作流程的工具。
-
管理安全、治理、标识和访问的服务。
通过 DevOps 做法来使用 Kubernetes
随着 Kubernetes 应用增长(添加容器、环境和团队),发布频率会随着开发和操作复杂性而增加。通过在 Kubernetes 环境中采用 DevOps 实践,可在安全性增强的情况下大规模地快速迁移。
通过 CI/CD 更快地交付代码
虽然容器提供了一致的应用程序打包格式,可以简化开发团队和运营团队之间的协作,但 CI/CD 可自动执行这些任务,只需几分钟即可实现从代码到容器以及到 Kubernetes 群集的迁移。
使用基础结构即代码有效地管理资源
基础结构即代码实现了跨团队计算资源的一致性和可见性,从而降低人为错误的可能性。这种做法与 Helm 提供的 Kubernetes 应用程序的声明性质相关。将这两者结合,可以以可靠、可跟踪和可重复的方式定义应用、资源和配置。
通过持续监视加速反馈循环
缩短出现 bug 和修复它之间所用的时间,还可从容器运行状况监视到集中式日志记录,全面查看资源、群集、Kubernetes API、容器和代码。该视图有助于防止资源瓶颈、跟踪恶意请求以及保持 Kubernetes 应用程序正常运行。
使用 DevOps 在速度和安全性之间保持平衡
使 DevOps 工作流可实时观察而不降低速度。自动应用符合性检查和重新配置以保护生成和发布管道,以及 Kubernetes 应用程序。
使用 Kubernetes 的 DevOps 工作流示例
- 在同一个 Kubernetes 群集中快速循环访问、测试和调试应用程序的不同部分。
- 将代码合并到 GitHub 存储库并检查,以进行持续集成。然后,运行自动生成和测试作为持续交付的一部分。
- 验证容器映像的源和完整性。图像保存在隔离区,直至通过扫描。
- 使用 Terraform 等工具预配 Kubernetes 群集。Terraform 安装的 Helm 图表定义了所需的应用资源和配置的状态。
- 实施策略以管理 Kubernetes 群集的部署。
- 发布管道自动使用每个代码执行预定义的部署策略。
- 将策略审核和自动修复添加到 CI/CD 管道。例如,只有发布管道才有权在 Kubernetes 环境中创建新的 Pod。
- 启用应用遥测、容器运行状况监视和实时日志分析。
- 通过见解解决问题并通知下一个冲刺(sprint) 计划。
通过 Azure 利用 Kubernetes 的优势
使用完全托管的 Microsoft Azure Kubernetes 服务 (AKS) 自动预配、升级、监视和缩放。使用无服务器 Kubernetes,获取更简单的开发到生产体验,以及企业级安全和治理。
从 Kubernetes 社区汲取灵感和创新
Kubernetes 是由为使用该服务的用户提供智慧、代码和持续支持的成千上万个个人和数百家组织而创建的,并且因此蓬勃发展。依靠他们充满激情的参与,成功构建了你的软件。
35000
参与者
180000
提交
热门项目
GitHub 中
Microsoft 对 Kubernetes 的贡献
将开放源代码的智慧带入企业
为了使 Kubernetes 更易于为组织所采用,也更便于开发者使用,Microsoft 在短短三年内将参与开放源代码项目的员工数量增加了两倍。作为第三大企业参与者,Microsoft 致力于将与不同客户合作获得的最新经验和最佳做法引入 Kubernetes 社区,使 Kubernetes 更加适用于企业、更便于企业使用。
常见问题解答 - Kubernetes
-
按照 此精心策划的旅程 开始学习 Kubernetes。
-
从将应用程序移动到云,到简化机器学习和 AI 中的挑战,Kubernetes 在各种方案中都非常有用。
关键用例包括:
-
-
借助 Kubernetes 部署,可描述所需的应用程序部署状态。Kubernetes 计划程序确保实际状态与期望状态匹配,并在一个或多个 Pod 故障的情况下维持该状态。通过 Kubernetes 部署,还可持续升级应用程序,而不会出现故障时间。
-
使用 DevOps 部署到 Kubernetes 通常涉及一个存储库,例如用于版本管理的 Git。存储库充当 CI/CD 行的开头。根据你使用的方法,存储库中的更改会触发集成、生成、交付和部署活动。
-
Kubernetes 和 Docker 结合使用。
Docker 为打包和分发容器化应用程序提供了一个开放标准。使用 Docker,可生成和运行容器,以及存储和共享容器映像。
Kubernetes 协调和管理 Docker 创建的分布式容器化应用程序。它还提供了在一组计算机上部署和运行这些应用程序所需的基础结构。
资源
有关 Kubernetes 的详细信息
了解 AKS
观看 AKS 视频 和点播 Azure 网络研讨会 ,了解演示、热门功能和技术会话。
请参阅适用于 Kubernetes 的 Azure 快速入门模板
通过 GitHub、 KubeCon 或你附近的 Kubernetes Meetup 与其他 AKS 用户沟通。