配置 API 对象配额

    你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 建议在至少有两个节点的集群上运行本教程,且这些节点不作为控制平面主机。 如果你还没有集群,你可以通过 构建一个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:

    要获知版本信息,请输入 .

    创建命名空间

    创建一个命名空间以便本例中创建的资源和集群中的其余部分相隔离。

    下面是一个 ResourceQuota 对象的配置文件:

    admin/resource/quota-objects.yaml

    1. apiVersion: v1
    2. kind: ResourceQuota
    3. metadata:
    4. name: object-quota-demo
    5. spec:
    6. hard:
    7. persistentvolumeclaims: "1"
    8. services.nodeports: "0"
    1. kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects.yaml --namespace=quota-object-example

    查看 ResourceQuota 的详细信息:

    1. kubectl get resourcequota object-quota-demo --namespace=quota-object-example --output=yaml

    输出结果表明在 quota-object-example 命名空间中,至多只能有一个 PersistentVolumeClaim, 最多两个 LoadBalancer 类型的服务,不能有 NodePort 类型的服务。

    创建 PersistentVolumeClaim

    下面是一个 PersistentVolumeClaim 对象的配置文件:

    admin/resource/quota-objects-pvc.yaml 配置 API 对象配额 - 图2

    1. apiVersion: v1
    2. metadata:
    3. name: pvc-quota-demo
    4. spec:
    5. storageClassName: manual
    6. accessModes:
    7. - ReadWriteOnce
    8. resources:
    9. requests:
    10. storage: 3Gi

    创建 PersistentVolumeClaim:

    1. kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects-pvc.yaml --namespace=quota-object-example
    1. kubectl get persistentvolumeclaims --namespace=quota-object-example

    输出信息表明 PersistentVolumeClaim 存在并且处于 Pending 状态:

    下面是第二个 PersistentVolumeClaim 的配置文件:

    admin/resource/quota-objects-pvc-2.yaml

    1. apiVersion: v1
    2. metadata:
    3. spec:
    4. storageClassName: manual
    5. accessModes:
    6. - ReadWriteOnce
    7. resources:
    8. requests:
    9. storage: 4Gi

    尝试创建第二个 PersistentVolumeClaim:

    1. kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects-pvc-2.yaml --namespace=quota-object-example

    输出信息表明第二个 PersistentVolumeClaim 没有创建成功,因为这会超出命名空间的配额。

    1. persistentvolumeclaims "pvc-quota-demo-2" is forbidden:
    2. exceeded quota: object-quota-demo, requested: persistentvolumeclaims=1,

    说明

    删除你的命名空间:

    接下来

    应用开发者参考