1 pod介绍

  一个pod是一组紧密相关的容器,是一起运行在同一个工作节点上,以及同一个Linux命名空间中。每个pod就像是一个独立的逻辑机器,拥有自己的IP、主机名、进程等,运行一个独立的应用程序。
  pod是逻辑主机,一个pod的所有容器都运行在同一个逻辑机器上,其他pod中的容器,即使运行在同一个工作节点上,也会出现在不同的节点上。即一个pod包含多个容器时,这些容器总是运行在同一个工作节点上,一个pod绝不可能跨多个工作节点。
  Pod是k8s最小的调度单元,由ReplicaSet控制,RS又由Deployment控制,pod和rs都不支持滚动升级,而Deployment支持,是这种Deployment—> RS—>Pod的关系。
举例

by 《K8s in Action》

  每个pod自有IP,包含1个或多个容器,每个容器运行一个应用进程

查看pod命令
$ kubectl get pods
READY:0/1 表示pod的单个容器显示为未就绪的状态;相反,1/1表示已就绪;
STATUS: Pending 表示pod处于挂起状态;相反,Running表示pod处于运行状态;

2 K8s运行应用流程

  运行应用两大步骤:1)构建镜像并推送至镜像仓库中;2)K8s创建pod进行调度;

by 《K8s in Action》

流程:
1)本地构建镜像;
2)推送镜像至镜像仓库;
3)kubectl创建并部署应用;
4)kubectl发出REST请求至REST API服务器;
5)创建pod并调度到工作节点;
6)kubelet收到通知;
7)kubelet告知Docker运行镜像;
8)Docker从镜像仓库中拉取镜像;
9)Docker创建并运行容器;

3 pod的产生

3.1 单个容器不建议多个进程

  如果单个容器中运行多个不相关的进程,保持所有进程运行、管理它们的日志将很难,需要包含一种在进程崩溃时能够自动重启的机制,同事,这些进程都将记录到相同的标准输出中,很难确定每个进程分别记录的内容。

3.2 pod的由来

  不能讲多个进程聚集在一个单独的容器中,需要pod将容器绑定在一起,并将它们作为一个单元进行管理,在包含容器的pod下,可以同时运行一些密切现骨干的进程,并为其提供相同的环境,此时这些进程就好像全部运行于单独的容器中,同时保持一定的隔离性。

3.3 同一pod中的容器隔离

  k8s可以通过配置docker让一个pod内的所有容器共享相同的Linux命名空间(network、UTS命名空间、IPC命名空间),从而使容器都共享相同的主机名、网络名和IPC通信。
  同一个pod中的容器运行的多个进程不能绑定到相同的端口号,否则会端口冲突(每个pod都有独立的端口空间,不同pod中的容器不会有端口冲突现象。)
  同一个pod中的容器具有相同的loopback网络接口,所以容器可以通过localhost与同一个pod中的其他容器进行通信。
注意
  容器不应该包含多个进程,pod也不应该包含多个并不需要运行在同一主机上的容器。如下图:

by 《K8s in Action》

4 pod描述

4.1 定义的主要部分

1)yaml中使用的kubernetes API版本和yaml描述的资源类型;
2)metadata:包括名称、命名空间、标签和关于该容器的其他信息;
3)spec:包含pod内容的实际说明,如pod的容器、卷和其他数据;
4)status:包含运行中的pod的当前信息,如pod所处的条件、每个容器的描述和状态,以及内部IP和其他基本信息。

4.2 简单的yaml文件

by 《K8s in Action》

描述信息:
1)该文件遵循Kubernetes API的v1版本;
2)描述的资源类型是pod;
3)资源名称为kubia-manual;
4)该pod由基于luksa/kubia镜像的单个容器组成;
5)容器名称为kubia;
6)容器监听的端口是8080;

5 pod删除

按名称删除
$ kubectl delete po pod_name
其中,pod_name为pod名称;删除命令指示uk8s终止该pod中所有容器,k8s向进程发送一个SIGTERM信号并等待一定的秒数(默认30s),使得其正常关闭,若未及时关闭,则通过SIGKILL终止进程。

删除多个pod
$ kubectl delete po pod_name1 pod_name2
多个pod删除使用空格隔开;

按照标签删除
$ kubectl delete po -l tag_key=tag_value
其中,tag_key为标签健,tag_value为标签值;

按照整个命名空间删除
$ kubectl delete po --all -ns namespace_name
其中,namespace_name为命名空间名称

Kubernetes-Pod(三)相关推荐

  1. Linux企业运维——Kubernetes(三)Pod资源清单

    Linux企业运维--Kubernetes(三)Pod资源清单 文章目录 Linux企业运维--Kubernetes(三)Pod资源清单 一.资源 1.1.资源分类 1.2.资源清单 二.实践操作 2 ...

  2. 在Kubernetes Pod中使用Service Account访问API Server

    2019独角兽企业重金招聘Python工程师标准>>> 在Kubernetes Pod中使用Service Account访问API Server 博客分类: Kubernetes ...

  3. k8s 查看ip地址属于哪个pod_一个简单的例子理解Kubernetes的三种IP地址类型

    很多Kubernetes的初学者对Kubernetes里面三种不同的IP地址和工作机制理解得不是很清楚. 本文我们通过一个最简单的例子来学习. 用如下命令行创建一个基于nginx的deployment ...

  4. 容器编排技术 -- Kubernetes Pod 生命周期

    容器编排技术 -- Kubernetes Pod 生命周期 1 Pod phase 2 Pod 状态 3 容器探针 3.1 该什么时候使用存活(liveness)和就绪(readiness)探针? 4 ...

  5. 浅析Kubernetes Pod重启策略和健康检查

    使用Kubernetes的主要好处之一是它具有管理和维护集群中容器的能力,几乎可以提供服务零停机时间的保障.在创建一个Pod资源后,Kubernetes会为它选择worker节点,然后将其调度到节点上 ...

  6. Kubernetes pod的生命周期

    本文翻译自:Kubernetes: Lifecycle of a Pod 原文出处:Kubernetes: Lifecycle of a Pod - DZone Integration 参考:Cont ...

  7. 【4】Kubernetes pod资源

    容器与pod资源对象 为什么Kubernetes要引入pod的概念,而不直接操作Docker容器 首先我们要明确一个概念,Kubernetes并不是只支持Docker这一个容器运行时,通过我的另一篇文 ...

  8. Kubernetes的三种集群外部访问方式及使用场景说明:NodePort、LoadBalancer和Ingress

    Kubernetes的三种外部访问方式:NodePort.LoadBalancer和Ingress 最近有些同学问我 NodePort,LoadBalancer 和 Ingress 之间的区别.它们都 ...

  9. 如何查看Kubernetes pod yaml文件的在线语法帮助

    我们在撰写Kubernetes pod的yaml文件时,一定都为Kubernetes yaml文件复杂的语法苦恼过. 其实Kubernetes是提供了很好的在线(online)文档的. 命令: kub ...

  10. 容器编排技术 -- Kubernetes Pod 优先级和抢占

    容器编排技术 -- Kubernetes Pod 优先级和抢占 1 怎么样使用优先级和抢占 2 启用优先级和抢占 3 PriorityClass 3.1 PriorityClass 示例 4 Pod ...

最新文章

  1. 2020 ACM Fellows 名单出炉,13 名华人入选,7 名来自国内!
  2. R语言break函数和next函数实战
  3. tcp协议缓冲区溢出_【Socket 网络通信】TCP/IP 简介1
  4. boost::mpl模块实现set相关的测试程序
  5. Universe Naming Rule
  6. 如何用Java编写最快的表达式评估器之一
  7. CentOS 5.5 使用 EPEL 和 RPMForge 软件库
  8. 暴风影音皮肤_暴风影音彻底凉了?安利一款良心的本地播放器
  9. 江湖人物之滴滴打车张博
  10. st计算机编程语言,SoMAChineST编程语言介绍.pdf
  11. php三极管导通条件,关于NPN三极管的导通条件分析
  12. python学习一点 快乐一点(2)乱序整数序列两数之和绝对值最小
  13. pydev debugger: warning: trying to add breakpoint to file that does not exist
  14. 三运放差分放大电路分析_三运放组成的差分放大器电路图及特点
  15. Excel函数带你看透身份证号
  16. MATLAB repmat函数的使用
  17. Zhong__Centos配置NTP时间同步
  18. 印第安人与中国人的关系
  19. [经验总结]Perl模块使用 = 简短例子代码集合
  20. [教程] 米4终极救黑砖教程 有用

热门文章

  1. 操作系统(李治军) L11内核级线程
  2. 一道题:给定一整数序列A1,A2,...,An(可能有负数),求A1到An的一个自序列,使得Ai到Aj的和最大。例如:整数序列-2,11,-4,13,-5,2,-5,-3,12,-9的最大子序列为21
  3. PS命令总结-实战经验
  4. “CSDN开发助手”:【必备插件 · 安装与使用教程】
  5. vue项目打包:npm run build 进程卡死
  6. 后端代码之服务端 - MongoDB数据库的连接、重启测试与(Studio3T)查看 - 讲解篇
  7. 服务器打包运营级H5商城源码
  8. laravel mysql注入_PHP 项目中单独使用 Laravel Eloquent 查询语句来避免 SQL 注入
  9. js 网页嵌套在div的方法
  10. 功能强大的国外商业PHP在线教育系统LMS源码/直播课程系统