什么是 Kubernetes 集群?

Kubernetes (K8s) 集群是一组运行容器化应用程序的计算节点或工作机。容器化是一种软件部署和运行时系统流程,可将应用程序的代码与应用程序在任何基础设施上运行所需的所有文件和库进行捆绑。Kubernetes 是一款开源容器编排软件,可用于大规模管理、协调和调度容器。Kubernetes 将容器放入容器组中并在节点上运行。Kubernetes 集群具有至少一个运行容器组的主节点和一个管理集群的控制面板。在部署 Kubernetes 时,您实际上是在运行 Kubernetes 集群。

Kubernetes 基础知识有哪些?

要了解 Kubernetes 集群,首先需要了解使用 Kubernetes 进行容器化的基础知识。 

容器是带有依赖关系的单个应用程序或微服务,可作为独立环境和应用程序合二为一运行。 现代应用程序采用分布式微服务架构,其中每个应用程序都包含数百甚至数千个独立运行的独立软件组件。每个组件(或微服务)都执行一个独立的功能,以增强代码模块化。通过为每项服务创建独立的容器,可以在多台计算机上部署和分发应用程序。您可以向上或向下扩展单个微服务工作负载和计算能力,以最大限度地提高应用效率。

Kubernetes 是一款开源容器编排软件,可简化大规模容器的管理。它可以调度、运行、启动和关闭容器,并自动执行管理功能。开发人员可以获得大规模容器化的好处,而无需支付管理费用。

接下来,让我们来看看 Kubernetes 的一些核心概念。

容器组(pod)

容器组(pod)是 Kubernetes 下的标准可部署单元。Pod 包含一个或多个容器,在 Pod 内,容器共享相同的系统资源,例如存储和网络。每个 Pod 都有一个唯一的 IP 地址。 

Pod 中的容器不是隔离的。可以将 Pod 视为类似于虚拟机,其容器类似于在 VM 上运行的应用程序。可以通过为容器组(pod)和容器组(pod)群组附加属性标签来对其进行组织,例如为环境类型标记 ‘dev’ 或者 ‘prod’。 

节点

节点是运行 Pod 的机器。节点可以是物理服务器或虚拟服务器,例如 Amazon EC2 实例。节点上的组件包括:

  • 用于节点和容器管理的 Kubelet
  • 用于网络代理的 kube-proxy
  • 容器运行时系统

节点上必须安装兼容的容器运行时系统才能运行容器。Kubernetes 支持多个容器运行时系统,例如 Kubernetes 容器运行时系统接口和容器。 

副本集和部署

Pod 是一个独立的构件,当其节点出现故障时,它不会自动重启。如果将一个或多个 Pod 分组到一个副本集中,则在 Kubernetes 中,您可以指定始终跨节点运行的副本集。这对于扩展和缩减以及确保应用程序和服务的连续性至关重要。 

部署是 Kubernetes 管理对象,用于部署应用程序,以及在不使其离线的情况下更新或回滚应用程序。

服务和入口

使用 Kubernetes 服务通过端点在网络上公开一个或一组 Pod,以实现遵循标准网络通信规则的交互性。对于公共互联网流量访问,Kubernetes 入口连接到服务,然后该服务链接到一个或多个 Pod。

Kubernetes 集群组件有哪些?

Kubernetes 集群是一组正在运行容器组(pod)的节点,其中包含一个或多个节点。在集群内,Kubernetes 控制面板管理节点和容器组(pod)。

控制面板组件包括:

  • Kubernetes API 服务器 (kube-apiserver),用于管理集群内部和集群之间的通信
  • 存储 (etcd),用于记录集群的持续状态
    调度器 (kube-scheduler),用于管理节点和后续 Pod Kubernetes 资源 

其他组件包括用于节点和作业控制的控制器管理器 (kube-controller-manager),以及用于与提供商特定的公有云基础设施 (cloud-controller-manager) 集成的云控制器管理器。

由于容器没有持久性存储,因此应用程序需要存储持久存在的数据。容器组(pod)可能还需要访问共享数据。持久性卷可以作为存储添加到集群中,在集群中引用类似于节点。

开发人员如何使用 Kubernetes 集群?

开发人员必须首先在主节点及其 Worker 节点上下载并安装 Kubernetes。然后,他们可以在物理机或虚拟机上、本地、数据中心或云中部署集群。

安装

要轻松开始使用 Linux 虚拟机,请在所选主节点(虚拟机)上先安装:

  • Docker 或任何其他容器化软件。
  • Kubernetes 的存储库密钥和代码存储库。
  • kubeadm 程序包,用于集群引导。
  • kubelet 程序包,用于节点协调。
  • kubectl 程序包,用于集群命令行。

在其他每个指定的 Worker 节点上执行该流程。

集群初始化

要初始化集群,请在主节点上运行 kubeadm init 命令。在集群准备就绪之前,您必须添加 kube 配置文件并部署容器组(pod)网络,通常使用 YAML 文件。kubeadm init 命令输出一个连接命令,可以将其复制并粘贴到其他虚拟机 Worker 节点的命令行中。这允许每个 Worker 节点加入集群。 

使用 Kubernetes

借助 Kubernetes 用户界面控制面板,部署人员可以在集群上创建和部署应用程序。要获得 Kubernetes 用户界面控制面板,请在主计算机上运行 kubectl 代理命令。然后,用户界面将在 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ 上可用

什么是 Kubernetes 集群管理?

Kubernetes 集群管理是指大规模管理多个 Kubernetes 集群的术语。例如,以开发环境为例,团队可能需要测试、开发和生产集群,每个集群都在多个分布式现场和基于云的物理机和虚拟机上运行。

要同时管理多个不同类型的集群,您需要能够执行集群操作,例如创建和销毁、现场更新、维护、重新配置、安全性、集群数据报告等。多集群管理可以通过 Kubernetes 服务、专业工具、配置和最佳实践的组合来实现。

AWS 如何帮助您满足 Kubernetes 集群需求?

AWS 提供云服务来配置、运行和管理您的 Kubernetes 集群: 

立即创建免费账户,开始在 AWS 上使用 Kubernetes 集群。

AWS 上的后续步骤

查看其他与产品相关的资源
使用最全面的容器服务组合加速创新 
注册免费账户

立即享受 AWS 免费套餐。

注册 
开始在控制台中构建

在 AWS 管理控制台中开始构建。

登录