由于能够无缝管理和扩展工作负载,Kubernetes (简称K8s)已成为容器化应用编排的首选解决方案。Kubernetes 提供了一项重要功能,可用于维护结构化和有序的集群环境,即“Namespace”(命名空间)概念。在本篇文章中,我们将聊聊 Kubernetes Namespace,了解其目的、优势以及如何有效地管理容器化应用程序。
K8s中的Namespace是一种逻辑分组机制,允许您将集群资源划分为独立的虚拟环境。每个 Namespace 为资源提供了一个范围,使得不同的团队、应用程序或环境可以在同一集群中共存,而不会相互干扰。
就像在一个大院子里分隔出不同的小院子一样,大家住在各自的院子里,公共的部分就少了,冲突也就少了。
K8s默认提供了几个预定义的 Namespace,每个 Namespace 都有特定的用途。
我们可以通过kubectl get namespaces
查看当前k8s集群中所有的Namespace的信息。
我们可以使用kubectl命令工具创建和管理Namespace。
命令格式:kubectl create namespace
先创建一个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 是否已经存在。
在创建资源时,我们使用-n
或--namespace
标志指定Namespace。
比如:
kubectl run nginx --image=nginx --namespace=mynamespace
kubectl get pod -n mynamespace
使用kubectl config set-context --current --namespace=
可以切换默认Namespace。在创建资源时,如果不指定Namespace,就会创建在默认的Namespace中。
可以使用kubectl delete namespaces
删除namespace 。
删除 namespace 会删除其下所有资源,如果要删除已经切换为默认值的 namespace 时,要先把默认值切换为其他,然后再删除。
好啦,这次的分享就到这里,感谢大家看到这里