什么是 Kubernetes?

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

Kubernetes 的阐释

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

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

Kubernetes 的工作原理

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

Kubernetes helps you orchestrate a cluster of virtual machines and schedule containers to run on those virtual machines based on their available compute resources and the resource requirements of each container. Containers are grouped into pods, the basic operational unit for Kubernetes, which scale to your desired state.

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

Watch more videos on Kubernetes basics

为什么要使用 Kubernetes?

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

可移植性

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

可伸缩性

Define complex containerized applications and deploy them globally across a cluster of servers—or even multiple clusters—as Kubernetes optimizes resources according to your desired state. When Kubernetes scales applications horizontally, it automatically monitors and maintains container health.

扩展性

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

不止 Kubernetes

To get the most from containerized applications, you need to build out a Kubernetes platform with end-to-end development, operations, and security control. You’ll deploy updates faster without compromising security or reliability and save time on infrastructure management. So, as you adopt Kubernetes, consider implementing:

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

As containers, environments, and the teams that work with them multiply, release frequency can increase—along with developmental and operational complexity. Move quickly at scale with enhanced security by employing DevOps in Kubernetes environments.

利用持续集成和持续部署 (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 是由为这个项目提供智慧、代码和努力的成千上万个个人和数百家公司而创建的,并且因此蓬勃发展。依靠他们充满激情的持续参与,成功生成了你的软件。

35,000
参与者
180,000
提交
热门项目
GitHub 中

具有企业承诺的开源软件

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

常见问题解答 - Kubernetes

  • Kubernetes 和 Docker 结合使用。

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

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

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

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

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

    关键用例包括:

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

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

资源

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