咨询K8s中PodMetrics Kind的定义位置
解答:PodMetrics资源的来源
PodMetrics是通过K8s API聚合层动态注册的聚合API资源,并非CRD,因此不会出现在Metrics Server的部署YAML清单中,具体原因和过程如下:
1. API聚合层与CRD的资源注册差异
- CRD需要通过YAML清单创建CRD对象,将资源Schema存储到etcd中,主API服务器基于这些Schema提供CRUD操作;
- 聚合API的资源则由扩展API服务器(这里即Metrics Server)主动向主API服务器注册,不需要提前在集群中创建资源定义对象,资源元数据由扩展服务器动态提供。
2. Metrics Server注册PodMetrics的过程
- Metrics Server部署时,集群中会创建对应的
APIService资源(通常在Metrics Server的清单里有apiservice.yaml文件,可仔细检查),该资源会告诉主API服务器:metrics.k8s.ioAPI组的请求需要代理到Metrics Server的服务; - 当Metrics Server启动后,会通过K8s的API注册机制,向主API服务器提交它支持的资源类型(包括
PodMetrics、NodeMetrics)的元数据信息; - 主API服务器验证通过后,就会将这些资源加入到API列表中,允许用户通过
kubectl get podmetrics等方式访问。
3. 验证方式
- 查看集群中的APIService资源,确认Metrics Server的注册信息:
kubectl get apiservices v1beta1.metrics.k8s.io - 查看集群中已注册的API资源,确认PodMetrics的存在:
kubectl api-resources | grep metrics
内容的提问来源于stack exchange,提问作者Eddy Kim
相关产品推荐
相关产品推荐

