关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

什么是容器化应用程序?什么是Kubernetes集群?

发布时间:2022-04-15 11:35:27

Kubernetes 环境由多个组件、硬件和软件组成,它们共同管理容器化应用程序的部署和执行。以下是关键组件以及它们如何融入图片。

什么是Kubernetes集群、节点、Pod、容器、容器化应用程序?

什么是容器化应用程序?

容器化应用程序与其所需的库、二进制文件和配置文件捆绑到一个容器中。并非每个应用程序都是容器化的完美候选者。许多开发人员遵守云原生应用程序的十二要素应用程序指南:

  • I. 代码库:在修订控制中跟踪的一个代码库,许多部署
  • 二、依赖关系:显式声明和隔离依赖关系
  • 三、配置:将配置存储在环境中
  • 四。支持服务:将支持服务视为附加资源
  • 五、构建、发布、运行:严格分离构建和运行阶段
  • 六、进程:将应用程序作为一个或多个无状态进程执行
  • 七。端口绑定:通过端口绑定导出服务
  • 八。并发:通过流程模型横向扩展
  • 九。可处置性:通过快速启动和正常关闭最大限度地提高鲁棒性
  • X. Dev/prod parity:保持开发、登台和生产尽可能相似
  • 十一。日志:将日志视为事件流
  • 十二。管理流程:将管理/管理任务作为一次性流程运行

许多流行的语言和应用程序已被容器化并位于开源存储库中,但是使用运行应用程序所需的库和二进制文件构建应用程序容器可能更有效,而不是导入所有可用的内容。创建容器可以是程序化的,从而可以创建持续集成和部署 (CI/CD) 管道以提高效率。容器化应用程序属于开发人员的领域。

什么是 Kubernetes 容器?

容器是应用程序的标准化、独立的执行外壳。通常,容器将包含一个应用程序,通常由微服务以及正确执行所需的二进制文件和库组成。通过将容器限制为单个进程,问题诊断变得更容易,更新应用程序也是如此。与虚拟机不同,容器不包含底层操作系统,因此与虚拟机相比被认为是轻量级的。Kubernetes 容器属于开发人员的领域。

什么是Kubernetes集群、节点、Pod、容器、容器化应用程序?

什么是 Kubernetes pod?

Pod 是 Kubernetes 集群中最小的执行单元。在 Kubernetes 中,容器不直接在集群节点上运行;相反,一个或多个容器被封装在一个 pod 中。pod 中的所有应用程序共享相同的资源和本地网络,从而简化了 pod 中的应用程序之间的通信。Pod 在每个节点上使用一个称为 kubelet 的代理与 Kubernetes API 和集群的其余部分进行通信。尽管开发人员需要 API 访问权限,但 pod 的管理正在过渡到DevOps的领域。

随着 pod 负载的增加,Kubernetes 可以自动复制 pod 以实现所需的可扩展性。因此,设计一个尽可能精简的吊舱是很重要的。Pod 应该包含一个主进程以及执行它们所需的任何帮助或“边车”容器。

容器与 pod 有什么区别?

容器包含执行特定流程或功能所需的代码。在 Kubernetes 之前,组织将直接在物理或虚拟服务器上运行容器,但没有Kubernetes 集群提供的可扩展性和灵活性。

Pod 为容器提供了另一层抽象。一个或多个应用程序可以包装到一个 pod 中(想想 pod 中的豌豆),而 pod 是 Kubernetes 集群中的最小执行单元。例如,pod 可以包含初始化容器,这些容器为容器化应用程序代码准备环境,然后在应用程序容器开始执行之前终止。Pod 是集群中最小的复制单元,因此 Pod 中的所有容器将一起向上或向下扩展。如果应用程序需要访问持久存储,Pod 包括持久存储卷和容器。

什么是 Kubernetes 节点?

正如 pod 是 Kubernetes 中最小的执行单元一样,节点是 Kubernetes 集群中计算硬件的最小单元。节点可以是本地物理服务器,也可以是驻留在本地或云提供商处的 VM。

像容器一样,节点提供了一个抽象层。如果运营团队将节点视为具有处理能力和内存的简单资源,则每个节点都可以与下一个节点互换。节点一起工作,形成 Kubernetes 集群,随着需求的变化自动分配工作负载。如果一个节点发生故障,它会自动从集群中删除,并由其他节点接管。每个节点都运行一个名为 kubelet 的代理,它与集群控制平面进行通信。节点是 DevOps 和 IT 的领域。

什么是Kubernetes集群、节点、Pod、容器、容器化应用程序?

Kubernetes pod 与节点之间有什么区别?

Pod 是可执行代码的抽象,节点是计算机硬件的抽象,所以比较有点像苹果和橘子。Pod 只是 Kubernetes 中最小的执行单元,由一个或多个容器组成,每个容器都有一个或多个应用程序及其二进制文件。节点是组成 Kubernetes 集群的物理服务器或虚拟机。节点是可互换的,通常不会由用户或 IT 单独处理,除非需要维护。

什么是 Kubernetes 控制平面?

  • Kubernetes 控制平面是 Kubernetes 集群的控制器。尽管大多数集群将有一个控制平面,但可以有多个以实现弹性。例如,在跨可用区的大型云部署中,可能有一个控制平面在每个可用区中运行。这些是 Kubernetes 控制平面的组件:
  • apiserver:顾名思义,API 服务器公开了 Kubernetes API,它是通信中心。通过命令行界面 (CLI) 或其他用户界面 (UI) 进行的外部通信传递到 kube-apiserver,并且所有控制平面到节点的通信也通过 API 服务器。
  • etcd:存储与集群相关的所有数据的键值存储。etcd 具有高可用性和一致性,因为对 etcd 的所有访问都是通过 API 服务器进行的。etcd 中的信息通常以人类可读的 YAML(YAML Ain't Markup Language)格式化。
  • scheduler:创建新 Pod 时,该组件会根据资源需求、策略和有关地理位置和与其他工作负载的干扰的“亲和性”规范将其分配给节点执行。
  • controller-manager:虽然 Kubernetes 集群有多个控制器功能,但它们都被编译成一个二进制文件。

什么是 Kubernetes 集群?

Kubernetes 集群由节点组成,节点可以是虚拟机或物理服务器。当你使用 Kubernetes 时,你总是在管理一个集群。必须至少有一个 Kubernetes 控制平面实例在一个节点上运行,并且至少有一个节点供 pod 执行。通常,集群将有多个节点来处理随着工作负载变化(无论是由于一天中的时间、季节性还是其他原因)而扩展的应用程序。如果从集群中添加或减少节点,集群将根据需要自动重新分配工作负载。

什么是Kubernetes集群、节点、Pod、容器、容器化应用程序?

Kubernetes 节点与集群有什么区别?

节点是集群的最小元素。集群由节点组成。集群是一个共享 pod 整体执行的集体,反映在 Google Kubernetes 集群项目的原始名称:Borg。

什么是 Kubernetes 卷?

由于容器最初被设计为短暂且无状态的,因此几乎不需要解决存储持久性问题。然而,随着更多需要从持久存储读取和写入的应用程序被容器化,访问持久存储卷的需求已经出现。为了实现这一点,Kubernetes 具有持久卷。独特之处在于它们在集群外部,持久卷可以挂载到集群,而无需将它们与特定节点、容器或 pod 关联。持久卷可以是本地的或基于云的,并且是 DevOps 和 IT 的领域。

Kubernetes 的组件如何协同工作?

简而言之,应用程序被创建或迁移到容器中,然后用于创建在 Kubernetes 集群上运行的 Pod。创建 Pod 后,Kubernetes 会将它们分配给集群中的一个或多个节点,并确保正确数量的副本 Pod 正在运行。Kubernetes 扫描集群以确保每组 pod 都按指定运行。



/template/Home/scmsky/PC/Static