(二)K8S Namespace 和 Label

news2024/11/19 16:36:09

Namespace

1、K8S集群中默认的Namespace为default,通过Namespace可以实现Pod之间的相互隔离(如测试环境、生成环境的隔离
2、通过K8S的资源配置机制限定不同的Namespace对CPU、内存的使用,再通过K8S授权机制将不同的Namespace交给不同的租户进行管理,实现多租户资源的隔离

  • 1、创建命名空间
kubectl create ns dev # 创建命名空间
kubectl delete ns dev # 删除命名空间,该空间下的所有资源也将被删除
  • 2、创建命名空间(配置文件)
# ns-dev.yaml 文件
apiVersion: v1
kind: Namespace
metadata:
  name: dev
kubectl create -f /home/lixing/ns-dev.yaml # 创建命名空间
kubectl delete -f /home/lixing/ns-dev.yaml # 删除命名空间,该空间下的所有资源也将被删除
  • 查询命名空间
kubectl get ns # 查询命名空间

在这里插入图片描述
default 未指定命名空间的对象都会被分配到该空间
kube-node-lease 集群节点之间的心跳维护
kube-public 此命名空间下的资源可以被所有用户访问
kube-system 由K8S系统创建的资源都会被分配到该空间

  • 查询 kube-system 命名空间下的 deployment、pod、service 资源
kubectl get deployment,pods,service -n kube-system -o wide

在这里插入图片描述

deployment.apps/coredns 【CoreDNS 在K8s1.12版本之后成为K8S集群默认的DNS服务,主要用作服务发现】

pod/kube-apiserver-k8smaster【资源操作的唯一入口,接受用户输入的指令,提供认证、授权、API注册和发现等机制】
pod/kube-scheduler-k8smaster【负责集群的资源调度,按照预定的策略将pod调度到相应的node节点上】
pod/kube-controller-manager-k8smaster【负责维护集群的状态,程序部署、故障检测、自动扩展、滚动更新】
pod/etcd-k8smaster【负责存储集群中各种资源的对象信息】
pod/kube-proxy-b4j99【负责提供集群内部的服务发现和负载均衡,当前K8S集群一共3个节点】
pod/kube-proxy-lllq9【负责提供集群内部的服务发现和负载均衡,当前K8S集群一共3个节点】
pod/kube-proxy-mnfdn【负责提供集群内部的服务发现和负载均衡,当前K8S集群一共3个节点】

service/kube-dns【K8S的DNS服务】

Label

1、Namespace虽然可以对Pod进行隔离,但不同Namespace下的Pod是不能相互访问的
2、Label通过K-V的形式在资源上添加标识,用它来对资源(Node、Pod、Service)进行区分和选择,实现资源的多纬度分组,以便灵活、方便地进行资源分配、调度、配置和部署等管理

  • 常用Label标签
    架构标签:“tier”:“frontend|backend”
    环境标签:“env”:“dev|test|pro”
    版本标签:“version”:“release|stable”

  • Label标签选择器
    env = test:选择所有Label中的key="env"并且value="test"的资源对象
    env != test:选择所Label中的key="env"并且value!="test"的资源对象
    env in (dev,test):选择所有Label中的key="env"并且value="dev"或value="test"的资源对象
    env not in (dev,test):选择所有Label中的key="env"并且value!="dev"和value!="test"的资源对象
    env = test,version != stable:选择所有Label中的key="env"并且value=“test”,并且key="version"并且value!="stable"的资源对象

  • 1、打标签

kubectl label pod nginx -n dev version=1.0 # 给Pod(nginx)添加标签(version=1.0)
kubectl label pod nginx -n dev version=2.0 --overwrite # 给Pod(nginx)更新标签(version=2.0)
kubectl label pod nginx -n dev version- # 给Pod(nginx)删除标签(version)
  • 2、打标签
# pod-nginx.yaml
apiVersion: v1
kind: Pod
metadata: 
  name: pod-nginx
  namespace: dev
  labels: 
    env: "test"
    version: "1.0"
spec: 
   containers: 
   - image: nginx:1.17.1
     imagePullPolicy: IfNotPresent
     name: container-nginx
     ports:
     - name: port-nginx
       containerPort: 80
       protocol: TCP
kubectl create -f /home/lixing/pod-nginx.yaml # 创建标签
kubectl delete -f /home/lixing/pod-nginx.yaml # 删除标签
  • 查看标签
kubectl get pod nginx -n dev --show-labels # 查看Pod(nginx)的标签
  • 筛选标签
kubectl get pod -l "version=1.0" -n dev --show-labels # 筛选Pod中标签为version=1.0

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

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

相关文章

启动ruoyi框架(初学)

启动ruoyi框架(初学)(RuoYi) Ruo Yi启动ruoyi框架(初学)([RuoYi](http://doc.ruoyi.vip/))一、简介二、项目启动1.前端模组:RUOYI-UI2.后端模组:3.环境要求&a…

Java版阿里云/腾讯云域名动态映射DDNS到动态IPv4或IPv6

1 介绍 利用业余时间,整合了一下阿里云和腾讯云动态域名映射,并将其使用spring boot做了一下封装,正好可以把家里的闲置电脑和IP v6利用起来,具体使用方法如下,或者参考对应项目的readme文档 2 地址 aliyun-ddns&am…

数据分析-深度学习 Day3

youtube课程地址:(实时更新)https://www.youtube.com/playlist?listPLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2Jwww.youtube.com/playlist?listPLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2JB站课程地址:李宏毅2021机器学习【week3】&#xff1a…

基于tensorflow框架bert的自然灾害描述文本分类详细教程

概述: 使用tensorflow框架: 预测给定的推文是否与真正的灾难有关。如果是这样,预测一个1。如果不是,预测一个0 数据展示:

Java之String概述、对象创建原理和常见面试题、String类常用API、案例

目录String、ArrayList前言String简单介绍Arraylist简单介绍String 概述String类的特点详解总结String类创建对象的两种方式两种方式有什么区别吗?总结String常见面试题String类常用API-字符串内容比较总结String类常用API-遍历、替换、截取、分割操作String案例验证…

内存管理(C/C++)

内存管理(C/C)C/C内存分布C语言中的动态内存管理方式C中动态内存管理new / delete 操作内置类型new 和 delete 操作自定义类型operator new 和 operator delete 函数operator new 和 operator delete 函数new 和 delete 的实现原理内置类型自定义类型定位…

【人工智能原理自学】激活函数:给机器注入灵魂

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔笔记来自B站UP主Ele实验室的《小白也能听懂的人工智能原理》。 🔔本文讲解激活函数:给机器注入灵魂,一起卷起来叭! 目录一、“分…

已解决pandas正确创建DataFrame对象的四种方法(通过list列表、dict字典、ndarray、Series对象创建)

已解决(pandas创建DataFrame对象失败)ValueError: 4 columns passed, passed data had 2 columns 文章目录报错代码报错翻译报错原因解决方法创建DataFrame对象的四种方法1. list列表构建DataFrame2. dict字典构建DataFrame3. ndarray创建DataFrame4. Se…

【MySQL】十一,存储引擎

查看存储引擎 查看mysql提供什么存储引擎 设置系统默认的存储引擎 查看默认的存储引擎 show variables like %storage_engine%; SELECT default_storage_engine;修改默认的存储引擎 如果在创建表的语句中没有显式指定表的存储引擎的话,那就会默认使用 InnoDB 作…

08、ThingsBoard使用msa构建镜像并上传到Harbor

1、概述 今天讲解如何使用thingsboard源码中的msa模块来构建镜像,首先我先说一下这个模块的作用,很多人都不明白msa是如何构建镜像的,msa下面创建了很多模块,每个模块都是一个应用,就像我们平时微服务一样可以独自启动,thingsboard是使用这些模块去其它模块拉取代码过来…

卷积神经网络 Convolutional Neural Network (CNN)

CNNObservation 1Observation 2Benefit of Convolutional LayerMultiple Convolutional LayersComparision of Two StoriesObservation 3Convolutional Layers PoolingApplication: Playing GoTo learn more ...仅供个人学习,不具参考价值! Image Class…

python代码运行速度有点慢 ? 教你使用多线程速度飞升

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 在我们爬取数据的时候,有时候它运行速度会非常慢 那么怎么解决呢? 这里给大家带来一个多线程的方法 我们用采集二手车来举例 环境使用: Python 3.8 Pycharm 模块使用: requests 数据请求模…

JVM类加载机制-让你明明白白的了解类的执行流程

一、类加载运行过程1.1 类加载到jvm的流程当我们使用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到jvm里。1.2 loadClass的类加载过程其中loadClass的类加载过程有如下几步:加载 >> 验证 >> 准备 >> 解析…

关于Visual Studio C++项目属性设置的说明

链接器—常规—输出文件 这里的输出文件指的是最终生成的exe文件 C/C–常规—附加包含目录 这里指的是需要include的一些头文件所在的 目录,可以提前在项目文件中建立好include文件,然后在这里设置,以后将一些自定义的include头文件放在这个…

Python之父强烈推荐,爬虫入门经典《python3网络爬虫开发实战》

实操性很强的一本工具书,由浅入深,深入浅出。前面从环境配置到爬虫原理、基本库和解析库的使用再到数据存储,一步步把基础打好,然后再分门别类介绍了Ajax、动态页、验证码、App的爬取、识别等,还讲解了代理使用、模拟登…

【Java】Spring中Aware接口的作用

Spring的几个aware接口的用法 ApplicationContextAware public interface ApplicationContextAware extends Aware {void setApplicationContext(ApplicationContext applicationContext) throws BeansException; }该接口仅有一个方法,用于设置Spring容器上下文。…

浅谈Springboot自动配置

目录 1.自动配置原理 2.自动配置案例 3.总结 1.自动配置原理 在一个Springboot程序中,我们只需要在main程序中使用springBootApplication注解即可标记为一个一个Springboot程序,然后使用 SpringApplication.run(TestMain.class,args) 代码即可创建…

多把锁,死锁,活锁,饥饿

目录 多把锁 多把锁的优缺点 活跃性 死锁 手写死锁 死锁的四个必要条件 定位死锁 jconsole运行命令 jps 定位进程 id,再用 jstack 定位死锁 死锁的三种场景 一个线程一把锁 两个线程两把锁 多个线程多把锁 解决死锁 活锁 饥饿 多把锁 现在有一个场…

Kali Linux ping扫描命令

1.命令介绍 kali的ping命令和centos linux的评命令许多参数都差不多,可以看一下我之前写的linuxping命令https://blog.csdn.net/qq_44652591/article/details/128439494 ping扫描是ping整个网络IP地址或单个IP,以查明它们是否活跃和响应的过程。ping也是…

用Kettle调用Restful API 接口

1 概述 kettle 中文名称叫水壶,是纯 java 开发,开源的 ETL工具,用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运行。有图形界面,也有命令脚本还可以二次开发。当然它也可以用来调用Restful API 来采集数据&#xff0c…