13-名称空间

一、什么是名称空间

​ 所谓的名称空间就是k8s用来隔离资源的。

​ k8s一切皆资源,有些资源是支持名称空间的,我们称之为局部资源。有些不支持名称空间的我们称之为全局资源。

​ 如何从查看资源是否支持名称空间呢?可以通过以下命令的"NAMESPACED"字段查看。如果为true表示支持名称空间,如果为false表示不支持名称空间。

[root@master231 cronjobs]# kubectl api-resources 
NAME                              SHORTNAMES                                      APIVERSION                             NAMESPACED   KIND
bindings                                                                          v1                                     true         Binding
componentstatuses                 cs                                              v1                                     false        ComponentStatus
configmaps                        cm                                              v1                                     true         ConfigMap
endpoints                         ep                                              v1                                     true         Endpoints
events                            ev                                              v1                                     true         Event
limitranges                       limits                                          v1                                     true         LimitRange
namespaces                        ns                                              v1                                     false        Namespace
nodes                             no                                              v1                                     false        Node
persistentvolumeclaims            pvc                                             v1                                     true         PersistentVolumeClaim
persistentvolumes                 pv                                              v1                                     false        PersistentVolume
pods                              po                                              v1                                     true         Pod

二、查看现有的名称空间

1.查看全部名称空间列表

[root@master231 cronjobs]# kubectl  get ns 
NAME               STATUS   AGE
calico-apiserver   Active   46h
calico-system      Active   46h
default            Active   47h
kube-node-lease    Active   47h
kube-public        Active   47h
kube-system        Active   47h
tigera-operator    Active   46h

2.查看指定名称空间列表

[root@master231 cronjobs]# kubectl  get ns default
NAME      STATUS   AGE
default   Active   47h

三、响应式管理名称空间

1.创建

[root@master231 cronjobs]# kubectl create namespace oldboyedu
namespace/oldboyedu created
[root@master231 cronjobs]# kubectl  get ns | grep oldboyedu
oldboyedu          Active   12s

2.删除

删除名称空间意味着删除该名称空间下的所有资源,生产环境一定要谨慎使用

[root@master231 cronjobs]# kubectl delete ns oldboyedu 
namespace "oldboyedu" deleted
[root@master231 cronjobs]# kubectl  get ns oldboyedu 
Error from server (NotFound): namespaces "oldboyedu" not found

四、声明式管理名称空间

1.创建

1.1 获取资源清单模版

[root@master231 ns]# kubectl create ns oldboyedu -o yaml --dry-run=client > 01-ns.yaml

1.2 编写资源清单

[root@master231 ns]# cat 01-ns.yaml 
apiVersion: v1
kind: Namespace
metadata:
  name: oldboyedu

1.3 创建资源

[root@master231 ns]# kubectl apply -f 01-ns.yaml 
namespace/oldboyedu created

1.4 查看是否创建

[root@master231 ns]# kubectl get -f 01-ns.yaml 
NAME        STATUS   AGE
oldboyedu   Active   49s

五、查看指定名称空间的Pod资源

1.简略查看

[root@master231 ns]# kubectl  get pods -n calico-system 
NAME                                      READY   STATUS    RESTARTS      AGE
calico-kube-controllers-76d5c7cfc-g2bkf   1/1     Running   3 (24h ago)   47h
calico-node-5jsv7                         1/1     Running   3 (24h ago)   47h
calico-node-lbn67                         1/1     Running   1 (46h ago)   47h
calico-node-pk8vw                         1/1     Running   1 (46h ago)   47h
calico-typha-56b45b9b6b-72cb9             1/1     Running   1 (46h ago)   47h
calico-typha-56b45b9b6b-mjn6j             1/1     Running   1 (46h ago)   47h
csi-node-driver-cq9ld                     2/2     Running   2 (46h ago)   47h
csi-node-driver-m5l6m                     2/2     Running   6 (24h ago)   47h
csi-node-driver-nlnnq                     2/2     Running   2 (46h ago)   47h

[root@master231 ns]#   kubectl get pods --namespace calico-apiserver  -o wide
NAME                                READY   STATUS    RESTARTS      AGE   IP               NODE        NOMINATED NODE   READINESS GATES
calico-apiserver-57464c7d98-t9wr6   1/1     Running   3 (24h ago)   47h   10.100.160.145   master231   <none>           <none>
calico-apiserver-57464c7d98-w2d5r   1/1     Running   7 (24h ago)   47h   10.100.140.67    worker233   <none>           <none>

2.查看详细信息

[root@master231 ns]# kubectl  get pods -n calico-system -o wide 
NAME                                      READY   STATUS    RESTARTS      AGE   IP               NODE        NOMINATED NODE   READINESS GATES
calico-kube-controllers-76d5c7cfc-g2bkf   1/1     Running   3 (24h ago)   47h   10.100.160.147   master231   <none>           <none>
calico-node-5jsv7                         1/1     Running   3 (24h ago)   47h   10.0.0.231       master231   <none>           <none>
calico-node-lbn67                         1/1     Running   1 (47h ago)   47h   10.0.0.232       worker232   <none>           <none>
calico-node-pk8vw                         1/1     Running   1 (47h ago)   47h   10.0.0.233       worker233   <none>           <none>
calico-typha-56b45b9b6b-72cb9             1/1     Running   1 (47h ago)   47h   10.0.0.232       worker232   <none>           <none>
calico-typha-56b45b9b6b-mjn6j             1/1     Running   1 (47h ago)   47h   10.0.0.233       worker233   <none>           <none>
csi-node-driver-cq9ld                     2/2     Running   2 (47h ago)   47h   10.100.203.130   worker232   <none>           <none>
csi-node-driver-m5l6m                     2/2     Running   6 (24h ago)   47h   10.100.160.144   master231   <none>           <none>
csi-node-driver-nlnnq                     2/2     Running   2 (47h ago)   47h   10.100.140.68    worker233   <none>           <none>

3.查看指定名称空间下的各种资源

[root@master231 ns]# kubectl get ds,deploy,svc,po -o wide -n kube-system 
NAME                        DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE   CONTAINERS   IMAGES                                                        SELECTOR
daemonset.apps/kube-proxy   3         3         3       3            3           kubernetes.io/os=linux   47h   kube-proxy   registry.aliyuncs.com/google_containers/kube-proxy:v1.23.17   k8s-app=kube-proxy

NAME                      READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES                                                   SELECTOR
deployment.apps/coredns   2/2     2            2           47h   coredns      registry.aliyuncs.com/google_containers/coredns:v1.8.6   k8s-app=kube-dns

NAME               TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                  AGE   SELECTOR
service/kube-dns   ClusterIP   10.200.0.10   <none>        53/UDP,53/TCP,9153/TCP   47h   k8s-app=kube-dns

NAME                                    READY   STATUS    RESTARTS      AGE   IP               NODE        NOMINATED NODE   READINESS GATES
pod/coredns-6d8c4cb4d-kh5z2             1/1     Running   3 (24h ago)   47h   10.100.160.146   master231   <none>           <none>
pod/coredns-6d8c4cb4d-td9pn             1/1     Running   3 (24h ago)   47h   10.100.160.148   master231   <none>           <none>
pod/etcd-master231                      1/1     Running   3 (24h ago)   47h   10.0.0.231       master231   <none>           <none>
pod/kube-apiserver-master231            1/1     Running   3 (24h ago)   47h   10.0.0.231       master231   <none>           <none>
pod/kube-controller-manager-master231   1/1     Running   5 (19h ago)   47h   10.0.0.231       master231   <none>           <none>
pod/kube-proxy-mlmf4                    1/1     Running   3 (24h ago)   47h   10.0.0.231       master231   <none>           <none>
pod/kube-proxy-r9vhl                    1/1     Running   1 (47h ago)   47h   10.0.0.232       worker232   <none>           <none>
pod/kube-proxy-w2qd4                    1/1     Running   1 (47h ago)   47h   10.0.0.233       worker233   <none>           <none>
pod/kube-scheduler-master231            1/1     Running   5 (19h ago)   47h   10.0.0.231       master231   <none>           <none>

六、查看所有名称空间的下的资源

[root@master231 namespace]# kubectl get ds,po --all-namespaces
…………

[root@master231 namespace]# kubectl get ds,po -A

七、资源使用名称空间案例

1.编写资源清单

[root@master231 namespace]# cat 02-ns-svc-deploy.yaml 
#创建一个名称空间
apiVersion: v1
kind: Namespace
metadata:
  name: oldboyedu

---

#使用deploy控制器关联标签,定义副本模版
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy-xiuxian
  namespace: oldboyedu
  labels:
    apps: xiuxian
spec:
  replicas: 5
  selector:
    matchLabels:
      version: v1
  template:
    metadata:
      labels:
        version: v1
        school: oldboyedu
        class: linux96
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
        name: xiuxian

---

#使用svc的NodePort类型,暴露端口
apiVersion: v1
kind: Service
metadata:
  name: svc-xiuxian-nodeport
  namespace: oldboyedu
spec:
  type: NodePort
  ports:
  - port: 90
    protocol: TCP
    targetPort: 80
    nodePort: 30110
  selector:
    version: v1

2.查看资源

#查看资源列表
[root@master231 namespace]# kubectl get deploy,rs,svc,po -o wide -n oldboyedu 
NAME                             READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS   IMAGES                                                      SELECTOR
deployment.apps/deploy-xiuxian   5/5     5            5           4m53s   xiuxian      registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1   version=v1

NAME                                       DESIRED   CURRENT   READY   AGE     CONTAINERS   IMAGES                                                      SELECTOR
replicaset.apps/deploy-xiuxian-9ddcfd7db   5         5         5       4m53s   xiuxian      registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1   pod-template-hash=9ddcfd7db,version=v1

NAME                           TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE   SELECTOR
service/svc-xiuxian-nodeport   NodePort   10.200.2.134   <none>        90:30110/TCP   2m    version=v1

NAME                                 READY   STATUS    RESTARTS   AGE     IP               NODE        NOMINATED NODE   READINESS GATES
pod/deploy-xiuxian-9ddcfd7db-4vvb5   1/1     Running   0          4m53s   10.100.140.117   worker233   <none>           <none>
pod/deploy-xiuxian-9ddcfd7db-57r2l   1/1     Running   0          4m53s   10.100.203.158   worker232   <none>           <none>
pod/deploy-xiuxian-9ddcfd7db-fvxqf   1/1     Running   0          4m53s   10.100.203.156   worker232   <none>           <none>
pod/deploy-xiuxian-9ddcfd7db-q2hv7   1/1     Running   0          4m53s   10.100.203.159   worker232   <none>           <none>
pod/deploy-xiuxian-9ddcfd7db-r6bht   1/1     Running   0          4m53s   10.100.140.118   worker233   <none>           <none>

#查看svc详细信息
[root@master231 namespace]# kubectl -n oldboyedu describe svc svc-xiuxian-nodeport 
Name:                     svc-xiuxian-nodeport
Namespace:                oldboyedu
Labels:                   <none>
Annotations:              <none>
Selector:                 version=v1
Type:                     NodePort
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.200.2.134
IPs:                      10.200.2.134
Port:                     <unset>  90/TCP
TargetPort:               80/TCP
NodePort:                 <unset>  30110/TCP
Endpoints:                10.100.140.117:80,10.100.140.118:80,10.100.203.156:80 + 2 more...
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

3.删除名称空间后,该名称空间下所有资源都被删除

[root@master231 namespace]# kubectl delete ns oldboyedu 
namespace "oldboyedu" deleted
[root@master231 namespace]# 
[root@master231 namespace]# kubectl get deploy,rs,svc,po -o wide -n oldboyedu 
No resources found in oldboyedu namespace.
[root@master231 namespace]# 
[root@master231 namespace]# kubectl -n oldboyedu describe svc svc-xiuxian-nodeport 
Error from server (NotFound): namespaces "oldboyedu" not found
posted @ 2025-04-09 21:33  丁志岩  阅读(13)  评论(0)    收藏  举报