一、Namespace 概述
Namespace 在很多情况下用于实现多用户的资源隔离,通过将集群内部的资源对象分配到 不同的 Namespace 中, 形成逻辑上的分组,便于不同的分组在共享使用整个集群的资源同 时还能被分别管理。Kubernetes 集群在启动后,会创建一个名为 default
的 Namespace,如果不特别指明 Namespace,则用户创建的 Pod
,RC
,Service
都将被系统创建到这个默认的名为 default
的 Namespace 中。
二、Namespace 创建
1、创建名称空间 development的yaml文件 nsdemo.yaml
。
apiVersion: v1
kind: Namespace
metadata:
name: development
---
apiVersion: v1
kind: Pod
metadata:
name: mypod
namespace: development
spec:
containers:
- name: mypod
image: nginx
2、创建名称空间 development
kubectl apply -f nsdemo.yaml
namespace/development created
pod/mypod created
三、Namespace 查看
kubectl get pods --namespace=development
四、相关命令
1、查看命名空间
# 列出所有命名空间
kubectl get namespaces
# 或简写
kubectl get ns
# 查看特定命名空间的详细信息
kubectl describe namespace <namespace-name>
2、创建命名空间
# 方法1:直接通过命令创建
kubectl create namespace <namespace-name>
# 方法2:通过 YAML 文件创建
kubectl apply -f namespace.yaml
YAML 文件示例:
apiVersion: v1
kind: Namespace
metadata:
name: my-namespace
3、删除命名空间
# 删除指定命名空间(会删除该命名空间下的所有资源)
kubectl delete namespace <namespace-name>
4、在特定命名空间中操作
# 在特定命名空间中创建资源
kubectl apply -f <resource.yaml> -n <namespace-name>
# 查看特定命名空间中的资源
kubectl get pods -n <namespace-name>
kubectl get services -n <namespace-name>
kubectl get all -n <namespace-name>
# 设置默认命名空间
kubectl config set-context --current --namespace=<namespace-name>
5、查看资源配额
# 查看命名空间的资源配额
kubectl get resourcequota -n <namespace-name>
# 查看命名空间的限制范围
kubectl get limitrange -n <namespace-name>
6、常用选项
# 以 JSON 格式输出命名空间信息
kubectl get namespace <namespace-name> -o json
# 以 YAML 格式输出命名空间信息
kubectl get namespace <namespace-name> -o yaml
# 查看命名空间状态
kubectl get namespace <namespace-name> --show-labels
评论