k8s 名称空间namspace详解
namespace相关命令
1.查看名称空间
kubectl get ns
kubectl get pods -n default
# 查看指定的default名称空间,如果是default名称空间,一般情况下,我们是不指定。
kubectl get pods
# 查看默认名称空间下的资源,若不指定,则默认为default
kubectl get pods -n kube-system
# 查看指定的kube-system名称空间
2.创建名称空间
1 响应式创建名称空间
kubectl create namespace baimei-dashu
2 声明式创建名称空间
kind: Namespace
3.使用名称空间
4.删除名称空间
一旦删除了一个名称空间,则该名称空间下的所有资源都会被随时删除。
kubectl -n baimei-dashu get pods,cm
kubectl delete ns baimei-dashu
5.查看所有名称空间的pod,cm资源
kubectl get pods,cm -A
3.使用名称空间
创建名称空间
cat 01-ns-custom.yaml
apiVersion: v1
kind: Namespace
metadata:
name: baimei-dashu
labels:
school: baimei
class: dashu
kubectl apply -f 01-ns-custom.yaml
使用名称空间
cat 24-pods-volumes-configMap-games-ns.yaml
apiVersion: v1
kind: Pod
metadata:
name: baimei-games-cm-ns-002
# 将资源加入到指定的名称空间
namespace: baimei-dashu
spec:
nodeName: worker233
volumes:
- name: data01
configMap:
name: nginx.conf
containers:
- name: games
image: harbor.baimei.com/baimei-games/games:v0.5
volumeMounts:
- name: data01
mountPath: /etc/nginx/conf.d/
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx.conf
# 将资源加入到指定的名称空间
namespace: baimei-dashu
data:
nginx.conf: |
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
}
kubectl apply -f 24-pods-volumes-configMap-games-ns.yaml
kubectl -n baimei-dashu get cm,po
上例中,我们单独创建了一个 名称空间: baimei-dashu
然后后边的 pod 还有 configMap 都加入到了统一的 名称空间中:baimei-dashu
我们使用命令 指定名称空间, 可以查看,当前 名称空间下所有的资源。