阿里云容器服务特性体验 – 在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
分享
相关文章
|
1月前
|
10.HarmonyOS Next布局进阶:嵌套Flex容器与空间分配策略
在HarmonyOS Next的ArkUI框架中,Flex布局是构建用户界面的核心技术之一。通过嵌套使用Flex容器,我们可以创建复杂而灵活的界面结构,满足各种应用场景的需求。本教程将深入探讨如何在HarmonyOS Next中使用嵌套Flex容器实现复杂布局,以及如何合理分配和控制空间。
54 0
如何在宿主主机运行容器中的php守护进程
在Docker容器中同时运行多个程序(如Nginx+PHP+Ftp)时,需用`docker exec`命令启动额外服务。首先通过`php -v`查看PHP版本,再用`which php-fpm7.4`确认PHP安装路径,通常返回`/usr/sbin/php-fpm7.4`。最后直接运行该路径启动PHP-FPM服务,确保其正常工作。
100 14
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具
Docker 容器凭借轻量级和高效的特性,成为应用部署的重要工具。本文探讨了 Docker 如何通过 Namespace 和 Cgroups 实现 CPU、内存、网络和存储资源的隔离,提高系统安全性和资源利用率,以及面临的挑战和应对策略。
137 1
在Docker中,可以在一个容器中同时运行多个应用进程吗?
在Docker中,可以在一个容器中同时运行多个应用进程吗?
阿里云云效产品使用合集之健康检查是否可以探测到失败的进程的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
Docker Compose凭借其简单易用的特性,已经成为开发者在构建和管理多容器应用时不可或缺的工具。
Docker Compose是容器编排利器,简化多容器应用管理。通过YAML文件定义服务、网络和卷,一键启动应用环境。核心概念包括服务(组件集合)、网络(灵活通信)、卷(数据持久化)。实战中,编写docker-compose.yml,如设置Nginx和Postgres服务,用`docker-compose up -d`启动。高级特性涉及依赖、环境变量、健康检查和数据持久化。最佳实践涵盖环境隔离、CI/CD、资源管理和安全措施。案例分析展示如何构建微服务应用栈,实现一键部署。Docker Compose助力开发者高效驾驭复杂容器场景。
158 1
【Linux】深挖进程地址空间
【Linux】深挖进程地址空间
75 0

相关产品

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

    你好,我是AI助理

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