2022年10月更文挑战23-k8s中的namespace

127 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情

k8s中的namespace

前文

本文内容为关于k8s中的namespace,也就是命名空间相关知识的总结与整理。文章内容主要为个人的理解,可能存在不全面或偏差之处。

什么是命名空间

namespace也就是我们常说的命名空间。对于该概念本身,主要是起到一个数据及资源隔离的作用。例如我们在开发的过程中,可能包含开发环境、生产环境、测试环境等等,那如果我们想要在同一个k8s中进行多个环境的部署,就需要做到各个环境之间是完全独立存在不会互相影响的。也就是因此,命名空间的概念就应运而生。命名空间可以认为是一种隔离机制,它会将k8s中不同的组件,也就是pod、service、configMap等等信息进行隔离,当我们通过命令行进行数据访问时,我们需要指定我们查询的是哪个命名空间中间的数据。如果不指定命名空间,查询的数据则为default默认命名空间的数据。

image.png

命名空间的使用

apiVersion: v1
kind: Namespace
metadata:
  annotations:
    kubesphere.io/alias-name: ""
    kubesphere.io/creator: admin
  creationTimestamp: "2022-10-17T03:04:48Z"
  finalizers:
  - finalizers.kubesphere.io/namespaces
  labels:
    kubernetes.io/metadata.name: test-cloud
    kubesphere.io/namespace: test-cloud
  name: test-cloud
  resourceVersion: "1306714"
  uid: a0a03ddf-f0be-4242-a87b-ba03bc337df1
spec:
  finalizers:
  - kubernetes
status:
  phase: Active

如上面的代码中所示,我们创建了一个名称为test-cloud的命名空间。当后续我们需要创建自己不同环境中的资源时,例如开发环境、生产环境,我们只需要实现完成命名空间的创建,同时在创建资源时我们对资源的命名空间进行指定。按照这种方式,资源就会被创建到相应的命名空间当中,完成我们所要的资源隔离的效果。

后记

  • 千古兴亡多少事?悠悠。不尽长江滚滚流。