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

简介: 什么是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内的容器共享了进程名字空间

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
供应链 安全 Cloud Native
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
阿里云飞天企业版容器系列产品获中国信息通信研究院【可信云·容器平台安全能力】先进级认证,这是飞天企业版容器产品获得《等保四级PaaS平台》和《 云原生安全配置基线规范V2.0》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
431 8
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
|
7月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
759 2
|
10月前
|
UED 容器
10.HarmonyOS Next布局进阶:嵌套Flex容器与空间分配策略
在HarmonyOS Next的ArkUI框架中,Flex布局是构建用户界面的核心技术之一。通过嵌套使用Flex容器,我们可以创建复杂而灵活的界面结构,满足各种应用场景的需求。本教程将深入探讨如何在HarmonyOS Next中使用嵌套Flex容器实现复杂布局,以及如何合理分配和控制空间。
288 0
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
441 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
人工智能 Kubernetes Serverless
阿里云向全球客户推出创新容器计算服务ACS,可降低算力成本高达55%
阿里云向全球客户推出创新容器计算服务ACS,可降低算力成本高达55%
|
弹性计算 监控 持续交付
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
358 0
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版