阿里云容器服务特性体验 – 在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》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
488 8
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
|
9月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
965 3
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
ACK One注册集群已正式支持ACS(容器计算服务)算力,为企业的容器化工作负载提供更多选择和更强大的计算能力。
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
485 10
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
|
边缘计算 调度 对象存储
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
介绍如何使用ACK Edge与虚拟节点满足DeepSeek部署的弹性需求。
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
1041 2

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版
  • 推荐镜像

    更多