官术网_书友最值得收藏!

3.4 管理名稱空間資源

名稱空間(Namespace)是Kubernetes集群級別的資源,用于將集群分隔為多個隔離的邏輯分區以配置給不同的用戶、租戶、環境或項目使用,例如,可以為development、qa和production應用環境分別創建各自的名稱空間。

Kubernetes的絕大多數資源都隸屬于名稱空間級別(另一個是全局級別或集群級別),名稱空間資源為這類的資源名稱提供了隔離的作用域,同一名稱空間內的同一類型資源名必須是唯一的,但跨名稱空間時并無此限制。不過,Kubernetes還是有一些資源隸屬于集群級別的,如Node、Namespace和PersistentVolume等資源,它們不屬于任何名稱空間,因此資源對象的名稱必須全局唯一。

注意

Kubernetes的名稱空間資源不同于Linux系統的名稱空間,它們是各自獨立的概念。另外,Kubernetes名稱空間并不能實現Pod間的通信隔離,它僅用于限制資源對象名稱的作用域。

3.4.1 查看名稱空間及其資源對象

Kubernetes集群默認提供了幾個名稱空間用于特定的目的,例如,kube-system主要用于運行系統級資源,而default則為那些未指定名稱空間的資源操作提供一個默認值,前面章節中的絕大多數資源管理操作都在default名稱空間中進行。“kubectl get namespaces”命令則可以查看namespaces資源:

     ~]$ kubectl get namespaces
        NAME             STATUS     AGE
        default         Active     6d
        kube-public    Active     6d
        kube-system    Active     6d

也可以使用“kubectl describe namespaces”命令查看特定名稱空間的詳細信息,例如:

     ~]$ kubectl describe namespaces default

kubectl的資源查看命令在多數情況下應該針對特定的名稱空間來進行,為其使用“-n”或“--namespace”選項即可,例如,查看kube-system下的所有Pod資源:

     ~]$ kubectl get pods -n kube-system
        NAME                                           READY     STATUS       RESTARTS     AGE
        etcd-master.ikubernetes.io              1/1        Running     1              6d
        kube-apiserver-master.ikubernetes.io 1/1        Running     1              6d
        ……

命令結果顯示出kube-system與default名稱空間的Pod資源對象并不相同,這正是Namespace資源的名稱隔離功能的體現。有了Namespace對象,用戶再也不必精心安排資源名稱,也不用擔心誤操作了其他用戶的資源。

3.4.2 管理Namespace資源

Namespace是Kubernetes API的標準資源類型之一,如3.2.1節中所述,它的配置主要有kind、apiVersion、metadata和spec等一級字段組成。將3.2.1節中的名稱空間配置清單保存于配置文件中,使用陳述式對象配置命令create或聲明式對象配置命令apply便能完成創建:

     ~]$ kubectl apply -f namespace-example.yaml
        namespace/dev created

名稱空間資源屬性較少(通常只需要指定名稱即可),簡單起見,kubectl為其提供了一個封裝的專用陳述式命令“kubectl create namespace”。Namespace資源的名稱僅能由字母、數字、連接線、下劃線等字符組成。例如,下面的命令可用于創建名為qa的Namespace對象:

     ~]$ kubectl create namespace qa
        namespace/qa created

注意

namespace資源的名稱僅能由字母、數字、連接線、下劃線等字符組成。

實踐中,不建議混用不同類別的管理方式。考慮到聲明式對象配置管理機制的強大功能,強烈推薦用戶使用apply和patch等命令進行資源創建及修改一類的管理操作。

使用kubectl管理資源時,如果一并提供了名稱空間選項,就表示此管理操作僅針對指定名稱空間進行,而刪除Namespace資源會級聯刪除其包含的所有其他資源對象。表3-3給出了幾個常用的命令格式。

表3-3 結合名稱空間使用的刪除命令

需要再次指出的是,Namespace對象僅用于資源對象名稱的隔離,它自身并不能隔絕跨名稱空間的Pod間通信,那是網絡策略(network policy)資源的功能。

主站蜘蛛池模板: 新蔡县| 富宁县| 棋牌| 浪卡子县| 炉霍县| 比如县| 施秉县| 宜黄县| 郑州市| 聂荣县| 丹凤县| 青海省| 筠连县| 和田市| 阜城县| 安阳市| 岳阳市| 南充市| 彭州市| 龙里县| 太仆寺旗| 拜城县| 夏河县| 大姚县| 乃东县| 平江县| 敖汉旗| 虹口区| 甘南县| 郴州市| 黄骅市| 志丹县| 临高县| 昌邑市| 嘉定区| 黎平县| 盐边县| 安泽县| 冷水江市| 九江市| 嵊州市|