pod 控制器 3

这篇具有很好参考价值的文章主要介绍了pod 控制器 3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简单回顾

之前我们学习过的的 docker ,例如我们运行

docker run busybox echo "hello wrold"

pod 控制器 3,eureka,云原生

他的实际内在逻辑是这个样子的

pod 控制器 3,eureka,云原生

  • 程序将指令推送给 docker
  • docker 会检查本地是否有 busybox 镜像,若没有则去 docker hub 上面拉取镜像,并下载到本机,再基于这个镜像创建一个 容器
  • 在容器中运行指令 echo “hello wrold”

前面我们也知道了 每一个 pod 或者 docker 容器,都有自己独立的文件系统,进程,用户,主机名和网络接口

简单运行 pod

如果想简单运行一个 pod,我们可以这样做

kubectl run xmtkubia --image=xiaomotong888/xmtkubia --port=8080

xiaomotong888/xmtkubia 是 dockerhub 上面的具体公开的镜像

pod 控制器 3,eureka,云原生

pod 中的容器运行位置

我们知道 pod 中可以运行 1 个容器或者多个容器,那么如果 1 个pod 中,运行多个容器,那么这些容器都会运行在同一个工作节点上面吗?

pod 控制器 3,eureka,云原生

当一个 pod 中有多个容器的时候,这些容器一定总是运行在同一个工作节点上面的,一个 pod 绝对不会跨越多个工作节点

为什么是 一个 pod 里面跑多个容器,而不是一个容器里面跑多个进程?

在我们学习 docker 和 K8S 的过程中,有没有思考过,为什么需要引入 pod 这个概念,我们一个容器里面设计成跑多个进程不就好了吗?

实际上,容器是被设计成每个容器只能运行一个进程的,当然这个进程在程序中自动开辟的子进程是不包含在内的

  • 如果我们单个容器中运行了多个不相关的进程,那么当同一个容器中别的进程崩溃的时候,便会影响到其他进程

  • 多个进程跑在同一个容器中,如何区分进程在标准输出打印的信息呢,这会很麻烦

提出 pod 其实是一种解决方案

  • 提出 pod 这种结构后,1 个 pod 可以和多个容器绑定在一起

  • 1 个 pod 里面可以同时运行多个进程(即多个容器),并且这行进程能够享有几乎同样的环境

  • 从外部看,这些进程好像是全部运行在单个容器中,实际上这些进程又相互保持一定的隔离

上面这里说到的 pod 中的容器相互间保持的着一定的隔离,而不是完全隔离

这里指的是隔离容器组,而不是单个容器,每个容器组内的容器是可以共享容器组的资源的

容器如何共享 ip 和 端口

同一个 pod 中的容器是运行在相同的 Network 命名空间中的,因此他们对于 ip 地址和端口空间是共享的

那么同一个 pod 下面的容器,配置 端口号的时候就需要注意,不能冲突,例如这样

pod 控制器 3,eureka,云原生

在 K8S 中,所有的 pod 都是在同一个网络地址空间中,网络信息他们是共享的

如图,不同 pod 之间是可以通过 ip 直接访问的

pod 控制器 3,eureka,云原生

看了以上 pod 的行为,有没有觉得 pod 的行为和实际的虚拟机或者物理机的行为有很多类似的地方,虚拟机里面跑的每一个进程,pod 里面也可以直接跑这些进程,只不过,pod 里面的每一个进程,都被一个容器包裹

所以啊, pod 可以看做是一个逻辑主机

实在的案例

一个应用程序,有前端应用服务器,和 后端的数据库,如果我们需要将这个程序放到 K8S 环境中,我们是启 1 个 pod 还是 2个 pod ?

pod 控制器 3,eureka,云原生

在 K8S 中是推荐将上述的前端服务器和 后台数据库分开,分成 2 个 pod 去部署,原因有这些:

  • 这样既能够充分利用多个节点的 CPU 和内存,还可以方便我们后续的扩容和缩容

  • 在我们扩缩容的时候,基本单位也是 pod,K8S 中不能对单个容器进行扩缩容

  • 如果将前端和后台都放到同一个pod 中,那么我们扩容或者缩容时候,那么相应的容器将会成倍的增加或减少

  • 前端和后台的扩容缩容也会是完全不同的需求,并不能直接简单粗暴的干就完了

如果我们把上述的前端和后台这样来部署是不推荐的

  • 全部放到同一个 pod 的同一个 容器中
  • 通一个 pod 中部署 2 个容器,分别部署前端和后台

pod 控制器 3,eureka,云原生

推荐的做法是

  • 在 2 个 pod 中分别开 1 个容器,各自部署 前端,后台程序

pod 控制器 3,eureka,云原生

我们实际工作中面临是否需要在同一个 pod 中启多个容器的时候,我们可以思考一下这样的问题

  • 这些容器放在一起运行是必须的吗?是否可以拆分放在不同的主机上运行
  • 这些程序是代表一个整体?还是相互独立的
  • 对于扩容和锁容,是需要一起进行,还是分别进行?

这些问题,咱们之后可以解决一下

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

pod 控制器 3,eureka,云原生

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~
更多的可以查看 零声每晚八点直播:https://ke.qq.com/course/417774文章来源地址https://www.toymoban.com/news/detail-531095.html

到了这里,关于pod 控制器 3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kubernetes Pod控制器

    Pod控制器及其功用 Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源 Deployment 部署无状态应用 负责创建和管理 ReplicaSet , 维护 Pod 副本数

    2024年02月12日
    浏览(40)
  • pod控制器的作用

    pod控制器的作用 1、动态pv和pvc deployment是控制器 pod空气器:工作负载,workload用于管理pod的中间层,确保podi资源符合预期的状态 预期状态 1、·副本数 2、容器重启策略 3、镜像拉取策略 pod、出现故障时重启等等 pod的控制器类型 1、replicaset:指定pod的副本数量 三个组件: pod的副

    2024年01月16日
    浏览(29)
  • k8s---pod控制器

    工作负载,workload用于管理pod的中间层,确保pod资源符合预期的状态。 预期状态: 1、副本数 2、容器重启策略 3、镜像拉取策略 pod出故障的出去等等 1、replicaset:指定pod副本的数量 三个组件:                 1、pod的副本                 2、标签选择器,判断

    2024年01月18日
    浏览(50)
  • k8s之Pod控制器

    Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源。 1、 ReplicaSet : 代用户创建指定数量的pod副本,确保pod副本数量符合预期状态,并且支

    2024年02月13日
    浏览(51)
  • 【K8s】什么是Pod?Pod的调度与控制器

    每个Pod中都可以包含一个或者多个容器 ,这些容器可以分为两类: 1) 用户容器 :用户程序所在的容器,数量可多可少 2) 根容器 :Pause容器,由Kubernetes创建,这是每个Pod都会有的一个根容器,它的作用有两个: 可以以它为依据,评估整个Pod的健康状态 可以在根容器上设

    2024年02月06日
    浏览(42)
  • Linux6.39 Kubernetes Pod控制器

    第三章 LINUX Kubernetes Pod控制器 一、Pod控制器及其功用 Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源 二.pod控制器有多种类型 1.Replic

    2024年02月12日
    浏览(42)
  • Kubernetes 启动Pod的方法-Pod的调度算法-Pod间的通信-k8s的控制器-Pod资源控制-发布Service服务

    目录 Pod 参考文档:Pod | Kubernetes Pod配置文件:simple-pod.yaml 对master进行如下操作 Pod的状态有: 参考文档:(70条消息) Pod生命周期中的状态解释_pod状态_闹玩儿扣眼珠子的博客-CSDN博客 进入Pod内的nginx容器: 当我们创建一个Pod,其中的步骤是什么?(启动Pob的流程) 大概步骤:

    2024年02月13日
    浏览(66)
  • 【云原生】kubernetes控制器deployment的使用

        目录 ​编辑 1 Controller 控制器 1.1 什么是 Controller 1.2 常见的 Controller 控制器 1.3 Controller 如何管理 Pod 2 Deployment 2.1 创建 deployment 2.2 查看 deployment 2.3 扩缩 deployment 2.4 回滚 deployment 2.5 删除 deployment 1 Controller 控制器 官网: 控制器 | Kubernetes 1.1 什么是 Controller Kubernetes 通常不会

    2024年02月13日
    浏览(35)
  • 【云原生|Kubernetes】13-Deployment资源控制器详解

    kubernetes中有很多资源控制器,这些资源控制器我们只说一些重要且常用的。在介绍Deploymen之前,我们会逐个介绍这些控制器。 Pod控制器介绍 ​ Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无效

    2024年02月16日
    浏览(43)
  • 【云原生|Kubernetes】14-DaemonSet资源控制器详解

    ​ 在 Kubernetes 中,DaemonSet 是一种用于在节点上运行指定的 Pod 的控制器(Controller)。与 ReplicaSet 或 Deployment 不同,DaemonSet 不是为了扩展 Pod 数量而创建的,而是为了在每个节点上运行一个实例或多个实例的 Pod。 ​ DaemonSet 通常用于在 Kubernetes 集群中运行一些系统级别的服务

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包