- 如何理解Namespace
- 默认的Namespace
- 使用Namespace的好处
- 创建和使用Namespace
- 使用命令行创建
- 使用YAML文件创建
- Namespace 用例
- 切换Namespace
- 删除Namespace
- 感谢 💖
hello大家好😊
由于能够无缝管理和扩展工作负载,Kubernetes (简称K8s)已成为容器化应用编排的首选解决方案。Kubernetes 提供了一项重要功能,可用于维护结构化和有序的集群环境,即“Namespace”(命名空间)概念。在本篇文章中,我们将聊聊 Kubernetes Namespace,了解其目的、优势以及如何有效地管理容器化应用程序。
如何理解Namespace
K8s中的Namespace是一种逻辑分组机制,允许您将集群资源划分为独立的虚拟环境。每个 Namespace 为资源提供了一个范围,使得不同的团队、应用程序或环境可以在同一集群中共存,而不会相互干扰。
就像在一个大院子里分隔出不同的小院子一样,大家住在各自的院子里,公共的部分就少了,冲突也就少了。
默认的Namespace
K8s默认提供了几个预定义的 Namespace,每个 Namespace 都有特定的用途。
我们可以通过kubectl get namespaces
查看当前k8s集群中所有的Namespace的信息。
上面显示了默认的几个Namespace。
- default:默认的Namespace,就像大楼里的基本居住区。如果没有指定Namespace,资源将自动分配到这里
- kube-node-lease:存放节点租约信息,用于控制平面了解节点的健康状态
- kube-public:是大楼的公共区域,每个人都可以进入,但只能浏览,不能进行更改
- kube-system:专供Kubernetes系统组件和插件使用,就像是大楼里的管家和安保人员
使用Namespace的好处
- 资源隔离: Namespace 允许我们将不同的应用程序、团队或环境隔离开来。每个 Namespace 提供了一个独立的资源范围,确保资源之间不会互相干扰。这种隔离性有助于降低错误传播的风险,使得故障隔离更加容易
- 资源组织: Namespace 允许我们按照项目、团队、环境等进行资源组织。我们可以将相关的资源放在同一个 Namespace 中,使得集群管理更加有序,减少资源的混乱和重叠
- 权限控制: 每个 Namespace 可以拥有自己的权限和策略设置。这使得我们可以为不同的团队、开发者或应用程序设置访问控制,确保只有授权的人员能够访问和操作资源
- 简化命名: 不同 Namespace 中的资源可以使用相同的名称,因为每个 Namespace 中的名称是唯一的。这使得资源之间的命名冲突得到了解决,减少了命名管理的复杂性
创建和使用Namespace
使用命令行创建
我们可以使用kubectl命令工具创建和管理Namespace。
命令格式:kubectl create namespace <namespace-name>
使用YAML文件创建
先创建一个yaml(或者yml)文件,这里比如是mynamespace.yml 。在文件里面使用以下模板来定义 Namespace:
apiVersion: v1
kind: Namespace
metadata:
name: your-namespace-name
然后使用 kubectl create -f mynamespace.yml
或者 kubectl apply -f mynamespace.yaml
使用我们刚才创建的yaml文件创建Namespace。
最后使用kubectl get namespaces
来查看新创建的 Namespace 是否已经存在。
Namespace 用例
在创建资源时,我们使用-n
或--namespace
标志指定Namespace。
比如:
kubectl run nginx --image=nginx --namespace=mynamespace
kubectl get pod -n mynamespace
切换Namespace
使用kubectl config set-context --current --namespace=<namespace-name>
可以切换默认Namespace。在创建资源时,如果不指定Namespace,就会创建在默认的Namespace中。
删除Namespace
可以使用kubectl delete namespaces <namespace-name>
删除namespace 。
删除 namespace 会删除其下所有资源,如果要删除已经切换为默认值的 namespace 时,要先把默认值切换为其他,然后再删除。
感谢 💖
好啦,这次的分享就到这里,感谢大家看到这里🤞