K8SNamespace命名空间
Posted lqbyz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8SNamespace命名空间相关的知识,希望对你有一定的参考价值。
(一)、Namespace概述
你可以认为namespaces是你kubernetes集群中的虚拟化集群。在一个Kubernetes集群中可以拥有多个命名空间,它们在逻辑上彼此隔离。 他们可以为您和您的团队提供组织,安全甚至性能方面的帮助!
大多数的Kubernetes中的集群默认会有一个叫default的namespace。实际上,应该是3个:
这个默认(default)的namespace并没什么特别,但你不能删除它。这很适合刚刚开始使用kubernetes和一些小的产品系统。但不建议应用于大型生产系统。因为,这种复杂系统中,团队会非常容易意外地或者无意识地重写或者中断其他服务service。相反,请创建多个命名空间来把你的服务service分割成更容易管理的块。
(二)、创建Namespace
不要害怕创建namespace。它不会降低服务的性能,反而大多情况下会提升你的工作效率。目前创建namespace时通过命令和yaml文件来进行创建的
2.1、通过命令创建命名空间
[root@k8s-master k8s]# kubectl create namespace test123
namespace/test123 created
[root@k8s-master k8s]# kubectl get namespace -owide
NAME STATUS AGE
default Active 55d
kube-node-lease Active 55d
kube-public Active 55d
kube-system Active 55d
test Active 21d
test123 Active 9s
2.2、通过yaml来进行创建
[root@k8s-master k8s]# kubectl apply -f namespace.yaml
namespace/test321 created
[root@k8s-master k8s]# cat namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: test321
labels:
name: test
[root@k8s-master k8s]# kubectl get namespace -owide
NAME STATUS AGE
default Active 55d
kube-node-lease Active 55d
kube-public Active 55d
kube-system Active 55d
test Active 21d
test123 Active 7m6s
test321 Active 17s
(三)、在namespace中创建资源
3.1、创建一个pod没有指定命名空间的
[root@k8s-master namespace]# cat pod-ns.yml
apiVersion: v1
kind: Pod
metadata:
name: ns-pod
labels:
name: ns-pod
spec:
containers:
- name: ns-pod
image: nginx
[root@k8s-master namespace]# kubectl apply -f pod-ns.yml
pod/ns-pod created
[root@k8s-master namespace]# kubectl get pod/ns-pod
NAME READY STATUS RESTARTS AGE
ns-pod 1/1 Running 0 21s
3.2、创建一个pod指定命名空间的
[root@k8s-master namespace]# cat pod-ns2.yml
apiVersion: v1
kind: Pod
metadata:
name: ns-pod2
namespace: test
labels:
name: ns-pod2
spec:
containers:
- name: ns-pod2
image: nginx
[root@k8s-master namespace]# kubectl apply -f pod-ns2.yml
pod/ns-pod2 created
[root@k8s-master namespace]# kubectl get pod -ntest -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ns-pod2 1/1 Running 0 94s 10.244.1.62 k8s-node01 <none> <none>
以上是关于K8SNamespace命名空间的主要内容,如果未能解决你的问题,请参考以下文章