无法创建具有在节点上通告的扩展资源的 pod

Unable to create a pod with extended resources advertised on a node

你好,我有一个单节点集群,我按照 kubernetes-extended-resource 上的文档将名为“sctrls”的扩展资源通告给节点 softserv1141。在这里我 运行 命令:

kubectl get nodes -o yaml

其中输出包含以下部分,表示资源创建成功。

status:
addresses:
- address: 172.16.250.120
  type: InternalIP
- address: softserv1141
  type: Hostname
allocatable:
  cpu: "3"
  ephemeral-storage: "7721503937"
  hugepages-1Gi: "0"
  hugepages-2Mi: "0"
  memory: 16163880Ki
  pods: "110"
  sctrls: "64"
capacity:
  cpu: "3"
  ephemeral-storage: 8182Mi
  hugepages-1Gi: "0"
  hugepages-2Mi: "0"
  memory: 16266280Ki
  pods: "110"
  sctrls: "64"

我尝试创建将扩展资源分配给 pod,并按照 kubernetes-assign-extended-resource-pod 中的文档创建它。 pod文件如下

$ cat nginx-pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: extended-resource-demo
spec:
  containers:
  - name: extended-resource-demo-ctr
    image: nginx
    resources:
      requests:
        sctrls: 3

我在创建 pod 的过程中遇到了以下问题

$ kubectl create -f nginx-pod.yaml 
The Pod "extended-resource-demo" is invalid: 
* spec.containers[0].resources.limits[sctrls]: Invalid value: "sctrls": must be a standard resource type or fully qualified
* spec.containers[0].resources.limits[sctrls]: Invalid value: "sctrls": must be a standard resource for containers
* spec.containers[0].resources.requests[sctrls]: Invalid value: "sctrls": must be a standard resource type or fully qualified
* spec.containers[0].resources.requests[sctrls]: Invalid value: "sctrls": must be a standard resource for containers

我不知道为什么会出现此错误,并且还没有在网上找到任何好的解决方案。但我觉得它可能是 kubectl 版本,因为 docs 将其作为功能状态提及:Kubernetes v1.18 [稳定] 我的 kubectl 版本是

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.8", GitCommit:"ec6eb119b81be488b030e849b9e64fda4caaf33c", GitTreeState:"clean", BuildDate:"2020-03-12T21:00:06Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.8", GitCommit:"ec6eb119b81be488b030e849b9e64fda4caaf33c", GitTreeState:"clean", BuildDate:"2020-03-12T20:52:22Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}

我需要确认这是问题所在还是有未经测试的解决方案。

看起来 docs 中的这一段有答案:“扩展资源完全符合 *.kubernetes.io/ 之外的任何域。有效的扩展资源名称有表单示例。com/foo 其中 example.com 替换为您组织的域,foo 是描述性资源名称。".