❄️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排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
