❄️5. Kubernetes核心资源之名称空间和Pod实战
**什么是名称空间Namespace: **
- Namespace是k8s系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多用户的资源隔离。
- 默认情况下,k8s集群中的所有的Pod都是可以相互访问的。
- 但是在实际中,可能不想让两个Pod之间进行互相的访问,那此时就可以将两个Pod划分到不同的namespace下。
- k8s通过将集群内部的资源分配到不同的Namespace中,形成逻辑上的"组",以方便不同的组的资源进行隔离使用和管理。
- 可以通过k8s的授权机制,将不同的namespace交给不同租户进行管理,这样就实现了多租户的资源隔离。
- 结合k8s的资源配额机制,限定不同租户能占用的资源,例如CPU使用量、内存使用量等等,来实现租户可用资源的管理。
Kubernetes 会创建四个初始NameSpace名称空间:
- default
- 没有指明使用其它名字空间的对象所使用的默认名字空间
- kube-system
- Kubernetes 系统创建对象所使用的名字空间
- kube-public
- 是自动创建的,命名空间下的资源可以被所有人访问(包括未认证用户)
- kube-node-lease
- 集群节点之间的心跳维护
查看所有命名空间: kubectl get namespace 缩写: kubectl get ns
命名空间操作:
# 创建新命名空间kubectl create ns dev# 查看命名空间详情 kubectl describe ns dev# 指定输出格式 命令:kubectl get ns ns名称 -o 格式参数, 常见的是wide、json、yaml
# 输出命名空间详细信息kubectl get ns dev -o yaml# 删除命名空间kubectl delete ns dev# 基于配置文件方式 namespace-dev.yamlapiVersion: v1
kind: Namespace
metadata:name: dev创建:kubectl create -f namespace-dev.yaml创建:kubectl apply -f namespace-dev.yaml删除:kubectl delete -f namespace-dev.yaml
- 自主创建:直接创建出来的Pod,这种pod删除后就没有了,也不会自动重建
- 控制器创建:通过控制器创建的pod,这类Pod删除了之后还会自动重建
Pod运行容器数量
- 每个Pod中一个容器,,Pod是容器的简单封装,K8S管理Pod而不是直接管理容器
- 一个Pod中同时运行多个需要互相协作的容器,它们共享资源
Pod网络
- 一个 pod 包含一组容器,一个 pod 不会跨越多个工作节点
- 每个Pod都会被分配一个唯一的IP地址,Pod中的所有容器共享网络空间
- 包括IP地址和端口, Pod内 部的容器可以使用localhost互相通信
Pod存储
- Volume 也可以用来持久化Pod中的存储资源,以防容器重启后文件丢失
- Pod中 的所有容器都可以访问共享的Volume
**命令: **
kubectl get pod -n kube-system#查看创建的资源
kubectl get pod,deploy # 删除nginx pod,如果是靠deploy控制器创建的pod, 直接删除则会自动创建新的;
kubectl delete pod pod名称 -n 名称空间#通过控制器创建pod,则删除控制器即可
kubectl delete pod控制器名称 -n 名称空间# 运行pod,指定名称空间
kubectl run xdclass-nignx-pod --image=nginx:1.23.0 --port=80 --namespace dev# 通过 deployment控制器导出yaml文件,指定名称空间
kubectl create deployment xdclass-nginx --image=nginx:1.23.0 --namespace dev -o yaml --dry-run=client > nginx.yaml#一次性部署3个pod,修改nginx.yaml 下面的从 1 改为 3
#使用 kubectl apply -f nignx.yaml
spec:replicas: 3
**访问: **
#查看某个名称空间下 pod 更多信息
kubectl get pod -n dev -o wide#访问pod,同个集群下面,master和node节点都可以访问(同个K8S内部网络)
curl 10.244.1.20#备注,如果使用了Service,即NodePort端口,开放了网络安全组则外网也可以访问
LabelSelector标签选择器:
**操作: **
# 通过 deployment控制器导出yaml文件,指定名称空间
kubectl create deployment xdclass-nginx --image=nginx:1.23.0 --namespace dev -o yaml --dry-run=client > nginx.yaml#命令默认不会列出任何标签
kubectl get pods # 使用 --show-labels 选项来查看
kubectl get pod -n dev --show-labels # 查看 deploy控制器标签
kubectl get deploy -n dev --show-labels# 查看 pod 标签
kubectl get pod -n dev --show-labels
# 查看node节点标签
kubectl get node --show-labels#给Pod资源打标签
kubectl label pod pod名称 -n dev version=1.0例子:kubectl label pod xdclass-nginx-859bdb9994-kglj8 -n dev version=1.0#给Pod资源更新标签
kubectl label pod pod名称 -n dev version=2.0 --overwrite
例子:kubectl label pod xdclass-nginx-859bdb9994-kglj8 -n dev version=2.0 --overwrite#使用标签选择器
kubectl get pod -l "version=2.0" -n dev --show-labels
kubectl get pod -l "version!=2.0" -n dev --show-labels#删除标签 语法 kubectl label pod pod名称 -n dev 标签名-
kubectl label pod pod名称 -n dev version-
例子kubectl label pod xdclass-nginx-859bdb9994-kglj8 -n dev version-
NodeSelector标签选择器实战:
**配置文件: **
apiVersion: v1
kind: Pod
metadata:name: xdclass-nginx
spec:containers:- name: nginximage: nginx:1.23.0imagePullPolicy: IfNotPresentnodeSelector:env: test
**操作: **
# 查看node节点标签
kubectl get node --show-labels#创建pod
kubectl apply -f nginx.yaml#查看pod资源
kubectl get pod # 当Pod 一直处于 Pending 状态时,说明该 Pod 还未被调度到某个节点上
# Pod 中 nodeSelector 指定了节点 Label,调度器将只考虑调度 Pod 到包含该 Label 的 Node 上
# 当不存在符合该条件的 Node 时,Pod 将无法被调度#给Node资源打标签,不能给master打标签
kubectl label node node名称 env=testkubectl label node izwz90pegu9budx5tk4rv0z env=test#删除 node的标签 kubectl label node 删除指定的labels(标签 key 接 - 号即可)
kubectl label node node名称 env-kubectl label node izwz90pegu9budx5tk4rv0z env-
相关文章:
❄️5. Kubernetes核心资源之名称空间和Pod实战
**什么是名称空间Namespace: ** Namespace是k8s系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多用户的资源隔离。默认情况下,k8s集群中的所有的Pod都是可以相互访问的。但是在实际中,可能不想让两个Pod之间进行互…...
锂电池充电板电路设计
写这篇文章的目的主要是个人经验的总结,希望能给开发者们提供一种锂电池充电电路以及电源显示的电路思路。接下来从以下几个方面讲述电路。 设计这款电路的初衷是想用一块硬币大小的锂电池作为供电电源(3.5V-4.2V),降压供给3.3V电…...
工业互联网产教融合实训基地解决方案
一、引言 随着“中国制造2025”战略的深入实施与全球工业4.0浪潮的兴起,工业互联网作为新一代信息技术与制造业深度融合的产物,正引领着制造业向智能化、网络化、服务化转型。为培养适应未来工业发展需求的高素质技术技能人才,构建工业互联网…...
高效批量提取PPT幻灯片中图片的方法
处理包含大量图片的PPT(PowerPoint)幻灯片已成为许多专业人士的日常任务之一。然而,手动从每张幻灯片中逐一提取图片不仅耗时耗力,还容易出错。为了提升工作效率,减少重复劳动,探索并实现一种高效批量提取P…...
怎么在 React Native 应用中处理深度链接?
深度链接是一种技术,其中给定的 URL 或资源用于在移动设备上打开特定页面或屏幕。因此,深度链接可以引导用户到应用程序内的特定屏幕,而不仅仅是启动移动设备上的应用程序,从而提供更好的用户体验。这个特定的屏幕可能位于一系列层…...
el-table自动滚动到最底部
我的需求是这样的,因为我的表格是动态的,可以手动新增行,固定表头,而且需要一屏显示,为了方便用户就需要再新增的时候表格自动向上滚动。 差了官方文档后发现有一个属性可以支持 这个属性正是自己需要的,所…...
小白零基础学数学建模系列-引言与课程目录
目录 引言一、我们的专辑包含哪些内容?第一周:数学建模基础与工具第二周:高级数学建模技巧与应用第三周:机器学习基础与数据处理第四周:监督学习与无监督学习算法第五周:神经网络 二、学完本专辑能收获到什…...
Integer类型比较是 == 还是equals()
在Java编程中,判断两个Integer对象是否相等时,我们经常遇到使用和equals()方法的选择问题。这两个操作符和方法在判断对象相等性时有所不同,理解它们的区别对于编写健壮的代码至关重要。 使用判断Integer相等性 在Java中,操作符…...
七夕情人节送什么礼物?看完这篇你就知道了
在这个充满爱意的时刻,送上一份精心挑选的礼物,不仅能表达你的爱意,更能加深彼此之间的情感联系。然而,选择一份合适的情人节礼物并非易事,因为每个人都有其独特的需求和喜好。如果你还在为情人节送什么礼物而纠结&…...
让B站直接变成一个纯粹的音乐平台的简单小方法
可能在大多数人眼里,B站就是一个内容丰富的高质量视频平台 但实际上B站还是一个“音乐平台”,只不过大多数时候都是以视频的形式呈现,所以你们可能对此没啥感觉。 那么今天给大家分享一款神级插件,让B站变成一个纯粹的音乐平台&a…...
【MySQL 01】在 Ubuntu 22.04 环境下安装 MySQL
文章目录 🌈 1. 说明🌈 2. 卸载不必要的环境🌈 3. 安装 MySQL🌈 4. 启动和关闭 MySQL 服务🌈 5. 临时登录 MySQL🌈 6. 设置 MySQL 密码🌈 7. 配置 MySQL 🌈 1. 说明 在安装与卸载中…...
linux命令 根据某一字段去掉txt中重复的数据
前提: 文档为格式化好的数据。比如一行是一个json。 判断总共有多少行数据: grep No f.txt | wc -l 查询重复数据有多少行: grep No f.txt | sort -u | wc -l 找到重复的那行数据:(如果每行的json数据大,可忽略此操…...
LVS(Linux virual server)
一:环境准备: rhel9 软件:httpd, ipvsadm 四台纯净的rhel9机子:一台LVS调度设备(双网卡),两台webserver(单网卡仅主机),一台客户机 DR模式多…...
End-to-End Object Detection with Transformers(Detection Transformer)翻译
摘要 我们提出了一种新方法,将目标检测视为直接的集合预测问题。我们的方法简化了检测流程,有效消除了对许多手工设计组件的需求,如非极大值抑制过程或锚框生成,这些组件显式编码了我们对任务的先验知识。新框架称为检测变换器&a…...
uniapp打开地图直接获取位置
uniapp官网文档 https://en.uniapp.dcloud.io/api/location/open-location.html <view class"map-content" click.stop"kilometer(item)"><view class"km">{{item.distance||0}}km</view></view>import map from ../../…...
Qt的事件处理机制、信号和槽以及两者之间的区别
Qt的事件处理机制 Qt 的事件处理机制是其框架的核心部分之一,用于处理用户操作、系统事件以及其他各种事件。以下是 Qt 事件处理机制的关键组成部分和流程: 事件对象 (QEvent): 所有事件在 Qt 中都是通过事件对象来表示的。QEvent 是所有事…...
LSTM实战之预测股票
📈 用PyTorch搭建LSTM模型,轻松预测股票价格!🚀 Hey小伙伴们,今天给大家带来一个超级实用的项目教程——如何用PyTorch和LSTM模型来预测股票价格!🌟 🔍 项目背景 我们都知道股市是…...
30-50K|抖音大模型|社招3轮面经
情况介绍:我主要做nlp,也涉及到多模态和强化学习。现在大环境比较差,能投的公司不是很多,比如腾讯,主要还是高级别的,所以腾讯我就没投 抖音一面 1、聊项目。 2、AUC的两种公式是?你能证明这…...
ChatGPT首次被植入人类大脑:帮助残障人士开启对话
马斯克在脑机接口中最强大的竞争对手Synchron有了新的技术进展,他们首次将ChatGPT整合到其脑机系统中,以使瘫痪患者更容易控制他们的数字设备。Synchron凭借其独特的脑机接口(BCI)技术脱颖而出,该技术巧妙地运用了成熟…...
数据结构-常见排序的七大排序
1.排序的概念及其运用 1.1排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
