CKA考试必备:解锁Pod封装多容器的高级技巧!

news2025/1/19 9:50:21

往期精彩文章 :

  • 提升CKA考试胜算:一文带你全面了解RBAC权限控制!
  • 揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
  • CKA认证必备:掌握k8s网络策略的关键要点
  • 提高CKA认证成功率,CKA真题中的节点维护全攻略!
  • 数据无忧,一学就会:掌握CKA认证必备的etcd备份与还原秘籍!
  • 提升你的云技能:深入了解CKA认证之k8s升级秘籍!
  • 揭秘CKA认证:Service四层代理的神秘面纱
  • 提升CKA认证成功率:Kubernetes Ingress七层代理全攻略!
  • CKA考生注意:这些Deployment要点能助你一臂之力!
  • 从NodeSelector到NodeAffinity:探索Kubernetes节点亲和性的进化之路
  • 提升CKA考试效率:精准统计Ready状态Node节点的实用攻略

在Kubernetes的世界里,Pod是最小的可部署单元,而有时候我们需要在同一个Pod中运行多个容器,以便它们可以紧密协作。本文将深入讲解如何封装多个容器在一个Pod中,释放Kubernetes的强大潜能。

Pod基础概念

Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的。

Pod

在Kubrenetes集群中Pod有如下两种使用方式:

  1. 一个Pod中运行一个容器:

每个pod中一个容器的模式是最常见的用法,在这种使用方式中,你可以把pod想象成是单个容器的封装,kuberentes管理的是Pod而不是直接管理容器。

  1. 在一个Pod中同时运行多个容器:

一个Pod中也可以同时封装几个需要紧密耦合互相协作的容器,它们之间共享资源。这些在同一个Pod中的容器可以互相协作成为一个service单位,比如一个容器共享文件,另一个"sidecar"容器来更新这些文件。Pod将这些容器的存储资源作为一个实体来管理。

例如,你可能有一个容器,为共享卷中的文件提供 Web 服务器支持,以及一个单独的 Sidercar 容器负责从远端更新这些文件,如下图所示:

有些 Pod 具有 Init 容器和 应用容器。 Init 容器默认会在启动应用容器之前运行并完成。

案例演示

一个Pod中运行一个容器

下面是一个 Pod 示例,它由一个运行镜像 nginx:1.14.2 的容器组成。这种就是一个Pod中运行一个容器。

apiVersion: v1
kind: Pod
metadata:
  name: simple-pod
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80

要创建上面显示的 Pod,请运行以下命令:

kubectl apply -f simple-pod.yaml

Pod 通常不是直接创建的,而是使用工作负载资源创建的。

一个Pod中同时运行多个容器

下面是一个Pod封装多个容器的示例,它由一个运行镜像 nginx:1.14.2和MYSQL的容器组成。

apiVersion: v1
kind: Pod
metadata:
  name: complex-pod
spec:
  containers:
  - name: nginx
    image: nginx:1.14.2
    ports:
    - containerPort: 80
  - name: mysql
    image: mysql
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: "@123456@"
    ports:
    - containerPort: 3306

由于最新版的MySQL容器必须要配置一个环境变量,不然就会启动失败

创建上面显示的 Pod,请运行以下命令:

kubectl apply -f complex-pod.yaml

一个Pod封装多个容器,采用kubectl操作pod里面的容器时,跟一个Pod中运行一个容器不同。例如,要进入nginx容器内。在Pod封装多个容器应该执行如下命令:

kubectl exec -it complex-pod -c nginx /bin/sh
  • complex-pod: 是pod的名称
  • -c 指定是pod中容器的名称,例如:nginx

CKA真题讲解

真题截图

中文解析

切换 k8s 集群环境:kubectl config use-context k8s
Task:
创建一个 Pod,名字为 kucc1,这个 Pod 包含 4 个容器,为 nginxredismemcachedconsul

官方参考文档

Pod封装多个容器

做题解析

  1. 切换k8s集群环境
kubectl config use-context k8s
  1. 编写Pod资源对象文件
apiVersion: v1
kind: Pod
metadata:
  name: kucc1
spec:
  containers:
  - name: nginx
    image: nginx
  - name: redis
    image: redis
  - name: memcached
    image: memcached
  - name: consul
    image: consul
  1. 提交资源清单
kubectl apply -f kucc1.yaml
  1. 查看Pod创建的状态
kubect get pod

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 爬虫快速入门

1. 背景 最近在工作中有需要使用到爬虫的地方,需要根据 Gitlab Python 实现一套定时爬取数据的工具,所以借此机会,针对 Python 爬虫方面的知识进行了学习,也算 Python 爬虫入门了。 需要了解的知识点: Python 基础语…

three.js如何实现简易3D机房?(三)显示信息弹框/标签

接上一篇: three.js如何实现简易3D机房?(二)模型加载的过渡动画:http://t.csdnimg.cn/onbWY 目录 七、创建信息展示弹框 1.整体思路 (1)需求: (2)思路:…

猜猜:哪句古诗与古代女子妆容有关?2024.3.8蚂蚁庄园今日答案:金盆水里拨红泥

蚂蚁庄园是一款爱心公益游戏,用户可以通过喂养小鸡,产生鸡蛋,并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料,使用鸡饲料喂鸡之后,会可以获得鸡蛋,可以通过鸡蛋来进行爱心捐赠。其中&#…

Java 中创建线程多种方式介绍

在 Java 中,创建线程有多种方式,以下是最常见的四种: 1. **通过继承 Thread 类** 2. **通过实现 Runnable 接口** 3. **通过实现 Callable 接口** 4. **通过使用 Executor 框架** 每种方式都有其特点和适用场…

ElasticSearch之通过search after和scroll解决深度分页问题

写在前面 通过from,size来进行分页查询时,如下: 当from比较大时会有深度分页问题,问题产生的核心是coordinate node需要从每个分片中获取fromsize条数据,当from比较大,整体需要获取的数据量也会比较大&am…

【Java_JSON】如何从JSON数据中提取value值

如何从JSON数据中提取value值? 首先将JSON数据转成字符串 创建JSONObject 对象 通过kv键值对的特性 使用key值来获取value 值 并输出 结果:

Redis(十七)分布式锁

文章目录 面试题分布式锁锁的种类分布式锁需要具备的条件和刚需分布式锁 案例nginx分布式微服务部署,单机锁问题分布式锁注意事项lock/unlocklua脚本自研版的redis分布式锁搞定lua脚本 可重入锁可重入锁种类可重入锁hset实现,对比setnx(重要&…

Jmeter压测分配业务比例

在进行综合场景压测时,由于不同的请求,要求所占比例不同,如何实现呢? 不同的请求,服务器对其处理能力不同,有的处理快,有的处理慢。 真实模拟按比例进行并发: 在使用LR进行过类似…

在winform中如何嵌入第三方软件窗体✨

相关win32api的学习✨ SetParent [DllImport("user32.dll ", EntryPoint "SetParent")] private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); //将外部窗体嵌入程序语法: HWND SetParent([in] H…

windows关闭copilot预览版

如果用户不想在windows系统当中启用Copilot,可以通过以下三种方式禁用。 第一种:隐藏Copilot 按钮 右键点击任务栏,取消勾选“显示 Copilot(预览版)按钮”,任务栏则不再显示,用户可以通过快捷键…

2024 年 AI 辅助研发趋势:从研发数字化到 AI + 开发工具 2.0,不止于 Copilot

在上一年里,已经有不少的企业在工具链上落地了生成式 AI,结合我们对于这些企业的分析,以及最近在国内的一些 “新技术” 趋势,诸如于鸿蒙原生应用的初步兴起。从这些案例与趋势中,我们也看到了一些新的可能方向。 结合…

【C++】蓝桥杯必备 算法竞赛常用STL万字总结

传送门⏬⏬⏬[方便查表] 🌟一、什么是STL?🌟二、为什么STL重要?✨1、原因✨2、STL的作用 🌟三、STL知识点总结✨0.使用说明书✨1、vector 【可变数组】✨2、pair [ x,y ]✨3、string【字符串】✨4、queue【队列】 和pr…

2024年【道路运输企业安全生产管理人员】复审考试及道路运输企业安全生产管理人员模拟考试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年道路运输企业安全生产管理人员复审考试为正在备考道路运输企业安全生产管理人员操作证的学员准备的理论考试专题,每个月更新的道路运输企业安全生产管理人员模拟考试题祝您顺利通过道路运输企业安全…

第三讲 汇编初步 课程随手记

一、寄存器 32位CPU通用寄存器如下图所示: 因为教材依照的是32位CPU寄存器,而我安装的是64位寄存器,所以找了一下64位的寄存器的资料 PS:一般来说,Intel处理器字节存储顺序为小端法存储,是指数据的高字节保…

JavaScript极速入门(1)

初识JavaScript JavaScript是什么 JavaScript(简称JS),是一个脚本语言,解释型或者即时编译型语言.虽然它是作为开发Web页面的脚本语言而著名,但是也应用到了很多非浏览器的环境中. 看似这门语言叫JavaScript,其实在最初发明之初,这门语言的名字其实是在蹭Java的热度,实际上和…

Vue2+ElementUI下拉、Select组件的封装

Vue2ElementUI下拉、Select组件的封装:引言 在 Vue2 项目中,ElementUI 的 el-select 组件是常用的下拉选择框组件。它提供了丰富的功能和样式,可以满足各种需求。但是,在实际开发中,我们经常会遇到一些重复性的需求&a…

男人的玩具系统wordpress外贸网站主题模板

垂钓用品wordpress外贸模板 鱼饵、鱼竿、支架、钓箱、渔线轮、鱼竿等垂钓用品wordpress外贸模板。 https://www.jianzhanpress.com/?p3973 身体清洁wordpress外贸网站模板 浴盐、防蚊液、足部护理、沐浴液、洗手液、泡澡用品wordpress外贸网站模板。 https://www.jianzhan…

【CSP试题回顾】201612-1-中间数

CSP-201612-1-中间数 解题思路 输入和初始化:首先,程序读入一个整数n,表示序列中数的个数。接着,读入n个正整数并存储在numList向量中,这些数依次表示a1, a2, …, an。 排序:使用sort函数对numList进行升…

前端运算符比较与计算中的类型转换,运算规则

题目: 下面表达式的值分别都是什么(类型转换) 0 0 0 2 true 2 false false false false 0 false undefined false null null undefined\t\r\n 0JS中的原始类型有哪些 原始值类型就是 存储的都是值,没有函数可以调用的。…

【Python时序预测系列】基于LSTM+Attention实现单变量时间序列预测(源码)

这是我的第232篇原创文章。 一、引言 长短期记忆网络(LSTM)结合注意力机制是一种常用的深度学习模型结构,用于处理序列数据。LSTM是一种循环神经网络(RNN)的变体,专门设计用来解决长序列数据的梯度消失和…