zoukankan      html  css  js  c++  java
  • 云原生系列1 pod基础

    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)

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

    no pays,no gains!
  • 相关阅读:
    JAVA单例模式的实现伪代码
    Oracle提高SQL查询效率where语句条件的先后次序
    JAVA源文件中可以包含多个类
    Java 内部类、成员类、局部类、匿名类等
    下面那个情况可以终止当前线程的运行
    Java推断文本文件编码格式以及读取
    C/C++ 图像二进制存储与读取
    多路分发
    jQuery Mobile页面跳转切换的几种方式
    单机 & 弱联网手游 防破解、金币改动 简单措施
  • 原文地址:https://www.cnblogs.com/snidget/p/14403037.html
Copyright © 2011-2022 走看看