k8s之pause容器
Pause容器 全称infrastucture container(又叫infra)基础容器。
我们在kubelet的配置文件中心都指定了如下参数,这是指定拉取的pause镜像地址。
more /etc/kubernetes/kubelet······--pod-infra-container-image=hub.test.tech/library/pod-infrastructure:latest"······
Pause的作用
我们看下在node节点上都会起很多pause容器,和pod是一一对应的。
每个Pod里运行着一个特殊的被称之为Pause的容器,其他容器则为业务容器,这些业务容器共享Pause容器的网络栈和Volume挂载卷,因此他们之间通信和数据交换更为高效,在设计时我们可以充分利用这一特性将一组密切相关的服务进程放入同一个Pod中。同一个Pod里的容器之间仅需通过localhost就能互相通信。
kubernetes中的pause容器主要为每个业务容器提供以下功能:
PID命名空间:Pod中的不同应用程序可以看到其他应用程序的进程ID。
网络命名空间:Pod中的多个容器能够访问同一个IP和端口范围。
IPC命名空间:Pod中的多个容器能够使用SystemV IPC或POSIX消息队列进行通信。
UTS命名空间:Pod中的多个容器共享一个主机名;Volumes(共享存储卷):
Pod中的各个容器可以访问在Pod级别定义的Volum
如下图所示:
我们首先在节点上运行一个pause容器。
docker run -d --name pause -p 8880:80 --ipc=host registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1
然后再运行一个nginx容器,
docker run -d --name nginx --net=container:pause --pid=container:pause --ipc=container:pause nginx
然后再为ghost创建一个应用容器,这是一款博客软件。
docker run -d --name ghost --net=container:pause --ipc=container:pause --pid=container:pause ghost
pause容器将内部的80端口映射到宿主机的8880端口,pause容器在宿主机上设置好了网络namespace后,nginx容器加入到该网络namespace中,我们看到nginx容器启动的时候指定了--net=container:pause
,ghost容器同样加入到了该网络namespace中,这样三个容器就共享了网络,互相之间就可以使用localhost直接通信,--ipc=contianer:pause --pid=container:pause
就是三个容器处于同一个namespace中,init进程为pause,这时我们进入到ghost容器中查看进程情况。
root@weizhibiao:~# docker exec -it ghost bash
root@cfa367869c60:/var/lib/ghost# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 13:12 ? 00:00:00 /pause
root 756 0 0 13:37 ? 00:00:00 nginx: master process nginx -g daemon off;
101 785 756 0 13:37 ? 00:00:00 nginx: worker process
node 786 0 2 13:37 ? 00:00:08 node current/index.js
root 1181 0 0 13:41 pts/0 00:00:00 bash
root 1495 1181 0 13:42 pts/0 00:00:00 ps -ef
root@cfa367869c60:/var/lib/ghost#
在ghost容器中同时可以看到pause和nginx容器的进程,并且pause容器的PID是1。而在kubernetes中容器的PID=1的进程即为容器本身的业务进程。
k8s之pause容器相关推荐
- k8s基础概念:pause容器和pod控制器类型
pause容器的作用 pause容器:只要是有容器启动,pause就会启动. pod内的其他容器会共用pause容器的网络栈和存储卷. 容器是没有自己的IP地址的,都共用pause容器的. 要保证po ...
- pause容器作用_容器编排之战(四)连载
Master Master主要负责资源调度,控制副本,和提供统一访问集群的入口.--核心节点也是管理节点 Node Node是Kubernetes集群架构中运行Pod的服务节点(亦叫agent或min ...
- 梗概Kubernetes中的Pause容器为内部镜像源
问题:公司内网由于防火墙的原因,上不了外网,而这个时候k8s集群pods以来的pasue容器是依赖的外部镜像源,这会造成k8s节点重启后无法起pods. 解决: 我们知道在kubelet的配置中有这样 ...
- 为什么k8s中docker容器的启动命令必须是前台执行?
k8s中docker容器的启动命令(在yaml的command字段中配置)必须是前台执行,不能使用后台执行程序, nohup ./start.sh & 否则kubelet创建了包含这个容器的p ...
- pause容器作用_Kubernetes学习之pause容器
根据代码看到,pause容器运行着一个非常简单的进程,它不执行任何功能,一启动就永远把自己阻塞住了, 它的作用就是扮演PID1的角色,并在子进程称为"孤儿进程"的时候,通过调用wa ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- pause容器作用_kubernetes中的Pause容器如何理解?
前几篇文章都是讲的Kubernetes集群和相关组件的部署,但是部署只是入门的第一步,得理解其中的一些知识才行.今天给大家分享下Kubernets的pause容器的作用. Pause容器 全称infr ...
- Kubernetes Pod 网络精髓:pause 容器详解
福利 文末留言送 5 本由浙大SEL实验室硕士杜军大佬撰写的<Kubernetes 网络权威指南:基础.原理与实践>,希望大家点击文末的留言小程序积极留言,每个人都有机会. 前言 当检查你 ...
- 教程get | K8S部署OpenStack容器云(下)
如何借助OpenStack Kolla-K8S项目,通过K8S对OpenStack进行容器化部署?并最终部署一套All-In-One类型的OpenStack容器云?让我们继续部署: 部署kolla-k ...
最新文章
- Vmware中安装RHEL5
- 华北水利水电大学计算机研究生调剂,2018年华北水利水电大学硕士研究生相关专业接受调剂公告...
- 学习笔记Hive(二)—— Hive安装配置
- 【NLP】万字长文带你解读『虚假新闻检测』最新进展
- java框架ssm整合_SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)
- UltraEdit批量删除关键字所在的指定行
- remote_os_authent参数测试!
- 描写火车站场景_关于描写火车站的句子
- Emlog使用qq头像作为评论头像
- batchplot 3.6.2 插件_直播插件体系设计
- 分段函数返回字符c语言,C++对cin输入字符的判断及分段函数处理方法示例
- oracle客观题题库,oralce题库及答案.doc
- EXC_BAD_ACCESS(code=2,address=0xcc 异常解决 及 建议不要在子线程中刷新界面
- Matlab Tricks(二十五) —— 二维图像的 shuffle
- matlab2c使用c++实现matlab函数系列教程-wilkinson函数
- mysql 安装问题汇总_Windows 10 下MySQL安装及常见问题
- 使用 JMeter 进行API接口压力测试
- Android Studio Entry name *.xml collided解决方案
- 全球跨境电商平台有哪些?中国卖家占多少?
- 永善县黄华镇大永高速通车了