我在k8s集群中的命名空间foo
下部署了一个简单的ResourceQuota对象:
apiVersion: v1
kind: ResourceQuota
metadata:
name: my-resource-quota
namespace: foo
spec:
hard:
pods: "2"
requests.cpu: "1"
requests.memory: 500Mi
limits.cpu: "1"
limits.memory: 500Mi
字符串
我可以在命名空间下看到部署的配额(quota
是resourcequota
的简写):
kubectl get quota -n foo
NAME AGE REQUEST LIMIT
my-resource-quota 5m pods: 0/2, requests.cpu: 0/1, requests.memory: 0/500Mi limits.cpu: 0/1, limits.memory: 0/500Mi
型
我仔细检查了ResourceQuota
是一个命名空间对象。
kubectl api-resources | grep quota
resourcequotas quota v1 true ResourceQuota
型
上面输出中的true
表示它是一个命名空间对象。
目前,我只在名称空间foo
下部署了quota对象。
当我尝试获取命名空间foo
下的所有资源时,我希望输出也会显示我部署的配额对象,但输出显示“No resources found”:
kubectl get all -n foo
No resources found in foo namespace.
型
这听起来像是k8s API的矛盾行为,为什么呢?
2条答案
按热度按时间jobtbby31#
不,这不是真的,
kubectl get all
是一个假朋友,它不显示命名空间中的所有内容,只有pods
,deployemnets
,replicaset
和services
kx5bkwkv2#
命令
kubectl get all -n <namespace>
不会显示命名空间中运行的自定义资源。根据Github评论;
kubectl api-resources
枚举群集中可用的资源类型。这意味着您可以将它与kubectl get
结合起来,实际列出名称空间中每个资源类型的每个示例;字符串
也可以尝试使用kubectl krew插件,您可以获得几乎所有的get-all资源。包括configmap、secret、endpoints等。
详细内容请参考Abhishek Ahlawat在Studytonight上的**帖子。