命名空间_K8s 命名空间

cc29562d21eac43bfaf2f0e3484982d4.png

Kubernetes 支持在一个物理集群上划分多个虚拟集群,这些虚拟集群即 命名空间。

约束

  • 在同一个命名空间中,资源名称须保持唯一。但在不同命名空间中,可以存在相同名称的资源。

  • 每一个资源只能隶属于一个命名空间。

  • 但命名空间本身不能属于另一个命名空间。

可以通过如下命令查看哪些资源在或不在命名空间中:

# In a namespace$ kubectl api-resources --namespaced=true# Not in a namespace$ kubectl api-resources --namespaced=false

创建命名空间

可参照如下配置文件创建命名空间(注意修改其中的 alpha 为想创建的命名空间名称):

# namespace-alpha.ymlapiVersion: v1kind: Namespacemetadata:  name: alpha

之后使用 kubectl apply -f namespace-alpha.yml 进行创建。

K8s 初始状态下包含了四个命名空间:

  • default:默认命名空间。资源未指定命名空间时,均创建在此命名空间下

  • kube-system:K8s 系统创建的对象在此命名空间下

  • kube-public:这个命名空间对所有用户可见(包括未授权用户),通常作为保留资源为集群所使用

  • kube-node-lease:此命名空间用于与各个节点相关的租期(Lease)对象;此对象的设计使得集群规模很大时节点心跳检测性能得到提升

注意:创建命名空间时,应避免使用 kube- 作为前缀。

查看命名空间

$ kubectl get namespace
NAME STATUS AGE
default Active 1d
kube-node-lease Active 1d
kube-public Active 1d
kube-system Active 1d

指定命名空间

在 Deployment 等配置文件中,可在 metadata 里指定所属的 namespace,如:

apiVersion: v1kind: Servicemetadata:  name: nginx  namespace: alpha  labels:    app: nginxspec:  type: NodePort  ports:  - name: nginx    port: 80    nodePort: 30080  selector:    app: nginx

查询命名空间中资源

在设定了 namespace 后,进行查询等操作时,均需指定命名空间,如:

$ kubectl get pods -n alpha
$ kubectl get pods --namespace=alpha

设定命名空间偏好

可在当前上下文中,设定命名空间偏好,使后续的 kubectl 命令不再需要特殊指定命名空间:

$ kubectl config set-context --current --namespace=alpha# Validate itkubectl config view --minify | grep namespace:

跨命名空间服务访问

默认情况下,使用服务名可以直接访问相同命名空间内的服务。如果需要访问其他命名空间里的服务,可使用 服务名.命名空间 的形式,如 nginx.alpha 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要查看所有命名空间,可以使用以下命令: ``` kubectl get namespaces ``` 这将列出所有可用的命名空间及其状态。如果您想查看更详细的信息,例如每个命名空间中的所有资源,请使用以下命令: ``` kubectl get all --all-namespaces ``` 这将显示所有命名空间中的所有 Kubernetes 资源。 ### 回答2: 要查看所有命名空间,可以使用Kubernetes(K8s)的命令行工具kubectl。kubectl是与Kubernetes集群通信的主要方式之一。 使用kubectl查看所有命名空间的命令是: ```shell kubectl get namespaces ``` 执行上述命令后,K8s会返回一个列表,其中包含所有已定义的命名空间每个命名空间都具有名称和状态,可以了解到哪些命名空间是活动的、停用的或者其他状态。此外,还可以查看每个命名空间的创建时间。 kubectl get命令是K8s中最常用的命令之一,可以用来获取资源的信息。通过提供资源类型和名称,可以从命令行检索有关特定资源的详细信息。在这个场景中,我们使用了"namespaces"资源类型来获取所有命名空间的信息。 通过查看所有命名空间,可以了解到集群中有哪些命名空间正在使用,方便进行管理和调度。这对于监控资源的使用情况、隔离应用和组织资源非常有帮助。 ### 回答3: 在Kubernetes中,我们可以使用`kubectl`命令行工具来查看所有命名空间。 要查看所有命名空间,可以使用以下命令: ``` kubectl get namespaces ``` 执行该命令后,会返回所有命名空间的列表,包括默认的`default`命名空间以及其他用户自定义的命名空间。列表中会显示每个命名空间的名称、状态(如Active或Terminating)、Age(创建时间)以及标签等信息。 如果想要获取更详细的命名空间信息,可以使用以下命令: ``` kubectl describe namespaces ``` 执行该命令后,会返回一个更详细的命名空间信息的摘要,包括命名空间的名称、状态、标签、注释、资源配额等等。 另外,还可以使用以下命令来获取所有命名空间中的所有资源: ``` kubectl get all --all-namespaces ``` 执行该命令后,会返回所有命名空间中的所有资源,包括所有的Pod、Service、Ingress等等。这可以帮助我们更全面地了解集群中的资源分布情况。 总结起来,通过`kubectl get namespaces`命令可以简洁地列出所有命名空间,而使用`kubectl describe namespaces`命令可以获取更详细的命名空间信息。另外,可以使用`kubectl get all --all-namespaces`命令获取所有命名空间中的所有资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值