什么是Kubernetes Pod?

Pod 是 Kubernetes 中最小的执行单元。一个 pod 封装了一个或多个应用程序。Pod 本质上是短暂的,如果 pod(或它执行的节点)发生故障,Kubernetes 可以自动创建该 pod 的新副本以继续操作。Pod 包含一个或多个 容器 (例如 Docker 容器)。Pod 还提供环境依赖项,包括持久存储卷(永久且可用于集群中所有 pod 的存储)和在 pod 中运行容器所需的配置数据。

什么是Kubernetes Pod?

Pod 有什么作用?

Pod 代表在集群上运行的进程。通过将 pod 限制为单个进程,Kubernetes 可以报告集群中运行的每个进程的运行状况。豆荚有:

  • 唯一的 IP 地址(允许它们相互通信)
  • 持久存储卷(根据需要)
  • 确定容器应如何运行的配置信息。

尽管大多数 pod 都包含一个容器,但许多 pod 会有几个容器紧密协作以执行所需的功能。

豆荚有什么好处?

当 pod 包含多个容器时,它们之间的通信和数据共享会被简化。由于 pod 中的所有容器共享相同的网络命名空间,因此它们可以相互定位并通过 localhost 进行通信。Pod 可以通过使用另一个 pod 的 IP 地址或通过引用驻留在另一个 pod 中的资源来相互通信。

Pod 可以包含在 Pod 启动时运行的容器,例如在应用程序容器运行之前执行所需的启动。此外,Pod 简化了可扩展性,允许根据需求变化自动创建和关闭副本 Pod。

吊舱是如何工作的?

Pod 由称为控制器的工作负载资源创建,控制器管理集群中 Pod 的推出、复制和运行状况。例如,如果集群中的一个节点发生故障,控制器会检测到该节点上的 pod 没有响应,并在其他节点上创建替换 pod。

三种最常见的控制器类型是:

  • 临时的批处理类型作业 的作业,将运行任务完成
  • 无状态和持久性应用程序的部署 ,例如 Web 服务器(HPPT 服务器)
  • StatefulSets 用于有状态和持久性的应用程序,例如数据库

如果一个 pod 有多个容器,它们都一起调度在集群中的同一台服务器上,无论是虚拟机还是物理服务器。pod 中的所有容器共享它们的资源和依赖关系,并且可以协调它们的执行和终止。例如,pod 可以包含在应用程序容器运行之前运行的“init”容器,为随后的应用程序设置环境。

Pod 几乎总是由控制器创建,然后控制器可以自动管理 pod 生命周期,包括替换失败的 pod、在必要时复制 pod,以及在它们完成或不再需要时将 pod 从集群节点中逐出。

控制器使用 pod 模板中的信息来创建 pod,控制器确保正在运行的 pod 与 pod 模板中定义的部署相匹配,例如通过创建副本以匹配部署中定义的数量。

什么是Kubernetes Pod?

Pod 之间是如何通信的?

创建 pod 时,会为其分配自己的唯一 IP 地址。如果 pod 中有多个容器,它们之间可以简单地使用 localhost 进行通信。pod 外部的通信是通过暴露一个端口来实现的。集群中 pod 之间的通信利用了 Kubernetes 为集群中的每个 pid 分配集群私有 IP 地址这一事实,从而无需在 pod 之间显式创建链接或将容器端口映射到主机端口。通过这种方式,集群中的每个 pod 都可以“看到”彼此,而无需 NAT。

什么是基本的 kubectl 命令?

Kubectl 提供了许多命令,允许用户创建 pod、使用部署运行它们、检查正在运行的 pod 的状态以及停止不再需要的 pod。JSON(JavaScript Object Notation)或 YAML(YAML Ain't Markup Language)命令对于编码命令都是有效的。

常用的 kubectl 命令如下:

得到

kubectl get 命令将显示一个或多个资源的表格信息。可以使用标签选择器过滤信息。可以仅从现有命名空间或集群中的所有命名空间显示信息。

命令“kubectl api-resources”将生成所有受支持资源的列表,您可以“获取”有关这些资源的信息。kubectl get 命令的一般格式是:

$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file =...|jsonpath=...|jsonpath-file=...] (TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME .. .) [旗帜]

创建 Pod

Pod 是使用 create 命令创建的,格式如下:

$ kubectl 创建 -f 文件名。

例如,命令:

kubectl create -f ./mypod.yaml 将从 YAML 文件“mypod”创建一个新 pod

删除 Pod

命令 “kubectl delete -f ./mypod.yaml” 将从集群中删除 pod “mypod”。删除 pod 是一个优雅的过程;Pod 将在被强制终止之前继续运行一段宽限期(默认为 30 秒)。如果需要,可以使用 –grace-period 标志覆盖宽限期值。

文章链接: https://www.mfisp.com/6982.html

文章标题:什么是Kubernetes Pod?

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
IDC云库

什么是Kubernetes网络?网络在Kubernetes中是如何工作的?

2022-5-23 10:32:49

IDC云库

2022年最好的7个Drupal模块

2022-5-23 10:54:02

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
客户经理
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠