全球数据弹性领域领导者 #1
Veeam 为受 CrowdStrike 内容更新影响的客户提供指导

什么是 Kubernetes 集群?

Kubernetes 集群是由 Kubernetes 容器编排系统管理的一组计算资源,例如服务器或虚拟机。Kubernetes 是一个开源容器化平台,可以简化应用程序容器的部署和扩展。它提供了一个易于使用的 API,用于跨不同环境和基础架构管理容器。编排良好的 Kubernetes 环境也需要可靠的数据保护。如果您已经在利用 Kubernetes 或考虑在不久的将来使用它,那么 Veeam 的原生备份解决方案可以帮助保护您的群集和关键工作负载。

Kubernetes 集群的组件

Kubernetes 集群由两种节点类型组成:主节点和工作节点。主节点是控制平面组件,负责管理集群的整体状态,例如维护集群的所需状态、调度和部署应用程序以及管理集群的网络。在高度可用的 Kubernetes 群集中,可能有多个用于容错的主节点。

另一方面,工作节点是运行实际容器化应用程序的计算资源。它们托管至少包含一个容器的 Pod,并且是您可以在 Kubernetes 中部署的最小单元。工作节点与主节点通信,以确保一切按预期运行。

Kubernetes 还包含两种类型的组件:控制平面组件和节点组件。控制平面组件由以下部分组成。

  • Kube-apiserver:API 服务器是 Kubernetes 控制平面的主要控制机制。它提供对 Kubernetes API 的访问,并处理请求和操作以更新集群的状态。
  • Kube-scheduler:该组件负责根据资源需求、服务质量、要求和其他约束将 Pod 放置到节点上。它考虑了节点容量、亲和/反亲和规则和其他因素来做出调度决策。
  • Kube-controller-manager:此组件运行控制器进程,这些进程管理群集的整体状态。控制器的一些示例包括复制控制器(可确保运行指定应用程序的所需副本数)和服务控制器(管理应用程序的负载均衡)。
  • etcd:这是 Kubernetes 使用的分布式一致键值存储, 用于存储管理集群所需的所有数据 ,包括配置数据和系统的整体状态。

另一方面,单个节点涉及下面列出的组件。

  • Kubelet:该代理在每个工作节点上运行,确保容器在 Pod 中运行,并向控制平面报告节点及其运行 Pod 的状态。它与 API 服务器进行通信,以确保保持所需的应用程序状态。
  • kube-proxy:该组件是在每个工作节点上运行的网络代理,此网络代理通过维护网络规则并确保流量正确转发到相应的 Pod 来实现服务抽象化。
  • 容器运行时:该软件负责运行容器,例如 Docker、 containerd 或 CRI-O。Kubernetes 通过容器运行时接口支持不同的容器运行时。

这两个类别组合在一个集群中,共同为部署和管理容器化应用程序提供了一个一致且可靠的平台。更具体地说,Kubernetes 群集提供大规模管理容器化应用程序所需的抽象化和自动化,使开发人员能够专注于代码,使运营团队能够更高效地管理基础架构。

如何使用 Kubernetes 集群?

Kubernetes 的设置、配置和维护几乎完全使用 Kubernetes API。此 API 公开系统功能,并允许以编程方式管理群集和节点。Kubernetes API 可通过多种方式使用,包括:

  • kubectl:与 Kubernetes API 交互的主要方法是使用 kubectl 命令行工具。它会将您的命令转换为 API 调用并将其发送到 API 服务器。
  • RESTful API 调用:您可以使用 curl、wget 或任何支持 HTTP 请求的编程语言等工具直接对 Kubernetes API 服务器进行 RESTful API 调用。若要对 API 调用进行身份验证和授权,需要使用相应的凭据和令牌。
  • 客户端库:Kubernetes 为 Go、Python、Java 和 JavaScript 等多种编程语言提供了客户端库。这些库提供了一种更方便、更习惯的方式,可以用您的首选语言与 Kubernetes API 进行交互。

在 Kubernetes 中,所需状态是集群中资源预期状态的声明性表示。更新 Pod、部署或设备时,使用 YAML 或 JSON 配置文件定义状态。然后,Kubernetes 会将资源的实际状态与配置文件中指定的状态进行协调。

所需状态包括容器镜像、部署的复制副本数和 Pod 的环境变量等信息。它还包括用于服务的负载均衡类型。Kubernetes 控制器会持续监控这些文件,以做出调整来匹配容器的所需状态

这种声明式方法提供了多种好处,包括 Kuberenetes 在 Pod 崩溃或节点无法访问时进行自我修复的能力。Kubernetes 会自动采取纠正措施来还原所需状态。它还有助于使群集资源与熟悉的版本控制工作流保持一致,从而使回退变得轻而易举。

如何设置 Kubernetes 群集

虽然乍一看可能很复杂,但 Kubernetes 提供了功能强大的抽象化和一致的 API,让大规模管理应用程序变得更加轻松。也就是说,就基础架构而言,设置 Kubernetes 群集具有独特性,因此了解该过程会很有帮助。但是,在深入了解之前,了解部署要求会很有帮助。

Kubernetes 可以在各种硬件和虚拟机配置上运行。确切的要求取决于应用程序的规模和资源需求。但是,对于最小群集,每个节点都应具有至少 2 个 CPU 内核和 2GB RAM、稳定的高性能网络连接,以及本地存储、NAS 或基于云的存储选项(例如 Amazon EBS、Google 持久磁盘和 Azure 磁盘)形式的足够存储空间。

设置 Kubernetes 集群

Kubernetes 集群几乎可以部署在任何环境中,包括本地、公有云或使用托管的 Kubernetes 服务,例如 Google Kubernetes Engine、Amazon Elastic Kubernetes Service 或 Azure Kubernetes Service。尽管自我管理的 Kubernetes 提供了对基础架构的更多控制,但使用托管路线可简化流程。

安装程序需要安装 kubectl,它是与 Kubernetes API 交互的命令行工具。它通过 HTTP 连接,并从本地计算机中安装并配置为连接到群集。

定义应用程序组件

Kubernetes 中的容器化应用程序使用声明性 YAML 或 JSON 配置文件进行描述,这些文件定义了应用程序组件的所需状态。主要组件包括:

  • Pod:运行一个或多个容器的最小可部署单元
  • 服务:定义如何向网络或群集的其他部分公开应用程序
  • 部署:定义应用程序的所需状态并管理滚动更新
  • ConfigMap 和秘密:将配置数据和敏感信息与容器映像分开存储

部署应用程序

通过使用 kubectl 应用配置文件来部署群集,这会指示 Kubernetes 创建必要的资源来实现所需的应用程序状态。同时,实际配置需要相当多的微调。

  • 配置控制平面:使用必要的组件设置主节点,包括 kube-apiserver、etcd、kube-scheduler、kube-controller-manager。在高度可用的设置中,负载均衡器后面需要多个主节点。
  • 配置工作节点:使用必要的组件设置工作节点,包括 kubelet、kube-proxy 和容器运行时。您可能需要根据自己的偏好配置容器运行时,例如 Docker 或 containerd。
  • 配置网络:Kubernetes 支持各种网络解决方案,例如 Calico、Flannel 或 Weave。选择最符合您需求的一种,并按照提供商的文档进行配置。
  • 配置存储:根据所选存储解决方案设置存储类和供给。其中包括配置本地卷、网络连接存储或基于云的存储服务。您还需要部署可靠的备份解决方案
  • 配置基于角色的访问控制:为用户和应用程序定义角色和权限,以便安全地访问 Kubernetes API 和资源。
  • 配置监控和日志记录:设置监控工具(例如 Prometheus 和 Grafana)来收集指标和日志。
  • 配置安全性:实施安全最佳实践,例如保护 Kubernetes API 服务器、对秘密进行加密以及启用网络策略来隔离命名空间。

请记住,这些是部署和配置 Kubernetes 集群的高级步骤。具体流程可能会有所不同,具体取决于您选择的部署选项、基础架构和特定要求。

虽然 Kubernetes 有一个学习曲线,但通过其功能强大的抽象特性和工具,可以更轻松地大规模管理容器化应用程序。通过实践和经验的积累,您会发现随着时间的推移,使用 Kubernetes 变得更加直观。网上还有大量资源可帮助您学习和掌握这一强大的容器化技术。

Kubernetes 集群管理

对于监控,Kubernetes 提供了内置工具来帮助维护集群的健康状态和性能。同时,还有提供高级监控、日志记录和警报的外部和第三方工具和平台。

Kubernetes 可以使用 Horizontal Pods Autoscaler(也称为 HPA)根据需求轻松按需手动或自动扩展或缩减应用程序。您可以通过确保应用程序安全并更新应用程序来确保其性能的持久性。通过更新部署配置,可以在零停机时间内执行应用程序的滚动更新。

如何立即开始使用 Veeam

踏上 Kubernetes 之旅似乎令人生畏,但通过正确的方法和资源,您可以快速熟练掌握。首先探索 Kubernetes 生态系统中的常见解决方案和最佳实践。考虑贵组织的具体需求,以及 Kubernetes 结合 Veeam 原生备份解决方案可以帮助满足这些需求。

当您准备好开始使用时,可以查看 Veeam 的 Veeam Kasten,这是一款专为 Kubernetes 设计和制造的下一代原生备份解决方案。免费注册社区版 ,立即开始制定备份策略。请注意,没有可靠的数据保护,一个精心编排的 Kubernetes 环境是不完整的。让 Veeam 成为您利用 Kubernetes 实施容器化的可靠伙伴。

立即开始

5 个原因

查看演示

了解您如何通过 Veeam 实现数据韧性,有效应对任何威胁

5 个原因

联系我们

帮助贵组织选择合适的解决方案

5 个原因

Veeam 研发论坛

获取有关 Veeam 产品和软件的帮助