首页 > 其他分享 >Pod的理解(chrono《kubernetes入门实战课》笔记整理)

Pod的理解(chrono《kubernetes入门实战课》笔记整理)

时间:2022-11-17 19:44:37浏览次数:36  
标签:容器 kubernetes chrono YAML Pod k8s pod 豌豆荚

 

【为什么要有pod】

pod,直译为豌豆荚,形象地描述了它的功能,它内部包含很多豆子,这一颗颗豆子,就是每个组件、成员。既然pod也是为了运行容器,为什么不直接用docker运行呢?因为docker运行的容器,每个容器是完全隔离的,当拥有不同服务的容器互相之间要频繁进行通信,甚至有依赖关系,要根据需要灵活做好调度,容器之间毕竟是完全隔离的,就不是非常方便了。那么干脆把需要的服务都放在一个容器是不是可以呢?是的,但是这就不是容器存在的意义了,容器就是为了对每个应用独立封装,好管理。

那么,又需要联合运行,又要不破坏容器的隔离,就需要在容器外面,做一个大的豌豆荚,包裹为了某种服务,组织起来的一个系列的容器,每个容器,就像一颗颗豌豆。它们既可以相对独立,又能小范围共享网络、存储等资源,而且一个豌豆荚可以是一个用途的“应用”,逻辑上也非常清晰。在YAML文件里,我们看到spec.containers,这是一个数组,这意味着,一个Pod是可以定义很多容器的。

 

 

【Pod为什么在k8s中如此重要】

pod是k8s调度部署的最小单位,也就是说,k8s只对pod进行操作。每个pod里有很多的不同功能的容器,集合起来做到pod想做到的服务能力。下图是k8s各个元素之间的一个关系,可以看出,k8s的资源,都直接或者间接通过pod来进行实现和中转,所以pod也就很自然称为k8s中最核心的对象了。(现在理解这个图,还有点点难,后面我要是学得更多了,会回来对这张图做更进一步地说明)

 

【如何使用YAML描述Pod】

上节课我们学了Pod也是一种API对象,所以它的YAML文件,也需要遵守YAML文件的格式,需要有apiserver,kind,metadata,spec。在k8s里,pod的创建,必须要有一个名字,就是metadata里面的name,这是一个必须要遵守的约定。而name毕竟信息有限,需要metadata的lable进一步进行描述和说明,这样我们对于这个pod就有非常清晰的分别了。标签可以是不同的运行环境env=xxx,所在的物理位置region:xxxx等等。如:

 

 

未完待续。。

 

标签:容器,kubernetes,chrono,YAML,Pod,k8s,pod,豌豆荚
From: https://www.cnblogs.com/1234roro/p/16900541.html

相关文章

  • Kubernetes日志采集Sidecar模式介绍
    摘要:DaemonSet和Sidecar模式各有优缺点,目前没有哪种方式可以适用于所有场景。因此我们阿里云日志服务同时支持了DaemonSet以及Sidecar两种方式,并对每种方式进行了一些额外......
  • Pod详解之Pod调度(污点和容忍)
    污点和容忍污点(Taints)前面的调度方式都是站在Pod的角度上,通过在Pod上添加属性,来确定Pod是否要调度到指定的Node上,其实我们也可以站在Node的角度上,通过在Node上添加污点......
  • Kubeadm搭建kubernetes集群
    Kubeadm搭建kubernetes集群环境说明|角色|ip|操作系统|组件||–|–|–||master|192.168.203.100|centos8|docker,kubectl,kubeadm,kubelet||node2......
  • 基于centos7.9二进制部署kubernetes1.25.4
    基于centos7.9二进制部署kubernetes1.25.41、环境准备IP地址主机角色系统192.168.100.153k8s-master01K8S集群主节点Centos7.9192.168.100.154k8s-ma......
  • Kubernetes(K8S) 安装Nacos,报 No DataSource set
    原因,数据库为MySQL5.7需要在yaml加上参数mysql.db.param:"characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&server......
  • DevOps 必备的 Kubernetes 安全清单
    Kubernetes是当今许多公司采用的容器编排平台,它的实施需要对其生态系统有一定的了解,以便部署一个准备好用于生产的集群。然而从原则上来说,Kubernetes并不是一个安全的平......
  • Docker基础知识 (19) - Kubernetes(二) | 搭建单个 Master 集群(一主一从)
    Kubernetes,也被称为K8s或Kube,是谷歌推出的业界最受欢迎的容器管理/运维工具(容器编排器)。它是一套自动化容器管理/运维的开源平台,包括部署、调度和节点集群的扩展等。Kub......
  • K8s中大量Pod是Evicted状态,这是咋回事?
    线上被驱逐实例数据最近在线上发现很多实例处于Evicted状态,通过podyaml可以看到实例是因为节点资源不足被驱逐,但是这些实例并没有被自动清理,平台的大部分用户在操作......
  • Kubernetes--->Pod的状态为Evicted
    遇到的问题:kubectlgetpods发现很多pod的状态为evicted。复制原因eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。多见......
  • YAML:k8s世界的通用语(chrono《kubernetes入门实战课》笔记整理)
     YAML语言有一个非常关键的特性,叫“声明式”(declarative),对应的另一个词“命令式”(imperative)。命令式:docker敏玲和dockerfile就属于命令式,特点是交互性强,注重顺序和过......