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
本文来自博客园,作者:丁志岩,转载请注明原文链接:https://www.cnblogs.com/dezyan/p/18817400

浙公网安备 33010602011771号