Kubernetes-Pod(三)
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(三)相关推荐
- Linux企业运维——Kubernetes(三)Pod资源清单
Linux企业运维--Kubernetes(三)Pod资源清单 文章目录 Linux企业运维--Kubernetes(三)Pod资源清单 一.资源 1.1.资源分类 1.2.资源清单 二.实践操作 2 ...
- 在Kubernetes Pod中使用Service Account访问API Server
2019独角兽企业重金招聘Python工程师标准>>> 在Kubernetes Pod中使用Service Account访问API Server 博客分类: Kubernetes ...
- k8s 查看ip地址属于哪个pod_一个简单的例子理解Kubernetes的三种IP地址类型
很多Kubernetes的初学者对Kubernetes里面三种不同的IP地址和工作机制理解得不是很清楚. 本文我们通过一个最简单的例子来学习. 用如下命令行创建一个基于nginx的deployment ...
- 容器编排技术 -- Kubernetes Pod 生命周期
容器编排技术 -- Kubernetes Pod 生命周期 1 Pod phase 2 Pod 状态 3 容器探针 3.1 该什么时候使用存活(liveness)和就绪(readiness)探针? 4 ...
- 浅析Kubernetes Pod重启策略和健康检查
使用Kubernetes的主要好处之一是它具有管理和维护集群中容器的能力,几乎可以提供服务零停机时间的保障.在创建一个Pod资源后,Kubernetes会为它选择worker节点,然后将其调度到节点上 ...
- Kubernetes pod的生命周期
本文翻译自:Kubernetes: Lifecycle of a Pod 原文出处:Kubernetes: Lifecycle of a Pod - DZone Integration 参考:Cont ...
- 【4】Kubernetes pod资源
容器与pod资源对象 为什么Kubernetes要引入pod的概念,而不直接操作Docker容器 首先我们要明确一个概念,Kubernetes并不是只支持Docker这一个容器运行时,通过我的另一篇文 ...
- Kubernetes的三种集群外部访问方式及使用场景说明:NodePort、LoadBalancer和Ingress
Kubernetes的三种外部访问方式:NodePort.LoadBalancer和Ingress 最近有些同学问我 NodePort,LoadBalancer 和 Ingress 之间的区别.它们都 ...
- 如何查看Kubernetes pod yaml文件的在线语法帮助
我们在撰写Kubernetes pod的yaml文件时,一定都为Kubernetes yaml文件复杂的语法苦恼过. 其实Kubernetes是提供了很好的在线(online)文档的. 命令: kub ...
- 容器编排技术 -- Kubernetes Pod 优先级和抢占
容器编排技术 -- Kubernetes Pod 优先级和抢占 1 怎么样使用优先级和抢占 2 启用优先级和抢占 3 PriorityClass 3.1 PriorityClass 示例 4 Pod ...
最新文章
- 2020 ACM Fellows 名单出炉,13 名华人入选,7 名来自国内!
- R语言break函数和next函数实战
- tcp协议缓冲区溢出_【Socket 网络通信】TCP/IP 简介1
- boost::mpl模块实现set相关的测试程序
- Universe Naming Rule
- 如何用Java编写最快的表达式评估器之一
- CentOS 5.5 使用 EPEL 和 RPMForge 软件库
- 暴风影音皮肤_暴风影音彻底凉了?安利一款良心的本地播放器
- 江湖人物之滴滴打车张博
- st计算机编程语言,SoMAChineST编程语言介绍.pdf
- php三极管导通条件,关于NPN三极管的导通条件分析
- python学习一点 快乐一点(2)乱序整数序列两数之和绝对值最小
- pydev debugger: warning: trying to add breakpoint to file that does not exist
- 三运放差分放大电路分析_三运放组成的差分放大器电路图及特点
- Excel函数带你看透身份证号
- MATLAB repmat函数的使用
- Zhong__Centos配置NTP时间同步
- 印第安人与中国人的关系
- [经验总结]Perl模块使用 = 简短例子代码集合
- [教程] 米4终极救黑砖教程 有用
热门文章
- 操作系统(李治军) L11内核级线程
- 一道题:给定一整数序列A1,A2,...,An(可能有负数),求A1到An的一个自序列,使得Ai到Aj的和最大。例如:整数序列-2,11,-4,13,-5,2,-5,-3,12,-9的最大子序列为21
- PS命令总结-实战经验
- “CSDN开发助手”:【必备插件 · 安装与使用教程】
- vue项目打包:npm run build 进程卡死
- 后端代码之服务端 - MongoDB数据库的连接、重启测试与(Studio3T)查看 - 讲解篇
- 服务器打包运营级H5商城源码
- laravel mysql注入_PHP 项目中单独使用 Laravel Eloquent 查询语句来避免 SQL 注入
- js 网页嵌套在div的方法
- 功能强大的国外商业PHP在线教育系统LMS源码/直播课程系统