ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Kubernetes Pod

2022-09-14 01:32:02  阅读:212  来源: 互联网

标签:容器 Kubernetes 多个 应用 Pod 运行 同一个


一,POD资源管理

1,什么是pod

 Pod是Kubernetes集群中最小部署单元,一个Pod由一个容器或多个容器组成,这些容器可以共享存储,网络等资源等。

    Pod有以下特点:
        (1)一个Pod可以理解为一个应用实例,提供服务;
        (2)Pod中容器始终部署在同一个Node上;
        (3)Pod中容器共享网络,存储资源;
        (4)Kubernetes直接管理Pod,而不是容器;

2,pod存在的意义

Pod主要用法:
    运行单个容器:
        这是最常见的用法,在这种情况下,可以将Pod看做是单个容器的抽象封装。
    运行多个容器:
        封装多个紧密耦合且需要共享资源的应用程序。
        如果有这些需求,你可以运行多个容器:
            (1)两个应用之间发生文件交互;
            (2)两个应用需要通过127.0.0.1或者socket通信;
            (3)两个应用需要发生频繁的调用;
            
pod场景:
    众所周知,docker容器运行时需要后台守护进程,比如我们将"nginx"和"filebeat"应用部署在同一个容器内,无论我们选用哪个应用程序作为后台守护进程均可运行容器,但只要被选择用于后台守护进程的程序挂掉后,另一个程序可能无法使用。
    为了解决上述的问题,我们生产环境中是建议将"nginx"和"filebeat"两个应用可以拆开,用两个容器部署,这样可以实现解耦,即一个应用程序挂掉不会影响到另一个容器的运行,因为各个容器底层资源是隔离的。       
    
K8S的Pod设计:
    K8S已经考虑到上述应用依赖性比较强的场景,我们可以将"nginx"单独作为一个容器运行,它会产生日志文件,而后我们单独运行一个"filebeat"容器,用于收集日志到ELK集群中。
    
    
你可能会疑问,为什么同一个Pod内多个容器共享同一个网络空间呢?
    (1)节省IP地址的分配,因为一个较大的集群中,可能成千上万个容器,在刚刚每天甚至能达到上亿级别的容器运行,每周数十亿容器运行,因此同一个Pod内运行多个容器,我们没有必要维护多个IP,这样可以节省IP地址的分配;
    (2)多个容器使用同一个网络空间,可以降低维护成本,无需运维人员同时维护同一个Pod内的多个网卡,降低运维成本,同时,也能降低开发的维护成本;
    (3)依赖关系较高的多个容器可以通过127.0.0.1直接进行通信,但也会面临缺陷,比如在同一个Pod内运行多个Nginx版本会存在端口冲突的显现,需要我们注意这一点,因为它们使用的是同一个网卡;

 

标签:容器,Kubernetes,多个,应用,Pod,运行,同一个
来源: https://www.cnblogs.com/slx-yyds/p/16691586.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有