We couldn't find a match for given <KEYWORD>, please try again.

什么是 Kubernetes?

Kubernetes 通常缩写为“K8s”,可用于编排容器化应用以在主机集群上运行。K8s 系统使用本地部署基础架构或公有云平台,自动部署和管理云原生应用。它可以在 Kubernetes 集群中分配应用工作负载,并自动满足容器动态网络连接需求。Kubernetes 还可为正在运行的容器分配存储和持久卷,进行自动扩展,并持续工作以保持应用的预期状态,提供恢复能力。

了解企业如何使用 Kubernetes 大规模构建、部署和运行现代应用。

5 分钟了解 Kubernetes

Kubernetes 使用现状 2021

Kubernetes 的功能特性

Kubernetes 具有许多功能特性,有助于跨多台主机编排容器,自动管理 K8s 集群,并通过更好地利用基础架构最大限度地提高资源使用率。重要功能特性包括:

  • 自动扩展。根据使用情况自动扩展或缩减容器化应用及其资源
  • 生命周期管理。自动执行部署和更新,还能够:
    • 回滚为早期版本
    • 暂停并继续部署
  • 声明式模型。声明预期状态,K8s 将在后台运行以保持该状态并从任何故障中恢复
  • 恢复能力和自我修复。自动安置、自动重启、自动复制和自动扩展可实现应用自我修复
  • 持久性存储。能够动态挂载和添加存储
  • 负载均衡。Kubernetes 支持各种内部和外部负载均衡选项,以满足不同需求
  • DevSecOps 支持DevSecOps 是一种高级安全保护方法,可跨云简化和自动化容器运维,在整个容器生命周期内集成安全性,使团队能够更快地向客户交付高质量的安全软件。将 DevSecOps 实践与 Kubernetes 相结合,可提升开发人员的工作效率。

Kubernetes 体系架构及其工作原理

容器以可移动且易于部署的形式封装应用。Kubernetes 体系架构是为运行容器化应用而设计的。一个 Kubernetes 集群至少包含一个控制平面和至少一个 Worker 节点(通常是物理或虚拟服务器)。控制平面有两项主要任务。它通过 API 服务器公开 Kubernetes API,并管理组成集群的节点。控制平面可制定有关集群管理的决策,并检测和响应集群事件。

应用在 Kubernetes 中运行的最小执行单元是 Kubernetes Pod,它由一个或多个容器组成。Kubernetes Pod 在 Worker 节点上运行。

其他 Kubernetes 术语

了解主要 K8s 组件的名称和功能非常重要,它们可作为控制平面的一部分,也可以在 Kubernetes 节点上执行。

Kubernetes Terminology

控制平面有四个主要组件,用于控制通信、管理节点并跟踪 Kubernetes 集群的状态。

  • Kube-apiserver。顾名思义,kube-apiserver 会公开 Kubernetes API。
  • etcd。一个键值存储,用于存储与 Kubernetes 集群相关的所有数据。
  • Kube-scheduler。监控未分配节点的新 Kubernetes Pod,并根据资源、策略和“关联性”规范将它们分配给节点执行。
  • kube-controller-manager。控制平面的所有控制器功能都编译为一个二进制文件:kube-controller-manager。

K8s 节点有三个主要组件:

  • Kubelet。确保必要容器在 Kubernetes Pod 中运行的代理。
  • Kube-proxy。在集群中的每个节点上运行的网络代理,用于维护网络规则并允许通信。
  • 容器运行时。负责运行容器的软件。Kubernetes 支持符合 Kubernetes CRI(容器运行时接口)的任何运行时。

需要注意的其他术语包括:

  • Kubernetes 服务Kubernetes 服务对一组执行相同功能的 Kubernetes Pod 实施逻辑抽象化处理。系统为 Kubernetes 服务分配了唯一地址,即使 Pod 实例发生变化,这些地址也保持不变。
  • 控制器。控制器可确保 Kubernetes 集群的实际运行状态与预期状态尽可能接近。
  • Operator。Kubernetes Operator 允许您为应用封装特定领域的知识,类似于流程手册。Operator 可自动执行特定应用的任务,支持您更轻松地在 K8s 上部署和管理应用。

Kubernetes 的优势

Kubernetes 平台之所以受欢迎,是因为它具有多项重要优势:

  • 移动性。容器可跨一系列环境(从虚拟环境到裸机)移动。所有主要公有云都支持 Kubernetes,因此,您可以跨许多不同的环境在 K8s 上运行容器化应用。
  • 集成和可延展性。Kubernetes 可进行延展,以便与您已经在使用的解决方案(包括日志记录、监控和警示服务)配合使用。Kubernetes 社区正致力于开发各种开源解决方案来补充 Kubernetes,从而创建一个内容丰富且快速发展的生态系统。
  • 成本效益。Kubernetes 固有的资源优化、自动扩展以及在工作负载提供最大价值的位置运行的灵活性,意味着您可以控制 IT 支出。
  • 可扩展性。云原生应用可横向扩展。Kubernetes 使用“自动扩展”,根据需求启动其他容器实例并自动横向扩展。
  • 基于 API。REST API 是 Kubernetes 的基本结构。对于 Kubernetes 环境中的一切,均可通过编程来控制。
  • 简化 CI/CDCI/CD 是一种 DevOps 实践,可自动构建、测试应用并将其部署到生产环境中。企业正在集成 Kubernetes 和 CI/CD,以创建可动态适应负载要求的可扩展 CI/CD 流水线。

什么是容器编排?

容器编排可自动执行运行容器化工作负载和服务所需的大部分任务,包括对 Kubernetes 容器生命周期至关重要的操作:置备、部署、扩展、网络连接和负载均衡。

Kubernetes 与 Docker

Docker 是用于创建容器化应用的软件平台。K8s 可将通过 Docker 或其他工具创建的容器化云原生应用的运行过程自动化。公司经常会将 Docker 和 Kubernetes 结合使用。

相关解决方案和产品

Tanzu Kubernetes Grid

企业就绪型 Kubernetes 管理

Tanzu Community Edition

几分钟内即可在本地工作站或云中免费启动并运行 VMware Tanzu

Tanzu Application Platform

在 Kubernetes 平台上构建、部署和管理应用