博客
关于我
云原生系列1 pod基础
阅读量:444 次
发布时间:2019-03-06

本文共 1664 字,大约阅读时间需要 5 分钟。

POD解决了什么问题?

成组资源调度问题的解决。

mesos采用的资源囤积策略容易出现死锁和调度效率低下问题;

google采用的乐观调度技术难度非常大;
而k8s使用pod优雅的解决了这个问题。
pod的出现解决了两个问题。
第一:解决了超亲密关系的进程协作;
第二:容器设计模式sidecar应用的载体;

POD是什么?

pod是逻辑概念,在linux操作系统中并不存在,对应了容器组,是k8s中原子调度单位,物理结构如下图:
![image.png](https://img2020.cnblogs.com/other/268922/202102/268922-20210214234357945-337352592.png)
infra容器是一个使用编译语言编写的轻量级程序,其它业务容器共享了infra容器的network namespace,即pod的所有网络流量都是通过infra容器来处理的,永远处于暂停状态,跟pod同生命周期。
pod里的容器共享volumn ;
物理结构决定了它非常适合用来处理超亲密关系的容器或者说程序。

POD的应用例子

共享volumn:的两个容器
apiVersion: v1kind: podmetadata:  name: two-containerspec:  restartPolicy: Never  volumes:    - name: shared-data      hostPath:        path: /data  containers:    - name: nginx-container      image: nginx      volumeMounts:        - name: shared-data          mountPath: /usr/share/nginx/html    - name: debian-container      image: debian      volumeMounts:        - name: shared-data          mountPath: /pod-data      command: ["/bin/sh"]      args: ["-c","echo hello from  > /pod-data/index.html"]
sidecar模式应用例子:(javaweb程序采用sidecar模式共享volumn,是的war跟tomcat独立更新和演进)
apiVersion: v1kind: Podmetadata:    name: javawebspec:  initContainers:  - image: war:v2    name: war    command: ["cp", "/sample.war","app"]    volumeMounts:    - mountPath: /app      name: app-volunn  containers:  - image: tomcat    name: tomcat    command: ["sh","-c","startup.sh"]    volumeMounts:      - mountPath: /app          name: app-volunn    volumes:    - name: app-volumn      emptyDir: {}

小结

pod的物理结构决定了它非常适合处理超亲密关系的一组容器,也是sidecar即服务网格的基础。
![pod.png](https://img2020.cnblogs.com/other/268922/202102/268922-20210214234358709-1363172180.png)

原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。

你可能感兴趣的文章
常见的图文布局
查看>>
Laravel - 上手实现 - 文件上传、保存到 public 目录下
查看>>
将mongo设置为windows的服务
查看>>
【Flink】Flink 底层RPC框架分析
查看>>
【集合框架】JDK1.8源码分析之LinkedList(七)
查看>>
Jenkins 集成postman 自动化运行接口测试用例
查看>>
django+appium实现UI自动化测试平台(开源部分,可定制开发)
查看>>
第七届C/C++B-方格填数 DFS
查看>>
数据结构课设--3哈夫曼编码译码系统(树应用)
查看>>
pku 1061 青蛙的约会 扩展欧几里得
查看>>
Spring Boot 2.4 配置文件将加载机制大变化
查看>>
也来玩玩 javascript对象深拷贝,浅拷贝
查看>>
【转载】Kubernetes CNI网络最强对比:Flannel、Calico、Canal和Weave
查看>>
Kubernetes实战总结 - 动态存储管理StorageClass
查看>>
wcf webHttpBinding Post 大数据量提交 ios c#客户端
查看>>
[LeetCode题解]141. 环形链表 | 快慢指针
查看>>
MySQL错误日志(Error Log)
查看>>
12.Linux之输入子系统分析(详解)
查看>>
源码解析之 Mybatis 对 Integer 参数做了什么手脚?
查看>>
oracle使用DBMS_RANDOM包生成随机数据
查看>>