什么是 Kubernetes?

Kubernetes 是一款用于部署、管理和缩放容器的开放源代码业务流程软件

Kubernetes 的阐释

使用容器(通过其依赖项和配置打包的微服务)构建的现代应用程序越来越多。Kubernetes(简称 k8s)是一种开放源代码软件,用于大规模部署和管理这些容器。使用 Kubernetes 可以更快地生成、交付和缩放容器化应用。

通过这个简单的学习路径浏览 Kubernetes

Kubernetes 的工作原理

由于应用程序扩展到跨多个服务器部署的多个容器,因此对其进行操作变得更加复杂。为了管理这种复杂性,Kubernetes 提供了一个开放源代码 API,用于控制这些容器的运行方式和位置。

此外,通过 Kubernetes,还可根据虚拟机的可用计算资源和每个容器的资源要求,协调一组虚拟机并安排容器在这些虚拟机上运行。容器分组为 Pod,这是 Kubernetes 的基本操作单位,可以缩放到你想要的状态。

Kubernetes 有助于管理服务发现、整合负载均衡、跟踪资源分配、基于计算利用率进行缩放、检查单个资源的运行状况,以及通过自动重启或复制容器使应用自我修复。

详细了解 Kubernetes 基础知识

Kubernetes 的工作原理

为什么要使用 Kubernetes?

以可移植、可缩放和可扩展的方式实现基于容器的环境。

可移植性

将容器化工作负载从本地开发计算机无缝移动到生产环境。在本地基础结构以及公共云和混合云中,在不同环境中协调容器,保持一致性。

可伸缩性

定义复杂的容器化应用程序并将其全局部署在服务器群集甚至多个群集上 - 因为 Kubernetes 根据所需状态优化资源。通过内置的自动缩放器,Kubernetes 可轻松地水平缩放应用程序,同时自动监视和维护容器的正常运行。

扩展性

访问由构建 Kubernetes 社区的开发者和公司创建的广域且不断增长的扩展和插件集合。可通过符合条件的 Kubernetes 服务充分利用这些社区产品/服务并添加安全性、监视和管理等功能。

使用 Kubernetes 和 DevOps 实现大规模部署敏捷性

随着容器、环境以及与之协作的团队成倍增加,发布频率可能会随着开发和操作的复杂性而增加。通过在 Kubernetes 环境中使用 DevOps,可在增强了安全性的情况下大规模快速移动。

利用持续集成和持续部署 (CI/CD) 更快地交付代码

虽然容器提供了一致的应用程序打包格式,可以简化开发团队和运营团队之间的协作,但 CI/CD 可自动执行这些任务,只需几分钟即可实现从代码到容器以及到 Kubernetes 群集的迁移。

为 Kubernetes 设置 CI/CD

使用基础结构即代码有效地管理资源

基础结构即代码可提升跨团队计算资源的一致性和可见性,从而降低人为错误的可能性。这种做法与 Helm 提供的 Kubernetes 应用程序的声明性质密切相关。将这两者结合,可以以可靠、可跟踪和可重复的方式定义应用、资源和配置。

使用 Terraform 部署 Kubernetes 群集

通过持续监视加速反馈循环

由于容器不可变、发布较为频繁并且业务流程层比较抽象,因此使可观察性更具挑战性,甚至更为严重。若要缩短 bug 和修复之间的时间,则需要从容器运行状况监视到集中式日志记录的资源、群集、Kubernetes API、容器和代码的完整视图。该视图有助于防止资源瓶颈、跟踪恶意请求以及保持 Kubernetes 应用程序正常运行。

了解实时容器见解的工作原理

使用 DevOps 在速度和安全性之间保持平衡

将内置的实时可观察性作为 DevOps 工作流程的一部分。自动应用符合性检查和重新配置以保护生成和发布管道,以及 Kubernetes 应用程序。

查看实际操作中的持续安全性

使用 Kubernetes 的 DevOps 工作流示例

  1. 1在同一个 Kubernetes 群集中快速循环访问、测试和调试应用程序的不同部分。
  2. 2将代码合并到 GitHub 存储库并检查,以进行持续集成。然后,运行自动生成和测试作为持续交付的一部分。
  3. 3验证容器映像的源和完整性。图像保存在隔离区,直至通过扫描。
  4. 4使用 Terraform 等工具预配 Kubernetes 群集。Terraform 安装的 Helm 图表定义了所需的应用资源和配置的状态。
  5. 5实施策略以管理 Kubernetes 群集的部署。
  6. 6发布管道自动使用每个代码执行预定义的部署策略。
  7. 7将策略审核和自动修复添加到 CI/CD 管道。例如,只有发布管道才有权在 Kubernetes 环境中创建新的 Pod。
  8. 8启用应用遥测、容器运行状况监视和实时日志分析。
  9. 9通过见解解决问题并通知下一个冲刺(sprint) 计划。

通过 Azure 利用 Kubernetes 的优势

使用完全托管的 Microsoft Azure Kubernetes 服务 (AKS) 自动预配、升级、监视和缩放。使用无服务器 Kubernetes,获取更简单的开发到生产体验,以及企业级安全和治理。

详细了解 AKS

Kubernetes 属于社区

Kubernetes 是由为这个项目提供智慧、代码和努力的成千上万个个人和数百家公司而创建的,并且因此蓬勃发展。依靠他们充满激情的持续参与,成功生成了你的软件。

30,000
参与者
150,000
提交
GitHub 中的热门项目
GitHub 中

具有企业承诺的开放源代码软件

为了使 Kubernetes 更易于为组织所采用,也更便于开发者使用,Microsoft 在短短三年内将参与开放源代码项目的员工数量增加了两倍。作为第三大企业参与者,Microsoft 致力于将与不同客户合作获得的最新经验和最佳做法引入 Kubernetes 社区,使 Kubernetes 更加适用于企业、更便于企业使用。

Kubernetes on Azure 入门

创建 CI/CD 管道

准备应用程序

部署到 Kubernetes

查看应用程序

步骤 1(共 1 步)

创建 Azure DevOps 项目以开始使用 CI/CD 最佳做法。

步骤 1(共 1 步)

选择内置应用程序模板或自带代码。

然后,选择 Kubernetes 作为部署目标。

步骤 1(共 1 步)

创建新的 AKS 群集,或选择现有群集。

步骤 1(共 1 步)

群集准备就绪后,Azure DevOps 会将容器部署到 AKS 群集。单击外部终结点,查看应用程序。

应用程序启动后,请单击链接查看修改方法。

常见问题解答 - Kubernetes

  • Kubernetes 和 Docker 结合使用。

    Docker 为打包和分发容器化应用程序提供了一个开放标准。使用 Docker,可生成和运行容器,以及存储和共享容器映像。

    Kubernetes 协调和管理 Docker 创建的分布式容器化应用程序。它还提供了在一组计算机上部署和运行这些应用程序所需的基础结构。

  • 借助 Kubernetes 部署,可描述所需的应用程序部署状态。Kubernetes 计划程序确保实际状态与期望状态匹配,并在一个或多个 Pod 故障的情况下维持该状态。通过 Kubernetes 部署,还可持续升级应用程序,而不会出现故障时间。

    观看对此主题的完整讨论
  • 使用 DevOps 部署到 Kubernetes 通常涉及一个存储库,例如用于版本管理的 Git。存储库充当 CI/CD 行的开头。根据你使用的方法,存储库中的更改会触发集成、生成、交付和部署活动。

    详细了解 AKS 如何与 Azure DevOps 结合使用
  • 从将应用程序移动到云,到简化机器学习和 AI 中的挑战,Kubernetes 在各种方案中都非常有用。

    关键用例包括:

  • 请参阅使用 Azure 的数千名技术专业人员和合作伙伴创建的最佳做法体系结构模式

  • 按照此精选路径开始了解 Kubernetes。

资源

准备就绪 - 在 Azure 上免费试用 Kubernetes