pod的好处和坏处

2023-10-28 11:10
文章标签 好处 pod 坏处

本文主要是介绍pod的好处和坏处,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们知道,Docker容器使用了“Namespace隔离,Cgroup做资源限制,rootfs做文件系统”,那么为什么需要pod呢?pod是一组共享了某些资源的容器,是K8S中原子调度单位。

1,编排需要

我们在部署进程的时候,通常需要多个进程一起部署。这些进程之间通常需要互相配合,通常需要发生文件交换,本地通信,共享某些namespace等。所以我们对这些进程需要成组部署。但是如果没有pod对他们进行成组部署会出现下面这个问题。

例如,现在有3个进程共需要3GB内存,而现在有两个节点,分别是2.5GB和3GB。若不成组部署,则前两个进程可能会被部署到2.5GB的节点上,而第三个进程则发现这个节点已经没有足够的空间部署了。所以我们把这个三个进程打包成一个整体,则在部署更加直观快捷。

2,共享资源需要(网络,volume)

Pod里面的容器共享network Namespace网络资源,并且可以共同声明一个Volume。例如,A容器共享B容器的网络资源和volume,那么在docker中的思路是:我们需要先部署B容器,再部署A容器。所以A和B之间的关系成拓补关系。

而在我们Pod中,我们会在事先部署0号容器infra,而这个infra容器为其他后加入的容器提供网络资源,也就是说其他所有的容器都需要共享infra容器的网络。所有,后面加入的容器则无需拓补关系部署。

于是,A和B通信则可以直接使用locakhost,他们看到的网络设备和infra设备是一样的,一个pod也就只有一个IP地址。 

同样的,共享volume也是利用这种思想。一个 Volume 对应的宿主机目录对于 Pod 来说就只有一个,Pod 里的容器只要声明 挂载这个 Volume,就一定可以共享这个 Volume 对应的宿主机目录。

3,容器设计模式,sidecar

sidecar是指我们在一个pod中,启动一个辅助容器,用来辅助主容器的其他工作。例如,一下这个读取保存日志的例子。

当A B两个进程共享同一个目录,A工作并且负责把日志输出到这个目录下,那么B则只需要读取日志并转发到数据库保存下来。所以,这里B就是我们所说的sidecar容器。

以上3点是我们需要pod的好处。

那么我们使用pod的有什么坏处呢???

pod只是一个逻辑概念,并不是真实存在的,它是一种编排技术。但是pod又有充当虚拟机角色的作用。所以,坏处就来了,pod不是真的虚拟机,所以它提供的pod之间隔离的效果实际上是利用linux namespace,cgroup rootfs技术,而不是真正的隔离和独享。

这篇关于pod的好处和坏处的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/292788

相关文章

Serializable的好处

任何类型只要实现了Serializable接口,就可以被保存到文件中,或者作为数据流通过网络发送到别的地方。也可以用管道来传输到系统的其他程序中。这样子极大的简化了类的设计。 import java.io.Serializable;import java.util.Arrays;import java.util.HashMap;import java.util.Map;public

请解释Java Web应用中的前后端分离是什么?它有哪些好处?什么是Java Web中的Servlet过滤器?它有什么作用?

请解释Java Web应用中的前后端分离是什么?它有哪些好处? Java Web应用中的前后端分离 在Java Web应用中,前后端分离是一种开发模式,它将传统Web开发中紧密耦合的前端(用户界面)和后端(服务器端逻辑)代码进行分离,使得它们能够独立开发、测试、部署和维护。在这种模式下,前端通常通过HTTP请求与后端进行数据交换,后端则负责业务逻辑处理、数据库交互以及向前端提供RESTful

java类中定义接口的有哪些好处

第一步:首先是是定义一个类,同时里面定义接口 public class Util { public interface Worker { void work(int a); } } 第二步:定义一个类去实现第一步类中定义的接口 public class Demo implements Worker { @Override public void work(int a) { System

k8s调度(pod亲和、反亲和、污点、容忍度)

pod亲和性 针对对象为Pod,目的是实现,新建Pod和目标Pod调度到一起,在同一个Node上。 示例: apiVersion: v1kind: Podmetadata:name: testpod01labels:app: myapp01env: test1spec:containers:- name: testpod01image: nginx:1.23.2---apiVersio

Kubernetes Scheduler:Pod调度的双步骤—预选(Predicates)和优选(Priorities)

Kubernetes Scheduler:Pod调度的双步骤—预选(Predicates)和优选(Priorities) 1、预选(Predicates)2、优选(Priorities) 💖The Begin💖点点关注,收藏不迷路💖 在Kubernetes中,Pod的调度是由Scheduler负责的。Scheduler通过两个关键步骤——预选(Predicat

pod install 报错处理

由于墙的原因,pod install 、 pod update经常报错 有效的解决方案(推荐): 以SnapKit为例 找不报错的同事要以下两个文件(指定的版本) 1. /Users/xxx/Library/Caches/CocoaPods/Pods/Release/SnapKit 2. /Users/xxx/Library/Caches/CocoaPods/Pods/Specs

kubernetes Pod failed to create fsnotify watcher: too many open files

fs.nr_open: 控制单个进程可以打开的文件描述符的最大数量。单个进程的文件描述符限制可以通过 ulimit 命令来设置。 /proc/sys/fs/nr_open 是一个系统级别的全局参数,表示系统中单个进程能够打开的文件描述符总数的限制。/proc/sys/fs/file-max 系统级别,当前系统可打开的最大数量/etc/security/limits.conf 用户级别,指定用户

K8s的Pv和Pvc就是为了pod数据持久化

一、 1.pv(persistent volume):是k8s虚拟化的存储资源,实际上就是存储,列如本地的硬盘、网络文件系统(Nfs)、lvm、RAID、云存储。 2.pvc:pod对存储资源的请求,定义了需要存储的空间大小,以及对存储空间的访问模式,有了pvc请求之后,再和pv进行匹配,匹配到了之后进行绑定,绑定成功之后就可以使用pv的存储空间。 二、pv和pvc生命周期 1.配置定

开放式耳机的好处?这五款爆款耳机绝对不能错过!

开放式耳机以其独特的设计提供了一种与众不同的听觉体验。这种耳机的设计允许空气在耳杯内部自由流动,不仅提高了透气性,减少了耳道内的潮湿和压力,还有助于保持耳道的卫生和健康。 开放式耳机的另一个显著好处是它们允许用户在聆听音乐的同时保持对周围环境的感知,这对于户外运动或者需要时刻注意周围情况的用户来说尤为重要,大大提高了使用的安全性。 此外,开放式耳机通常适合各种耳型,无需担心耳塞尺寸不合

【Kubernetes知识点问答题】Pod 调度

目录 1. 如何将特定 Pod 调度到指定的节点? 2. 什么是节点的亲和性? 3. 什么是污点,它的主要用途是什么? 1. 如何将特定 Pod 调度到指定的节点? 可以使用下列方法中的任何一种来选择 K8s 对特定 Pod 的调度: ①  与节点标签匹配的 nodeSelector: 在 Pod 的规范中使用 nodeSelector 字段来指定节点