云原生系列1 pod基础
2021-02-14 23:44
896 查看
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: v1 kind: pod metadata: name: two-container spec: 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: v1 kind: Pod metadata: name: javaweb spec: 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)
原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。
相关文章推荐
- java基础系列——I/O(输入/输出)
- 【Api使用系列】Cocoa基础专题
- 程矢Axure夜话: Axure基础系列视频教程汇总贴
- WCF系列-WCF基础(3) 宿主方式
- Bootstrap系列 -- 38. 基础导航条
- 第一章 JAVA基础知识系列 -- 第三节 正则表达式
- SpringBoot基础实战系列(二)springboot解析json与HttpMessageConverter
- 机器学习算法原理总结系列---算法基础之(4)最邻近规则分类(K-Nearest Neighbor)
- hibernate实体类的三种状态---【小白系列】0基础到熟练应用hibernate框架(八)
- 【脚本语言系列】关于Python基础知识对象自省,你需要知道的事
- Python基础系列----字典、基本语句
- docker学习系列(四)制作基础的base项目镜像--jdk+tomcat
- C#基础知识梳理系列一:CLR及程序集部署
- [C# 基础知识系列]专题六:泛型基础篇——为什么引入泛型
- JavaScript基础系列1---初探JavaScript
- css系列教程--简介及基础语法和注意事项
- 【Xamarin开发 Android 系列 6】 Android 结构基础(上)
- cc与gcc的区别-linux基础系列(网络查找)
- Python学习系列(一)(基础入门)
- WPF 基础到企业应用系列3——WPF开发漫谈(转)