作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122791716


目录

第1章 什么是名字/命名空间

1.1 kubernetes 命名空间(namespace)是什么?

1.2 名字空间隔离哪些内容

1.3 命名空间的特点

1.4 命名空间的本质

1.5 K8S默认的自带的名字空间

1.6 K8S资源的创建方式

第2章 名字空间的常见操作

2.1 查看已有的名字空间

2.2 创建新的名字空间

2.3 删除已有的名字空间

2.4 kubectl get pods -A与kubectl get pods的区别

第3章 通过配置文件操作名字空间

3.1 创建新的名字空间

3.2 删除已有的名字空间


第1章 什么是名字/命名空间

1.1 kubernetes 命名空间(namespace)是什么?

namespace中文翻译:名字空间或命名空间,后续混用这两个中文名。

namespace提供了一种在相同的虚拟硬件资源的基础之上,提供了各种层面、各个节点资源隔离的机制。

隔离有很多优点,如它提供了安全和干净的环境。例如,用户可以安装不同版本的 Jenkins,如果它们的环境变量是在不同的命名空间,就不会冲突。

如果你是基础设施的所属者,可以为不同场合的应用系统,提供不同的名字空间,如开发环节、生产环节和运维环节,就可以使用不同的名字空间进行隔离。

1.2 名字空间隔离哪些内容

  • 运行的服务Pods(微服务程序)
  • 微服务应用程序的配置

1.3 命名空间的特点

  • 名字空间本身也是资源,可以动态创建或删除。
  • 名字空间可以跨越集群中的多个虚拟机节点。
  • 所有的应用程序,都必须部署在特定的名字空间中。
  • 名字空间隔离的是单机上的资源访问,不隔离IP网络访问,不用的服务之间,可以通过网络进行访问,即使他们不在相同的名字空间 。
  • 命名空间不能嵌套。部署只能在一个命名空间中进行。
  • 所有的命名空间对于该资源类型只能使用一个独一无二的名字。

1.4 命名空间的本质

命名空间的本质是虚拟集群。

kubernetes 文档 中的解释:

kubernetes 在一个物理集群上提供了多个虚拟集群。这些虚拟集群被称为命名空间。

通过虚拟集群,意味着 kubernetes 可以在单个集群上提供多个 kubernetes 的虚拟集群,类似一个在其主机抽象出来的虚拟机,如下图所示:

1.5 K8S默认的自带的名字空间

一个集群的三个初始命名空间:defaultkube-system 和 kube-public

  • Default 用于某些没有指明命名空间的部署,这是一种快速创建混乱的做法,如果你在没有正确信息的情况下做了很多部署,将很难清理。不建议把自己的业务应用程序部署在默认的名字空间。
  • Kube-system 是 Kubernetes 系统相关的所有对象组成的命名空间。任何对此命名空间的部署都可能是危险的操作,可能对系统本身造成不可挽回的破坏。
  • Kube-public 所有人可读,但是这个命名空间是为系统保留的。

虽然技术上你可以用这三个命名空间作部署,但我还是推荐你把这三个命名空间留作系统配置用,而不是你的项目。

因此,对于互联网应用,我们通常会在同一个物理集群上,提供三个虚拟集群(三个名字空间)

  • 开发名字空间:用于开发人员的程序开发
  • 生产名字空间:用于正式部署前的系统验证
  • 运维名字空间:用于最终的业务服务。

1.6 K8S资源的创建方式

(1)cubectl命令行方式

(2)yaml配置文件的方式

本文以命令行为例,方面操作。

第2章 名字空间的常见操作

2.1 查看已有的名字空间

$ kubectl get namespace
$ kubectl get nsroot@k8s-master1 ~]#  kubectl get namespace
NAME                   STATUS   AGE
default                Active   4d1h
kube-node-lease        Active   4d1h
kube-public            Active   4d1h
kube-system            Active   4d1h
kubernetes-dashboard   Active   4d

2.2 创建新的名字空间

$ kubectl create namespace dev
namespace/dev created

2.3 删除已有的名字空间

$ kubectl delete namespace dev
$ kubectl delete ns devnamespace "dev" deleted

备注:

删除名字空间会导致基于名字空间的所有资源和应用程序都会被删除掉,这需要小心谨慎。

2.4 kubectl get pods -A与kubectl get pods的区别

(1)kubectl get pods:获取default名字空间的pods

NAMESPACE       NAME                            READY   STATUS  RESTARTS   AGE

无应用

(2)kubectl get pods -A:获取所有的名字空间的pods

$ kubectl get pods --all-namespaces
$ kubectl get pods -Akube-system            calico-kube-controllers-566dc76669-stvkr     1/1     Running   1 (3d21h ago)    3d23h
kube-system            calico-node-fz7s6                            0/1     Running   1 (3d21h ago)    3d23h
kube-system            calico-node-jlf2m                            1/1     Running   0                3d21h
kube-system            coredns-6d8c4cb4d-6cts2                      1/1     Running   1 (3d21h ago)    4d1h
kube-system            coredns-6d8c4cb4d-w6x5k                      1/1     Running   1 (3d21h ago)    4d1h
kube-system            etcd-k8s-master1                             1/1     Running   2 (3d21h ago)    4d1h
kube-system            kube-apiserver-k8s-master1                   1/1     Running   31 (3d21h ago)   4d1h
kube-system            kube-controller-manager-k8s-master1          1/1     Running   2 (3d21h ago)    4d1h
kube-system            kube-proxy-5wrkx                             1/1     Running   2 (3d21h ago)    4d1h
kube-system            kube-proxy-ptxgf                             1/1     Running   0                3d21h
kube-system            kube-scheduler-k8s-master1                   1/1     Running   2 (3d21h ago)    4d1h
kubernetes-dashboard   dashboard-metrics-scraper-799d786dbf-88c2w   1/1     Running   1 (3d21h ago)    4d
kubernetes-dashboard   kubernetes-dashboard-546cbc58cd-292dr        1/1     Running   1 (3d21h ago)    4d

上述的区别,充分的展示了业务应用pods是部署在特定的名字空间的。

K8S核心的自带的微服务,如kube-proxy、etcd都部署在kube-system名字空间,而不是default名字空间。

dashboard的pod有自己的独立的名字空间:kubernetes-dashboard

第3章 通过配置文件操作名字空间

3.1 创建新的名字空间

(1)创建新的名字空间的配置文件*.yaml文件

$ cd ~
$ vim dev-ns.yamlapiVersion: v1
kind: Namespace
metadata:name: ns-dev

(2)appy配置文件(创建名字空间)

kubectl apply -f dev-ns.yaml

(3)查看新创建的名字空间

$ kubectl get namespace
$ kubectl get ns
NAME            STATUS   AGE
default         Active   67d
kube-public     Active   67d
kube-system     Active   67d
ns-dev          Active   14s

3.2 删除已有的名字空间

(1)删除配置文件

# 删除名字空间资源,并不删除配置文件dev-ns.yaml
kubectl delete -f dev-ns.yaml

(2)查看结果

$ kubectl get namespace
$ kubectl get ns
NAME            STATUS   AGE
default         Active   67d
kube-public     Active   67d
kube-system     Active   67d

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122791716

[云原生专题-29]:K8S - 核心概念 - 名字空间/命名空间概念详解与主要操作案例相关推荐

  1. 【云原生|Docker系列6】Docker Compose的命令使用详解

    前言 本文主要学习Docker Compose 的命令操作方法. 本文主要以docker-compose 版本1.29.2为例. Docker Compose的命令说明 对于 Compose 来说,⼤ ...

  2. 云原生之Kubernetes:24、污点和容忍度详解

    文章目录 前言 1.概念引入 2.污点和容忍度配置 3.该如何配置? 4.内置污点 5.常用命令补充 6.实战:Taints and Tolerations 前言 Taint(污点)和Tolerati ...

  3. 【云原生 | Docker 高级篇】06、Docker 网络模式详解

    目录 一.Docker 平台架构图解 ​整体说明: 二.Docker 网络是什么 三.Docker 网络常用基本命令 1.查看网络 2.查看网络源数据 3.删除网络 4.案例 ​四.Docker 能干 ...

  4. 【云原生 • DevOps】influxDB、cAdvisor、Grafana 工具使用详解

    本章学习目标: 掌握时间序列数据库 influxDB 的安装与使用: 掌握容器监控工具 cAdvisor 的安装与使用: 掌握图表工具 Grafana 的安装与使用. 目录 一.时序数据库 influ ...

  5. [云原生专题-16]:容器 - 在Windows主机上搭建Docker环境

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  6. 全国计算机信息处理,全国计算机技术与软件专业技术资格(水平)考试《信息处理技术员(初级)》复习全书【核心讲义+历年真题详解】...

    一.精准对标考纲要求 本资料严格对标<信息处理技术员>考试大纲要求,覆盖了信息技术基本概念.信息理基础知识.计算机系统基础知识.操作系统使用和文件管理的基础知识.文字处理基础知识.电子表格 ...

  7. java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用

    java函数式编程归约reduce概念原理 stream reduce方法详解 reduce三个参数的reduce方法如何使用

  8. Kubernetes K8S之Taints污点与Tolerations容忍详解

    Kubernetes K8S之Taints污点与Tolerations容忍详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master C ...

  9. k8s教程(Volume篇)-PVC详解

    文章目录 01 引言 02 PVC详解 2.1 参数配置 2.1.1 资源请求(Resources) 2.1.2 访问模式 (Access Modes) 2.1.3 存储卷模式(Volume Mode ...

最新文章

  1. python爬虫知识点总结(十三)使用代理处理反扒抓取微信文章
  2. LVM基本应用 扩展及缩减实现
  3. 进程间通信————有名管道
  4. Windows下Qt Creator设置IDE菜单字体样式
  5. php 旋转图片 保存,如何在PHP中旋转并保存图像
  6. VB直接播放EXE文件中的声音文件
  7. 1120. Friend Numbers (20)-PAT甲级真题
  8. Help Me Escape
  9. 使用Python实现XML文件转为Excel文件
  10. 实现微信小程序授权获取手机号登录(c#后端代码附上 少爷接收)
  11. 飞桨领航团武汉长沙 | AI如何1秒记笔记,检测你的皮肤状态?
  12. 分子模拟软件amber_分子模拟周刊: 第 23 期
  13. 示波器的 带宽 采样率 存储深度
  14. 【流体机械原理及设计06】
  15. 极米h3s和坚果j10、当贝f3三款投影实测对比来了!
  16. 【每日更新 Suggest 】leetcode解题
  17. APP自动化测试框架搭建(五)--Python+Appium+pytest-html
  18. Linux 进程管理工具:supervisor
  19. 自学两个月,我是怎么从0基础到拿到7个offer的
  20. arm keil MDK下载官网

热门文章

  1. 最简单的Document解析xml文件
  2. 玩转DWZ (一)---项目中怎么使用dwz
  3. 线性规划之二 —— 单纯形算法(详解)
  4. HTML+JS+CSS+xml快速入门
  5. mysql 格式化函数总结_Mysql字符串处理函数详细介绍、总结
  6. STM32系统时钟树分析
  7. Spark 3.x各模式部署 - Ubuntu
  8. 网络安全--主机探测教程
  9. php程序检测不到vc9,XAMPP2016中文精简版启动失败 缺少运行库解决办法
  10. 数据库--sql文件