Namespace(命名空间)的使用

Namespace(命名空间)的使用

2023年7月6日发(作者:)

Namespace(命名空间)的使⽤ Namespace(命名空间)是kubernetes系统中的⼀个⾮常重要的概念,Namespace在很多情况下⽤于实现多租户的资源隔离。Namespace通过将集群内部的资源对象“分配”到不同的Namespace中,形成逻辑上分组的不同项⽬、⼩组或⽤户组,便于不同的分组在共享使⽤整个集群的资源的同时还能被分别管理。 kubernetes集群在启动后,会默认创建⼀个名为“default”的Namespace。同⼀个namespace下⾯不允许出现两个service叫相同的名字。1.查看命名空间[root@kub_master ~]# kubectl get namespaces -o wideNAME STATUS AGEdefault Active 7dkube-system Active 7d 可以看到有两个个namespace 如果在创建过程中不指名Namespace,则⽤户创建的pod,RC,Service都将被系统创建到这个默认名为default的Namespace中。2. 创建命名空间[root@kub_master ~]# kubectl create namespace testnamespace "test" created[root@kub_master ~]# kubectl get namespaces -o wideNAME STATUS AGEdefault Active 7dkube-system Active 7dtest Active 3s3. 删除命名空间注:特别危险!会删除namespace下所有的k8s资源[root@kub_master ~]# kubectl delete namespace testnamespace "test" deleted[root@kub_master ~]# kubectl get namespaces -o wideNAME STATUS AGEdefault Active 7dkube-system Active 7dtest Terminating 1m[root@kub_master ~]# kubectl get namespaces -o wideNAME STATUS AGEdefault Active 7dkube-system Active 7d4. Namespace的定义很简单,如下所⽰的yaml定义了名为develop的Namespace[root@kub_master ~]# mkdir k8s/namespace[root@kub_master ~]# cd k8s/namespace/[root@kub_master namespace]# vim [root@kub_master namespace]# cat

apiVersion: v1kind: Namespacemetadata: name: develop[root@kub_master namespace]# kubectl create -f

namespace "develop" created[root@kub_master namespace]# kubectl get namespaces -o wideNAME STATUS AGEdefault Active 7ddevelop Active 15skube-system Active 7d5.创建属于develop命名空间的pod资源⼀旦创建了Namespace,在创建资源对象时,就可以指定这个资源对象属于哪个Namespace。[root@kub_master namespace]# vim

[root@kub_master namespace]# cat

apiVersion: v1kind: Podmetadata: name: busybox namespace: developspec: containers:

- name: busybox image: /busybox:latest imagePullPolicy: IfNotPresent command: - sleep - "3600"[root@kub_master namespace]# kubectl create -f

pod "busybox" created[root@kub_master namespace]# kubectl get pods --namespace=developNAME READY STATUS RESTARTS AGEbusybox 1/1 Running 0 21s在kubectl命令中加⼊--namespace参数来查看某个命名空间中的对象。6. 创建namespace=develop的RC资源[root@kub_master namespace]# vim

[root@kub_master namespace]# cat

apiVersion: v1kind: ReplicationControllermetadata: name: myweb namespace: developspec: replicas: 2 selector: app: myweb template: metadata: labels: app: myweb spec: containers: - name: myweb image: 192.168.0.212:5000/nginx:1.13 ports: - containerPort: 80[root@kub_master namespace]# kubectl create -f

replicationcontroller "myweb" created[root@kub_master namespace]# kubectl get rc --namespace=developNAME DESIRED CURRENT READY AGEmyweb 2 2 2 20s[root@kub_master namespace]# kubectl get pods --namespace=developNAME READY STATUS RESTARTS AGEbusybox 1/1 Running 9 9hmyweb-1fd25 1/1 Running 0 34smyweb-z1524 1/1 Running 0 34s7. 创建namespace=develop的Service资源[root@kub_master namespace]# vim

[root@kub_master namespace]# cat

apiVersion: v1kind: Servicemetadata: name: myweb namespace: developspec: type: NodePort ports: - port: 80 nodePort: 30008 targetPort: 80 selector: app: myweb[root@kub_master namespace]# kubectl create -f

service "myweb" created[root@kub_master namespace]# kubectl get svc --namespace=developNAME CLUSTER-IP EXTERNAL-IP PORT(S) AGEmyweb 192.168.72.198 80:30008/TCP 14s 当给每个租户创建⼀个Namespace来实现多租户资源隔离时,还能结合Kubernetes的资源配额管理,限定不同租户能占⽤的资源。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688593013a153154.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信