K8S中的pod和node的区别

1.容器

容器是docker技术中的概念:

docker包括三个概念:镜像(image),容器(container)、仓库(repository)
容器就是镜像运行时的实体,镜像是类,容器是实例。
容器可以被创建、启动、停止、删除以及暂停等;容器的实质是进程,运行于属于自己独立的命名空间。
每个容器的文件系统与其他容器是隔离的。容器内的存储层是跟随容器变化的,生命周期同容器保持一致。容器删除,则存储层信息丢失。所以存储东西最好使用存储卷(volume)、绑定宿主目录等方式。
容器将代码和依赖关系打包在一起,可以多个容器同时运行在同一台机器上,并与其他容器共享操作系统内核。

2.Pod

pod是k8s调度的最小单元。1个pod可以包含1个或多个容器,可以理解为pod是容器集合。
pod相当于逻辑主机,每个pod通过describe可以看到都有自己的ip地址。pod内的容器可以共享相同的ip和端口空间。
进入pod后,正常的linux命令可以使用,若pod内包含多个容器,进入到每个容器都相当于进入了一个逻辑主机。(后半句的意思是每个容器也都有自己的ip?但是是共享的所在的pod的ip?)
一个Pod包含了一组应用容器(比如Docker或者rkt)和这些容器共用的资源:

共享存储,Volumes
网络,一个集群内唯一的IP地址
每个容器执行的相关配置,比如容器的镜像版本或者是需要使用的特定端口
在这里插入图片描述

3.Nodes

直接翻译就是节点。

Node是一个执行具体工作的机器,它可用是虚拟机也可用是物理机。
每个Pod都会放在预定的Node上面,并且会一直存在于那里直到运行终止(这个要根据restart策略来看具体情况)或者被删除。万一Node宕机了,整个Pod会被调度到集群中另外一个可用的Node上去。
每个Node上面可用有多个Pod。每个Node都由Master统一管理,Kubernetes Master会自动在Node之间处理调度相关的处理。Master的自动调度会记录每个Node上的可用资源。
在这里插入图片描述

### PodNode区别Kubernetes 中,**Pod** **Node** 是两个关键概念,它们在集群架构中扮演着不同的角色,并具有不同的功能特性。 #### 层级关系 - **Node** 是集群的计算资源载体,是物理或虚拟机的抽象表示。 - **Pod** 是 Kubernetes 中最小的可部署管理单元,代表运行容器化应用的资源对象。一个 Pod 可以包含一个或多个容器,并且这些容器共享资源,例如网络命名空间存储卷[^2]。 #### 组成内容 - **Node** 包含 Kubernetes 的核心组件,例如 `kubelet`、`kube-proxy` 容器运行时(如 Docker)。它为 Pod 提供运行所需的资源(如 CPU、内存存储)[^1]。 - **Pod** 通常包含一个或多个紧密协作的容器。最常见的情况是每个 Pod 包含一个主容器,但也可以包含多个容器,例如 Sidecar 容器,用于辅助主容器完成特定任务[^3]。 #### 网络 - **Node** 提供物理或虚拟网络连接,确保 Pod 之间的通信。 - **Pod** 提供应用层网络,Pod 内部的容器共享网络命名空间,可以通过 `localhost` 进行通信。 #### 存储 - **Node** 提供节点级别的存储资源。 - **Pod** 提供 Pod 级别的存储卷,Pod 内部的容器可以共享这些存储资源。 #### 生命周期 - **Node** 是长期存在的资源,除非节点发生故障或进行维护,否则不会被销毁。 - **Pod** 是短期存在的资源,根据需求动态创建销毁。其生命周期由控制器(如 Deployment 或 StatefulSet)管理[^2]。 #### 管理对象 - **Node** 由 Kubernetes 的 Master 节点管理。 - **Pod** 由控制器(如 Deployment、StatefulSet 等)管理,确保 Pod 按照预期运行。 #### 资源隔离 - **Node** 实现物理或虚拟机级别的资源隔离。 - **Pod** 实现容器级别的资源隔离,Pod 内部的容器共享资源,而不同 Pod 之间相互隔离[^2]。 #### 典型用途 - **Node** 是运行 Pod 的基础资源载体。 - **Pod** 是运行应用程序组件的最小单位,通常代表一个完整的应用服务(如前端服务或后端服务)[^2]。 ### 示例:PodNode 的关系 Pod 是调度到 Node 上运行的最小单元。以下是一个简单的 Pod 定义示例: ```yaml apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: main-container image: nginx ports: - containerPort: 80 ``` 该 Pod 会被 Kubernetes 调度器分配到一个合适的 Node 上运行,例如 `k8s-node01` 或 `k8s-node02`。NodePod 提供运行所需的资源,并确保容器正常运行[^1]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涵冰...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值