一、Pod对象



1. 资源共享实现机制
1)共享网络



  • 基本概念
    • 实现方式:通过将业务容器网络加入到负责网络的容器(infra container)实现网络共享
    • 核心特点:共享网络协议栈(包括TCP/IP、MAC地址、端口等),打破网络命名空间隔离
    • 典型示例:Nginx主容器与busybox边车容器共享infra container网络,可通过localhost互相访问
  • 实现机制
    • 基础镜像:使用pause:3.4.1镜像创建infra container
    • 容器关系:所有业务容器(如Nginx、busybox)都会关联到同一个infra container
    • 隐藏特性:在k8s层面不可见,需通过节点docker ps命令查看
  • 实践验证
    • 验证方法:
      • 通过docker ps | grep pod-web查看实际运行的三个容器(含隐藏的infra container)
      • infra container命名规则:k8s_POD_<pod名称>_<命名空间>_<ID>
    • 镜像特征:
      • 体积仅几MB大小
      • 运行简单程序保持容器不退出
      • 所有Pod都会自动创建对应的infra container
  • 关键要点
    • 识别特征:镜像名称为registry.aliyuncs.com/google_containers/pause:3.4.1
    • 核心作用:专门负责维护Pod的网络栈
    • 部署特点:每个Pod对应一个独立的infra container实例
2)共享存储



  • Pod共享网络与存储示例
    • 共享网络机制
      • 实现方式:将业务容器网络加入到"负责网络的容器"中实现网络共享
      • 访问验证:通过127.0.0.1可以访问另一个容器,证明网络命名空间已共享
      • 典型应用:nginx+php架构中,php可以通过127.0.0.1:9000被nginx访问
    • 共享存储机制
      • 数据卷类型:使用emptyDir实现容器间共享存储
      • 挂载配置:
        • 主容器nginx挂载到/usr/share/nginx/html
        • 边车容器busybox挂载到/data
      • 验证方法:在边车容器/data目录创建文件,主容器能立即读取
    • 配置示例解析
      • 容器顺序:容器定义顺序不影响角色,完全由业务功能决定
      • volumeMounts:通过相同名称的volume实现目录共享
      • emptyDir特性:临时存储空间,Pod删除后数据丢失
    • 实际操作演示
      • 验证步骤:
        • 在busybox容器的/data目录创建index.html
        • 通过wget 127.0.0.1验证nginx能访问该文件
        • 在nginx容器修改文件内容,busybox容器同步可见
      • 应用场景:日志采集场景中,主容器写日志到共享目录,边车容器负责日志收集
    • 常见问题解答
      • 网络隔离:默认每个容器有独立网络命名空间,共享网络打破这种隔离
      • 多端口暴露:一个Pod可以暴露多个端口,通过Service配置多个targetPort
      • 权限问题:共享目录的读写权限由挂载配置决定,不受容器角色限制
      • 与Docker区别:原理类似Docker的volume共享,但由K8s统一管理
2. 管理命令
1)Pod创建
  • YAML方式:通过kubectl apply -f pod.yaml命令创建Pod,其中YAML文件需包含apiVersion、kind、metadata和spec等必要字段
  • 命令行方式:使用kubectl run nginx --image=nginx直接创建运行nginx镜像的Pod
2)Pod查看
  • 列表查看:kubectl get pods命令可列出当前所有Pod的基本信息
  • 详情查看:kubectl describe pod <Pod名称>可查看指定Pod的详细配置和状态信息
3)日志管理
  • 基础日志:kubectl logs <Pod名称>查看Pod的标准输出日志
  • 容器指定:添加-c CONTAINER参数可查看多容器Pod中特定容器的日志
  • 实时跟踪:使用-f参数可以实时跟踪日志输出(类似tail -f功能)
4)容器交互
  • 终端接入:kubectl exec <Pod名称> [-c CONTAINER] -- bash命令可进入Pod容器的bash终端
  • 多容器选择:对于多容器Pod,需要通过-c参数指定要进入的容器名称
5)Pod删除
  • 删除操作:使用kubectl delete pod <Pod名称>命令可删除指定的Pod资源
  • 注意事项:删除后Kubernetes可能会根据控制器配置自动重建Pod
二、知识小结

知识点

核心内容

考试重点/易混淆点

难度系数

Pod网络共享机制

通过infra container实现网络协议栈共享(TCP/IP/MAC/端口等),打破网络命名空间隔离

共享原理:所有容器加入同一个infra container网络

⭐⭐⭐

Pod数据卷共享

使用emptyDir卷实现多容器目录共享(如Nginx日志目录与边车容器采集目录)

验证方法:在边车容器修改文件后主容器可实时读取

⭐⭐

边车容器(Sidecar)模式

主容器(如Nginx)与辅助容器(如日志采集器)通过共享网络/存储协同工作

典型场景:Nginx+PHP分离部署时通过127.0.0.1:9000通信

⭐⭐⭐⭐

infra container

每个Pod隐藏的基础容器,使用k8s.gcr.io/pause镜像维护共享网络

关键特征:镜像体积小(仅几MB),保持常驻不退出

⭐⭐

Service多端口暴露

一个Pod内多个容器端口可通过Service同时暴露(如Nginx 80和辅助服务8080)

配置要点:在YAML中定义多个targetPort

⭐⭐⭐

网络验证方法

在边车容器通过127.0.0.1访问主容器服务(如wget 127.0.0.1:80)

易错点:误认为需配置独立IP

⭐⭐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/91680.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91680.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/91680.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

防爆手机是什么?能用普通手机改装吗?

在石油开采平台的井架之上&#xff0c;在化工车间的反应釜旁&#xff0c;在煤矿深达千米的巷道中&#xff0c;一群特殊的工作人员正使用着看似普通的通讯设备。这些设备外壳上醒目的Ex防爆认证标志&#xff0c;揭示着其与众不同的身份——防爆手机。这类专为易燃易爆环境设计的…

gem install报错解析

报错内容 [rootlocalhost ~]# gem install bundler Fetching: bundler-2.6.9.gem (100%) ERROR: Error installing bundler:bundler requires Ruby version > 3.1.0. The current ruby version is 2.5.0.解决方案&#xff08;任选其一&#xff09; 这个错误表明你当前的 Ru…

css 如何实现大屏4个占位 中屏2个 小屏幕1个

1、 使用grid.container {display: grid;grid-template-columns: repeat(4, 1fr);gap: 20px;border: 1px solid red;width: 400px;height: 400px;}media (max-width: 768px) {.container {grid-template-columns: 1fr;}}media (min-width: 768px) and (max-width: 992px) {.con…

Redis学习系列之—— JDHotKey 热点缓存探测系统

一、为什么需要热点缓存探测 在回答这个问题前&#xff0c;我们先考虑一下&#xff1a;为什么光用 Redis 还不够&#xff0c;还需要使用本地缓存&#xff1f; 一般来说&#xff0c;Redis 集群的性能能抗住几十万并发&#xff0c;能够应付大部分情况。但对于一些头部 APP&#x…

Linux 安全加固

Linux 安全加固需要从​​用户权限、系统服务、网络防护、日志审计、文件系统、访问控制​​等多个维度入手&#xff0c;目标是减少攻击面、限制未授权访问、提升系统健壮性。以下是​​详细步骤实操示例​​&#xff0c;覆盖主流 Linux 发行版&#xff08;如 CentOS/Ubuntu&am…

【Docker#2】容器历史发展 | 虚拟化实现方式

一、前言 – 容器技术发展史 容器技术是现今计算技术的重要组成部分&#xff0c;其发展历程可以追溯到很早的计算机系统提供的进程隔离工具。以下是容器技术的发展历程&#xff0c;其中涵盖了从早期的进程隔离技术到现代云计算和云原生的演变&#xff1a; ① Jail 时代 1979 年…

React + Mermaid 图表渲染消失问题剖析及 4 种代码级修复方案

Mermaid 是一个流行的库&#xff0c;它可以将文本图表&#xff08;例如 graph LR; A-->B;&#xff09;转换为 SVG 图表。在静态 HTML 页面中&#xff0c;Mermaid 会查找 <pre class"mermaid"> 代码块&#xff0c;并在页面加载时将它们替换为渲染后的图表。它…

[Element]修改el-pagination背景色

[Element]修改el-pagination背景色 代码 <el-pagination:current-page.sync"queryParams.current":page-size.sync"queryParams.size":page-sizes"[10, 20, 50, 100]"layout"prev, pager, next, jumper, sizes":total"queryP…

Docker 可用镜像列表

Docker 镜像源列表&#xff08;7月15日更新-长期&免费&#xff09;_dockerhub国内镜像源列表-CSDN博客

低代码可视化工作流的系统设计与实现路径研究

一、背景分析在数字化转型不断深化的背景下&#xff0c;企业业务流程呈现出高度定制化与动态调整的趋势&#xff0c;传统信息系统在开发周期、实施成本与扩展能力上的局限性日益凸显&#xff0c;已难以支撑快速响应和敏捷迭代的实际需求。面向这一现实挑战&#xff0c;基于 BPM…

mac mlx大模型框架的安装和使用

mlx是apple平台的大模型推理框架&#xff0c;对mac m1系列处理器支持较好。 这里记录mlx安装和运行示例。 1 安装mlx框架 conda create -n mlx python3.12 conda activate mlx pip install mlx-lm 2 运行mlx测试例 以下是测试程序&#xff0c;使用方法和hf、vllm等推理框架基…

JAVA 使用Apache POI合并Word文档并保留批注的实现

一、需求背景 在实际工作中&#xff0c;我们经常需要将多个Word文档合并成一个文件。但当文档中包含批注&#xff08;Comments&#xff09;时&#xff0c;传统的复制粘贴会导致批注丢失或引用错乱。本文将介绍如何通过Java和Apache POI库实现保留批注及引用关系的文档合并功能。…

Linux的服务管理工具:`systemd`(`systemctl`)和`SysVinit ` 笔记250718

Linux的服务管理工具:systemd(systemctl)和SysVinit 笔记250718 Linux的服务管理工具 Linux 的服务管理工具随着发行版和初始化系统的发展而演变。以下是主要的服务管理工具及其对应的初始化系统&#xff1a; 1. systemd (现代主流标准) 初始化系统&#xff1a; 是绝大多数…

Couchbase 可观测性最佳实践

Couchbase 介绍 Couchbase 是一个开源的分布式 NoSQL 数据库&#xff0c;专为高性能和高可扩展性设计&#xff0c;适用于实时数据处理的企业应用。它结合键值存储和文档数据库的优势&#xff0c;支持 JSON 文档存储&#xff0c;并通过 N1QL&#xff08;类 SQL 查询语言&#x…

构建基于MCP的LLM聊天机器人客户端开发指南

引言 在当今人工智能技术快速发展的时代&#xff0c;大型语言模型(LLM)已成为构建智能应用的核心组件。MCP(Modular Conversational Platform)作为一个强大的对话平台&#xff0c;为开发者提供了将LLM能力与自定义工具集成的标准化方式。本文将详细介绍如何使用Python开发一个…

接口测试的原则、用例与流程详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、接口的介绍软件测试中&#xff0c;常说的接口有两种&#xff1a;图形用户接口&#xff08;GUI&#xff0c;人与程序的接口&#xff09;、应用程序编程接口&am…

ubuntu 22.02 带外进单用户拯救系统

不停地按 F7 &#xff0c;然后进到 menu &#xff0c;选择 ubuntu &#xff0c;然后按下 ESC &#xff0c;然后瞬间会刷一个 ubuntu 的选项&#xff08;默认是在第一的位置&#xff0c;直接快速按下 e&#xff09;即可进入单用户模式。 找到类似 linux /boot/vmlinuz-xxx rootU…

Java-75 深入浅出 RPC Dubbo Java SPI机制详解:从JDK到Dubbo的插件式扩展

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; AI炼丹日志-30-新发布【1T 万亿】参数量大模型&#xff01;Kim…

【橘子分布式】gRPC(编程篇-上)

一、简介 我们之前学习了grpc的一些理论知识&#xff0c;现在我们开始正式进入编程环节。 我们的项目结构和之前的thrift结构还是一样的&#xff0c;一个common,一个client&#xff0c;一个server。只不过在grpc这里common它一般叫做api模块。还是放置一些公共的实体类&#x…

IOS 18下openURL 失效问题

突然有一天有玩家反馈说应用打开外部连接打不开了&#xff0c;于是查了一下&#xff0c;报错&#xff1a;BUG IN CLIENT OF UIKIT: The caller of UIApplication.openURL(_:) needs to migrate to the non-deprecated UIApplication.open(_:options:completionHandler:). Force…