持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情
k8s中的namespace
前文
本文内容为关于k8s中的namespace,也就是命名空间相关知识的总结与整理。文章内容主要为个人的理解,可能存在不全面或偏差之处。
什么是命名空间
namespace也就是我们常说的命名空间。对于该概念本身,主要是起到一个数据及资源隔离的作用。例如我们在开发的过程中,可能包含开发环境、生产环境、测试环境等等,那如果我们想要在同一个k8s中进行多个环境的部署,就需要做到各个环境之间是完全独立存在不会互相影响的。也就是因此,命名空间的概念就应运而生。命名空间可以认为是一种隔离机制,它会将k8s中不同的组件,也就是pod、service、configMap等等信息进行隔离,当我们通过命令行进行数据访问时,我们需要指定我们查询的是哪个命名空间中间的数据。如果不指定命名空间,查询的数据则为default默认命名空间的数据。
命名空间的使用
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的命名空间。当后续我们需要创建自己不同环境中的资源时,例如开发环境、生产环境,我们只需要实现完成命名空间的创建,同时在创建资源时我们对资源的命名空间进行指定。按照这种方式,资源就会被创建到相应的命名空间当中,完成我们所要的资源隔离的效果。
后记
- 千古兴亡多少事?悠悠。不尽长江滚滚流。