Kubernetes命名空间详解

目录

目标

版本

官网

概述

namespace(命名空间、名称空间)

注意事项

基本命令

查看namespace列表

查看所有Pod的namespace

查看单个Pod的namespace

查看同一个namespace下的所有Pod

查看单个namespace资源配额

查看单个Pod详情

查看所有namespace资源配额

创建namespace

删除namespace

资源配额


目标

        了解命名空间的使用场景和使用方法,通过案例实战理解命名空间对资源的逻辑隔离方法。


版本

Kubernets v1.25.0


官网

命名空间的基本概念icon-default.png?t=O83Ahttps://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

Compute Resource Quotaicon-default.png?t=O83Ahttps://kubernetes.io/docs/concepts/policy/resource-quotas/

Resource Management for Pods and Containersicon-default.png?t=O83Ahttps://kubernetes.io/docs/concepts/configuration/manage-resources-containers/


概述

namespace(命名空间、名称空间)

官网定义

In Kubernetes, namespaces provide a mechanism for isolating groups of resources within a single cluster. Names of resources need to be unique within a namespace, but not across namespaces. Namespace-based scoping is applicable only for namespaced objects (e.g. Deployments, Services, etc.) and not for cluster-wide objects (e.g. StorageClass, Nodes, PersistentVolumes, etc.).

翻译

        在 Kubernetes 中,命名空间提供了一种在单个集群内隔离资源组的机制。资源的名称在一个命名空间内必须唯一,但在不同的命名空间之间可以重复。基于命名空间的作用范围仅适用于命名空间范围的对象(例如 Deployments、Services 等),而不适用于集群范围的对象(例如 StorageClass、Nodes、PersistentVolumes 等)。

理解

  1. namespace在同一个K8s集群中对资源进行逻辑上的隔离。比如:隔离不同的团队、隔离不同的项目、隔离项目运行的环境(开发环境、测试环境、生产环境)等。
  2. 在同一个namespace下,资源的名称必须唯一,比如创建Pod时要求名称不能重复。

注意事项

官网描述(摘抄自不同的段落)

It is not necessary to use multiple namespaces to separate slightly different resources, such as different versions of the same software: use labels to distinguish resources within the same namespace.

For a production cluster, consider not using the default namespace. Instead, make other namespaces and use those.

Avoid creating namespaces with the prefix kube-, since it is reserved for Kubernetes system namespaces.

By creating namespaces with the same name as public top-level domains, Services in these namespaces can have short DNS names that overlap with public DNS records. Workloads from any namespace performing a DNS lookup without a trailing dot will be redirected to those services, taking precedence over public DNS.

翻译

  1. 不需要使用多个命名空间来区分略有不同的资源,例如同一软件的不同版本:可以使用标签来区分同一命名空间中的资源。
  2. 对于生产环境的集群,建议不要使用默认的命名空间。相反,应创建其他命名空间并使用它们。
  3. 避免创建以kube-为前缀的命名空间,因为该前缀是为Kubernetes系统命名空间保留的。
  4. 通过创建与公共顶级域名(TLD)同名的命名空间,这些命名空间中的服务可以具有与公共DNS记录重叠的简短DNS名称。任何命名空间中的工作负载,如果进行DNS查找且没有尾部点(dot),将会被重定向到这些服务,优先于公共DNS。

理解

  1. 资源的不同版本用标签区分,而不是创建多个不同的命名空间。
  2. 生产环境下自定义命名空间,不建议使用默认的命名空间。
  3. 命名空间不要用以kube-开头。
  4. 命名空间不要用域名命名,比如com、org、net等。

补充

  1. 名称必须是小写字母和数字,且只能包含字母、数字和连字符-。
  2. 名称必须以字母或数字开始和结束。

基本命令

查看namespace列表

kubectl get ns
kubectl get namespace

查看所有Pod的namespace

kubectl get pods --all-namespaces

查看单个Pod的namespace

kubectl describe pod Pod的名称

查看同一个namespace下的所有Pod

kubectl get pods -n namespace的全名

查看单个namespace资源配额

kubectl get resourcequota --namespace=namespace名称
kubectl get resourcequota -n namespace名称

查看单个Pod详情

kubectl describe pod pod名称 -n namespace名称

查看所有namespace资源配额

kubectl get resourcequota --all-namespaces

创建namespace

kubectl create ns namespace名称

删除namespace

kubectl delete namespace namespace名称

资源配额

第一步:查看资源配额相关的字段。

kubectl explain resourcequota

第二步:通过YAML定义namespace。我定义的namespace名称是my-namespace。内容如下。

vi test.yaml
apiVersion: v1
kind: ResourceQuota
metadata:name: customize-resource-quotasnamespace: my-namespace

第三步:查看resourcequota.spec及resourcequota.spec下的hard字段,在官方文档可以看到这个字段可以限制各种资源。

kubectl explain resourcequota.spec

  1. limits.cpu:所有运行状态的Pod最大CPU使用总量。
  2. requests.cpu:所有Pod启动时请求的CPU总量,不能超过limits.cpu
  3. limits.memory:所有运行状态Pod的内存限制总和。
  4. requests.memory:所有Pod请求的内存总量,不能超过limits.memory

第四步:创建命名空间并限制该命名空间的资源。

kubectl create ns my-namespace
kubectl apply -f test.yaml

第五步:核查刚才我们自定义的命名空间资源配额是否生效。

kubectl get resourcequota --namespace=my-namespace
kubectl get resourcequota -n my-namespace

第六步:创建YAML文件并写入基本配置信息。这个YAML是用来创建Pod的。

apiVersion: v1
kind: Pod
metadata:name: quota-testnamespace: my-namespacelabels:app: quota-app
spec:containers:- name: tomcatimage: 192.168.192.200/library/tomcat:8.0imagePullPolicy: Alwaysports:- containerPort: 8080

第七步:查看YAML创建Pod资源配额的方法。我配置Pod资源限制是500毫核CPU(0.5个CPU核心)和128兆内存;请求限制是250毫核CPU(0.25个CPU核心)和64兆内存。

kubectl explain pod.spec.containers.resources
apiVersion: v1
kind: Pod
metadata:name: quota-testnamespace: testlabels:app: quota-app
spec:containers:- name: tomcatimage: 192.168.192.200/library/tomcat:8.0imagePullPolicy: Alwaysports:-  containerPort: 8080resources:requests:memory: "64Mi"cpu: "250m"limits:memory: "128Mi"cpu: "500m"

第八步:创建Pod并查看资源配额。发现my-namespace这个命名空间下的资源使用情况与我刚才配置的Pod资源吻合,说明资源配额功能成功实现。

kubectl apply -f quota-test.yml

kubectl describe pod quota-test -n my-namespace

kubectl get resourcequota -n my-namespace

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

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

相关文章

【开源】A059-基于SpringBoot的社区养老服务系统的设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看项目链接获取⬇️,记得注明来意哦~🌹 赠送计算机毕业设计600个选题ex…

【AI系统】算子开发编程语言 Ascend C

算子开发编程语言 Ascend C 本节将深入探讨昇腾算子开发编程语言 Ascend C,这是一种专为昇腾 AI 处理器算子开发设计的编程语言,它原生支持 C 和 C标准规范,最大化匹配用户的开发习惯。Ascend C 通过多层接口抽象、自动并行计算、孪生调试等…

Python基于大数据的微博的舆情分析,机器学习的微博情感分析系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

WPF+LibVLC开发播放器-LibVLC播放控制

接上一篇&#xff1a; LibVLC在C#中的使用 实现LibVLC播放器播放控制 界面 界面上添加一个Button按钮用于控制播放 <ButtonGrid.Row"1"Width"88"Height"24"Margin"10,0,0,0"HorizontalAlignment"Left"VerticalAlignme…

【设计模式系列】中介者模式(十八)

一、什么是中介者模式 中介者模式&#xff08;Mediator Pattern&#xff09;是一种行为型设计模式&#xff0c;其核心思想是通过一个中介者对象来封装一系列对象之间的交互&#xff0c;使这些对象不需要相互显式引用。中介者模式提供了一个中介层&#xff0c;用以协调各个对象…

【AI系统】Ascend C 编程范式

Ascend C 编程范式 AI 的发展日新月异&#xff0c;AI 系统相关软件的更新迭代也是应接不暇&#xff0c;作为一本讲授理论的作品&#xff0c;我们将尽可能地讨论编程范式背后的原理和思考&#xff0c;而少体现代码实现&#xff0c;以期让读者理解 Ascend C 为何这样设计&#x…

是什么阻断了kafka与zk的链接?

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 问题描述&#xff1a; 前几天部署一套环境&#xff0c;先把zk集群起来了&#xff0c;之后第二天在启动kafka的时候&#xff0c;…

CentOS 二进制安装部署MongoDB 4.0

一、安装MongoDB 1. 下载 MongoDB 二进制文件 前往 MongoDB 官方下载页面(https://www.mongodb.com/try/download/community) 选择对应版本的 tar 包。 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.28.tgz 2. 解压并移动至目标目录 解压文件&#xff…

【数据结构】【线性表】特殊的线性表-字符串

目录 字符串的基本概念 字符串的三要素 字符串的基本概念 串的编码 串的实现及基本运算 顺序串的实现 串的静态数组实现 串的动态数组的实现 顺序存储的四种方案 链式串的实现 基本运算 方案三 方案一 字符串的基本概念 数据结构千千万&#xff0c…

Agile VMO分享:海尔案例

海尔集团是全球最大的家电制造商之一&#xff0c;拥有超过76 000名员工。它获得了2018-2019年全球智能家电品牌前10名和2018-2019年全球消费电子品牌前50名的荣誉。 海尔利用价值流结构将自己组织成一些可以自管理的微型企业。这些微型企业拥有决策&#xff0c;设计和交付新产品…

ThinkPHP场景动态验证

一、缘由 今天在用thinkphp8写东西的时候发现&#xff0c;写验证器规则和场景优点费时间&#xff0c;就算用tinkphp的命令行生成也是生成一个空壳。内容还是要自己填写感觉麻烦。 就突发奇想能不能自动生成验证器&#xff0c;也不能是说自动生成验证器&#xff0c;生成验证其的…

限定符使用

正则表达式的元字符一次一般只能匹配一个位置或一个字符,如果想要匹配零个、一个或多个字符时,则需要使用限定符。限定符用于指定允许特定字符或字符集自身重复出现的次数。常用限定符如下: <asp:TextBox [^>]> 正则表达式字符类[^>]匹配除过“>”之外的任何字…

vue3+vite 批量引入组件动态使用

import { ref, reactive, toRaw, markRaw, defineAsyncComponent, onMounted } from vue import type { Component } from vue// vue3vite 批量引入组件动态使用 const modules import.meta.glob<Component>(./details/*.vue) // 明确指定导入的模块类型为Component con…

电脑关机的趣味小游戏——system函数、strcmp函数、goto语句的使用

文章目录 前言一. system函数1.1 system函数清理屏幕1.2 system函数暂停运行1.3 system函数电脑关机、重启 二、strcmp函数三、goto语句四、电脑关机小游戏4.1. 程序要求4.2. 游戏代码 总结 前言 今天我们写一点稍微有趣的代码&#xff0c;比如写一个小程序使电脑关机&#xf…

VScode离线下载扩展安装

在使用VScode下在扩展插件时&#xff0c;返现VScode搜索不到插件&#xff0c;网上搜了好多方法&#xff0c;都不是常规操作&#xff0c;解决起来十分麻烦&#xff0c;可以利用离线下载安装的方式安装插件&#xff01;亲测有效&#xff01;&#xff01;&#xff01; 1.找到VScod…

数据结构基础之《(10)—快速排序》

一、快速排序基础 1、Partition过程 给定一个数组arr&#xff0c;和一个整数num。请把小于等于num的数放在数组的左边&#xff0c;大于num的数放在数组的右边。 要求额外空间复杂度O(1)&#xff0c;时间复杂度O(N) 2、例子 区分小于等于num的数 (<区) [5 3 7 2 3 4 1] num…

2023年第十四届蓝桥杯Scratch国赛真题—推箱子

推箱子 程序演示及其源码解析&#xff0c;可前往&#xff1a; https://www.hixinao.com/scratch/creation/show-188.html 若需在线编程&#xff0c;在线测评模考&#xff0c;助力赛事可自行前往题库中心&#xff0c;按需查找&#xff1a; https://www.hixinao.com/ 题库涵盖…

学习threejs,使用VideoTexture实现视频Video更新纹理

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️VideoTexture 视频纹理 二、…

Xilinx PCIe高速接口入门实战(一)

引言&#xff1a;本文对Xilinx 7 Series Intergrated Block for PCI Express PCIe硬核IP进行简要介绍&#xff0c;主要包括7系列FPGA PCIe硬核资源支持、三IP硬核差异、PCIe硬核资源利用等相关内容。 1. 概述 1.1 7系列FPGA PCIe硬件资源支持 7系列FPGA对PCIe接口最大支持如…

浪潮X86服务器NF5280、8480、5468、5270使用inter VROC Raid key给NVME磁盘做阵列

Inter VROC技术简介 Intel Virtual RAID on CPU (Intel VROC) 简单来说就是用CPU的PCIE通道给NVME硬盘做Raid 更多信息可以访问官方支持页面 Raid Key 授权&#xff0c;即VROC SKU 授权主要有用的有2个标准和高级&#xff0c;仅Raid1的授权我暂时没见过。 标准 VROCSTANMOD …