• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:云原生系列1-pod基础

java 搞代码 4年前 (2022-02-19) 22次浏览 已收录 0个评论

POD解决了什么问题?

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

mesos采纳的资源囤积策略容易呈现死锁和调度效率低下问题;
google采纳的乐观调度技术难度十分大;

而k8s应用pod优雅的解决了这个问题。

pod的呈现解决了两个问题。

第一:解决了超亲密关系的过程合作;

第二:容器设计模式sidecar利用的载体;

POD是什么?

pod是逻辑概念,在linux操作系统中并不存在,对应了容器组,是k8s中原子调度单位,物理构造如下图:

infra容器是一个应用编译语言编写的轻量级程序,其它业务容器共享了infra容器的network namespace,即pod的所有网络流量都是通过infra容器来解决的,永远处于暂停状态,跟pod同生命周期。

pod里的容器共享volumn ;

物理构造决定了它非常适合用来解决超亲密关系的容器或者说程序。

POD的利用例子

共享volumn:的两个容器

<code class="yaml">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独立更新和演进)

<code class="yaml">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即服务网来源gao.dai.ma.com搞@代*码网格的根底。

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:云原生系列1-pod基础

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址