使用kubectl创建/查询kubernetes pv是否识别名称空间?

时间:2015-08-31 16:54:05

标签: kubernetes

我正在使用GKE与gcloud组件安装的kubectl。 我使用kubectl创建了一个带命名空间范围的pv(gcePersistentDisk)。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: cstor-cs-a-disk-david
  namespace: ns-david
spec:
  gcePersistentDisk:
    pdName: cstor-cs-a-disk-david
    fsType: ext4
    partition: 0
    readOnly: false
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  capacity:
    storage: 200Gi

这表示使用create pv指定名称空间是/有效的:
http://kubernetes.io/third_party/swagger-ui/#!/api%2Fv1/createNamespacedPersistentVolume

当我跑步时,kubectl得到pv'我看到了光碟。

$ kubectl get pv
NAME                    LABELS    CAPACITY       ACCESSMODES   STATUS      CLAIM     REASON
cstor-cs-a-disk-david   <none>    214748364800   RWO           Available

我没想到这是因为pv没有使用默认的命名空间范围创建。

如果我指定了一个名称空间参数(有效或无效),也会发生同样的情况。

$ kubectl get namespaces
NAME          LABELS    STATUS
default       <none>    Active
kube-system   <none>    Active
ns-david      <none>    Active

$ kubectl get pv --namespace=demo
NAME                    LABELS    CAPACITY       ACCESSMODES   STATUS      CLAIM     REASON
cstor-cs-a-disk-david   <none>    214748364800   RWO           Available

如果我针对此pv创建了一个声明并使用&k; cubctl查询pvc&#39;然后找不到声明,但是当我指定正确的命名空间时找到声明。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cstor-cs-a-disk-claim-david
  namespace: ns-david
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 200Gi
  volumeName: cstor-cs-a-disk-david

$ kubectl get pvc
NAME      LABELS    STATUS    VOLUME

$ kubectl get pvc --namespace=ns-david
NAME                          LABELS    STATUS    VOLUME
cstor-cs-a-disk-claim-david   map[]     Bound     cstor-cs-a-disk-david

pv是否具有命名空间范围或者它们是全局的吗?

2 个答案:

答案 0 :(得分:6)

PV与节点一样,不限于任何命名空间。但是,正如你所注意到的那样,PVC是。 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#not-all-objects-are-in-a-namespace

答案 1 :(得分:0)

pv 和命名空间属于 Cluster,因此它们不是 NameSpaced。 pvc 是 NameSpaced