zoukankan      html  css  js  c++  java
  • 傲视Kubernetes(三):Kubernetes中的Pod

    从本文开始,将正式开始Kubernetes的核心内容学习。首先要了解的是Pod,总共大约分为六篇左右,本篇是第一篇,相信学完之后,我们会对Pod有一个整体的理解。

    本文内容:

    1、什么是Pod

    2、Pod的特性

    一、什么是Pod

    Pod是Kubernetes中最基本的调度、管理单元,其他的Kubernetes对象比如各种controller、svc,都是对Pod的动态管理和使用。可以说,Pod是Kubernetes中最核心的定义,没有之一。

    Kubernetes规定,每个Pod必须运行在一个Node上。Node在Kubernetes中的概念类似于物理主机,而每个Pod就是运行在物理主机上的虚拟机,这样的对比虽然不那么严谨,但有助于开始的理解。下面是它们的关系图:

     上图中每个Pod中都可以有一个至多个容器,此处的容器指的就是docker中的容器(当然也支持其他的容器化技术),容器中运行的就是我们的代码。可以看出来,Kubernetes的设计者将容器与对容器的管理分开了,中间加了一层Pod来负责生命周期的管控,如果容器运行过程中由于环境异常导致Pod挂掉,则Kubernetes会创建新的Pod重新运行容器,通过分层达到更好的管控效果。

    虽然一个Pod中可以运行多个容器,但通常,还是建议一个Pod同一时间只运行一个容器,分散部署可以更好的利用Pod的扩缩容能力。

    二、Pod的特性

    既然上面说了Pod类似于运行在宿主机上的虚拟机,那么Pod本身有什么特性呢?它和虚拟机的区别点又是什么?

    先来看Pod与虚拟机的区别。在本系列的第二篇文章中,提到过docker容器与虚拟机的区别与联系,其实一个docker容器的体量是比虚拟机小的,相较而言,Pod更像虚拟机。它们都能运行多个容器,有独立的网络命名空间。最大的区别还是虚拟机有自己的操作系统。

    再来看Pod本身的特性。每个Pod都有独立的Linux命名空间和linux控制组(cgroup),前者可以使每个Pod有自己的系统视图,包括文件、进程、主机名等,后者可以使每个Pod有自己的系统资源,比如CPU、内存、网络带宽等。Kubernetes会给每个Pod分配一个独立的虚拟IP,这个IP在当前Kubernetes集群中是唯一的。

    下面是几个相关问题:

    1、Pod中的多个容器问题及解决

    对于普通的docker容器来说,每个容器都有自己的PID linux命名空间,即容器内的进程系列号是独立的,完全可能与另一个容器内的PID相同。而且每个容器都有独立的文件系统

    但容器的上述特性,尤其是独立进程系列号的特性,会给一个Pod中的多个容器产生麻烦。Kubernetes是如何解决的?它通过配置docker来让一个Pod内的所有容器共享相同的linux命名空间,所以它们就有了相同进程树,并且都共享相同的主机名和网络接口。第二个特性【每个容器有独立的文件系统】,Kubernetes提供了共享文件目录来解决文件不共享的问题,共享文件在后面会进行学习。

    此处还需注意,由于同一Pod的多个容器共享同一个网络命名空间,所以端口不能冲突。

    2、Pod中的多容器之间以及Pod间的通讯

    同一Pod中的多容器具有相同的loopback网络接口,所以可以用localhost+端口进行通信

    Kubernetes的所有Pod处于同一个共享网络地址空间中,所以Pod间可以通过Pod的ip来进行访问,它们之间没有网络地址转换网关(NAT),可以像局域网一样通信。

    本篇就到这里,下一篇将学习Pod的创建及使用。

  • 相关阅读:
    cocos2d JS 在 JavaScript 中,怎样把一个对象转化成 JSON 字符串?
    cocos2d-x 暂停/恢复 与场景相关(SceneGraph类型)的监听器
    cocos2d CCNode类(节点属性大全)
    cocos2d-x 错误异常抛出捕获和崩溃拦截
    cocos2d JS 鼠标响应事件
    cocos2d JS 创建实现换行功能的聊天文本 testLable
    cocos2d JS 自定义事件分发器(接收与传递数据) eventManager
    cocos2d JS 监听键盘触摸响应事件(cc.EventListener.KEYBOARD)
    cocos2d JS touch(触摸监听)-快速添加事件监听器到管理器
    cocos2dx C++ imageView(图片/九宫格)相关属性大全
  • 原文地址:https://www.cnblogs.com/zzq6032010/p/14127058.html
Copyright © 2011-2022 走看看