美文网首页
kubernetes-namespace

kubernetes-namespace

作者: jony456123 | 来源:发表于2017-09-07 11:17 被阅读49次

aNamespace(命名空间)是kubernetes系统中的另一个重要的概念,通过将系统内部的对象“分配”到不同的Namespace中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理。

Kubernetes集群在启动后,会创建一个名为“default”的Namespace,如果不特别指明Namespace,则用户创建的Pod、RC、Service都被系统创建到“default”的Namespace中。

1.查询

[plain]view plaincopy

[root@localhost k8s]# kubectl get namespaces

NAME      STATUS    AGE

default   Active    6d

2.创建

直接创建Namespace。

[plain]view plaincopy

apiVersion: v1

kind: Namespace

metadata:

name: development

labels:

name: development

[plain]view plaincopy

[root@localhost k8s]# kubectl get namespace

NAME          STATUS    AGE

default       Active    6d

development   Active    6s

3.Pod/RC/Service中指定Namespace

创建Pod/RC/Service时,如果不指定Namespace,则默认是"default"的Namespace。

比如[root@localhost k8s]# kubectl get podPHP-controller-2bvdq -o yaml查看一个通过RC创建的Pod

php-pod.yaml

[plain]view plaincopy

apiVersion: v1

kind: Pod

metadata:

name: php-test

labels:

name: php-test

namespace: development

spec:

containers:

- name: php-test

image: 192.168.174.131:5000/php-base:1.0

env:

- name: ENV_TEST_1

value: env_test_1

- name: ENV_TEST_2

value: env_test_2

ports:

- containerPort: 80

hostPort: 80

[plain]view plaincopy

[root@localhost k8s]# kubectl create -f php-pod.yaml

pod "php-test" created

[root@localhost k8s]# kubectl get pods

[root@localhost k8s]# kubectl get pods --namespace=development

NAME       READY     STATUS    RESTARTS   AGE

php-test   1/1       Running   0          1m

[root@localhost k8s]#

kubectl get pods时,没有任何结果,因为默认的是查询namespace=default的,所以要加上namespace参数。同理创建RC/Service也是一样的。

通过使用Namespace来组织k8s的各种对象,可以实现对用户的分组,即“多租户”管理。对不同的租户还可以进行单独的资源配额设置和管理,使得整个集群的资源配置非常灵活、方便。关于租户配额后期学习。

相关文章

  • kubernetes-namespace

    aNamespace(命名空间)是kubernetes系统中的另一个重要的概念,通过将系统内部的对象“分配”到不同...

网友评论

      本文标题:kubernetes-namespace

      本文链接:https://www.haomeiwen.com/subject/rqxijxtx.html