阿里云容器服务特性体验 – 在Pod中共享进程名字空间

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 什么是Pod** 众所周知,Pod有点像传统部署环境里“虚拟机”的角色,它是K8S调度的最小单元,Pod的设计理念是为了支持多个容器在一个Pod中共享网络和文件系统。处于一个Pod中的多个容器可以共享的资源包括:Volumes、Network命名空间、IPC命名空间、UTS命名空间、PID命名空间等,其中PID命名空间共享在1.10版本引入,在1.12版本promote到beta特性,阿里云的容器服务V1.12版本支持在4月1日发布,引入了共享进程名字空间能力,本次将要体验的就是这个特性。

什么是Pod

众所周知,Pod有点像传统部署环境里“虚拟机”的角色,它是K8S调度的最小单元,Pod的设计理念是为了支持多个容器在一个Pod中共享网络和文件系统。处于一个Pod中的多个容器可以共享的资源包括:Volumes、Network命名空间、IPC命名空间、UTS命名空间、PID命名空间等,其中PID命名空间共享在1.10版本引入,在1.12版本promote到beta特性,阿里云的容器服务V1.12版本支持在4月1日发布,引入了共享进程名字空间能力,本次将要体验的就是这个特性。

共享进程名字空间特性

启用共享进程名字空间(Share Process Namespace)后,同一个Pod内的所有容器之间的进程是可见的,这在很多场景下是非常有用的,比如用Sidecar方式采集日志,在每个Pod中运行一个Sidecar的日志agent容器,用于采集该Pod主容器产生的日志,可以灵活的对日志进行配置、支持超大日志量采集、日志高度可定制等,或者对一些并不包含调试工具的容器镜像进行查错等,这些都要能够访问同一个Pod内的其他容器才行。

阿里云的容器服务缺省没有启用这个特性,也就是说缺省的shareProcessNamespace值为false,需要手动开启才行,下面我们通过一个小实验来看如何开启和开启后的效果。

缺省不共享进程名字空间

创建容器服务集群,在此集群上创建应用,使用公版的镜像部署运行nginx和mysql两个不同的容器,不带shareProcessNamespace

image

添加容器1(nginx容器):

image

添加容器2(mysql容器):

image

确定运行,很快就可以看到生成两个Pod,每个Pod里都有nginx和mysql两个容器在运行:

image

登录其中一个容器,先安装ps命令工具,用于查看进程状况,容器缺省不包含ps工具:

image

安装完成后,登录nginx容器,查看进程情况:

image

登录同一个Pod下的mysql容器,查看进程情况:

image

可以看出nginx、mysql两个容器中互相查不到对方的进程,且两个容器中的pid是有重复的,可以看出两个容器之间进程不共享

配置Pod共享进程名字空间

用以下yaml创建容器:

(见deploy.yaml,用word不要放代码和排版,先放文件中,发布的时候再贴上去)

注意此处,我们指定了共享进程名字空间:

image

生成的应用及容器组:

image
image

测试验证:

image

同一个容器上既能看到nginx,又能看到mysql,说明pod内的容器共享了进程名字空间

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
打赏
0
0
0
0
1
分享
相关文章
阿里云云效产品使用合集之健康检查是否可以探测到失败的进程的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
Linux进程——进程地址空间
Linux进程——进程地址空间
77 2
【Linux】深挖进程地址空间
【Linux】深挖进程地址空间
56 0
【Linux】进程的地址空间
【Linux】进程的地址空间
Linux:进程地址空间
Linux:进程地址空间
91 10
|
9月前
|
【linux】进程的地址空间
【linux】进程的地址空间
62 0
C++之vector容器操作(构造、赋值、扩容、插入、删除、交换、预留空间、遍历)
C++之vector容器操作(构造、赋值、扩容、插入、删除、交换、预留空间、遍历)
437 0
容器服务Kubernetes版产品使用合集之集群节点和 pod 实现自动扩缩容如何解决
容器服务Kubernetes版,作为阿里云提供的核心服务之一,旨在帮助企业及开发者高效管理和运行Kubernetes集群,实现应用的容器化与微服务化。以下是关于使用这些服务的一些建议和合集,涵盖基本操作、最佳实践、以及一些高级功能的使用方法。
【Linux-14】进程地址空间&虚拟空间&页表——原理&知识点详解
【Linux-14】进程地址空间&虚拟空间&页表——原理&知识点详解

相关产品

  • 容器计算服务
  • 目录
    目录
    AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等