【问题标题】:Kubernetes PodPreset not workingKubernetes PodPreset 不工作
【发布时间】:2019-01-16 14:30:51
【问题描述】:

我想在运行版本 1.6.6 的测试集群上使用 PodPreset Kubernetes 功能。 Kube-apiserver 开始于(仅包括相关部分):

--storage-backend=etcd2 
--admission-control ...,PodPreset 
--runtime-config=settings.k8s.io/v1alpha1/podpreset

但我仍然得到:

Jun 27 16:34:25 host kube-apiserver[22088]: I0627 16:34:25.701156   22088 reflector.go:236] Listing and watching *settings.PodPreset from k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go:70
Jun 27 16:34:25 host kube-apiserver[22088]: I0627 16:34:25.701487   22088 round_trippers.go:398] curl -k -v -XGET  -H "Accept: application/vnd.kubernetes.protobuf, */*" -H "User-Agent: kube-apiserver/v1.6.6 (linux/amd64) kubernetes/7fa1c17" -H "Authorization: Bearer XXX” https://A.B.C.D:443/apis/settings.k8s.io/v1alpha1/podpresets?resourceVersion=0
Jun 27 16:34:25 host kube-apiserver[22088]: I0627 16:34:25.702702   22088 wrap.go:75] GET /apis/settings.k8s.io/v1alpha1/podpresets?resourceVersion=0: (266.839µs) 404 [[kube-apiserver/v1.6.6 (linux/amd64) kubernetes/7fa1c17] A.B.C.D:37122]
Jun 27 16:34:25 host kube-apiserver[22088]: I0627 16:34:25.703446   22088 round_trippers.go:417] GET https://A.B.C.D:443/apis/settings.k8s.io/v1alpha1/podpresets?resourceVersion=0 404 Not Found in 1 milliseconds
Jun 27 16:34:25 host kube-apiserver[22088]: I0627 16:34:25.703483   22088 round_trippers.go:423] Response Headers:
Jun 27 16:34:25 host kube-apiserver[22088]: I0627 16:34:25.703502   22088 round_trippers.go:426]     Content-Type: application/vnd.kubernetes.protobuf
Jun 27 16:34:25 host kube-apiserver[22088]: I0627 16:34:25.703515   22088 round_trippers.go:426]     Content-Length: 112
Jun 27 16:34:25 host kube-apiserver[22088]: I0627 16:34:25.703527   22088 round_trippers.go:426]     Date: Tue, 27 Jun 2017 14:34:25 GMT
Jun 27 16:34:25 host kube-apiserver[22088]: I0627 16:34:25.703606   22088 request.go:989] Response Body:
Jun 27 16:34:25 host kube-apiserver[22088]: 00000000  6b 38 73 00 0a 0c 0a 02  76 31 12 06 53 74 61 74  |k8s.....v1..Stat|
Jun 27 16:34:25 host kube-apiserver[22088]: 00000010  75 73 12 58 0a 04 0a 00  12 00 12 07 46 61 69 6c  |us.X........Fail|
Jun 27 16:34:25 host kube-apiserver[22088]: 00000020  75 72 65 1a 30 74 68 65  20 73 65 72 76 65 72 20  |ure.0the server |
Jun 27 16:34:25 host kube-apiserver[22088]: 00000030  63 6f 75 6c 64 20 6e 6f  74 20 66 69 6e 64 20 74  |could not find t|
Jun 27 16:34:25 host kube-apiserver[22088]: 00000040  68 65 20 72 65 71 75 65  73 74 65 64 20 72 65 73  |he requested res|
Jun 27 16:34:25 host kube-apiserver[22088]: 00000050  6f 75 72 63 65 22 08 4e  6f 74 46 6f 75 6e 64 2a  |ource".NotFound*|
Jun 27 16:34:25 host kube-apiserver[22088]: 00000060  08 0a 00 12 00 1a 00 28  00 30 94 03 1a 00 22 00  |.......(.0....".|
Jun 27 16:34:25 host kube-apiserver[22088]: E0627 16:34:25.703783   22088 reflector.go:201] k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go:70: Failed to list *settings.PodPreset: the server could not find the requested resource

显然,当我尝试通过 kubectl 提交资源时,它失败了。

error: error validating "pod-preset.yaml": error validating data: found invalid field resources for v1alpha1.PodPresetSpec; if you choose to ignore these errors, turn validation off with --validate=false

集群本身运行正常(我有多个服务和 pod)。有什么想法吗?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    "settings.k8s.io/v1alpha1" API 端点在 1.6.x 中默认启用。所以不需要在 runtime-config 参数中指定。

    您可以尝试在“runtime-config”参数中不指定任何内容。您只需要在准入控制中使用 PodPreset,您已经拥有了。

    【讨论】:

    • 谢谢。也许题外话:但是我可以通过 runtime-config 完全启用的列表在哪里,以及默认情况下在哪个版本中已经启用的列表在哪里?我尝试不使用“runtime-config”,现在 API 服务器看起来还可以。我将 kubectl 升级到 1.6.6,但它仍然失败,除非我添加 --validate=false。那么如何在不直接通过 etcdctl 的情况下列出 pod 预设?
    • 仅供参考:使用 kubectl 1.7“pod 预设”资源最终可以像您从其他人那里习惯的那样工作。
    【解决方案2】:

    建议:

    minikube stop
    
    minikube start --extra-config=apiserver.runtime-config=settings.k8s.io/v1alpha1=true
    

    现在重试播放 podpreset。它对我有用。

    【讨论】:

    • 你能分享你的系统信息吗?我正在使用 ubuntu 20.04 , minikube v1.24.0 , kubernetes v1.22.3 。我可以minikube start 成功,但以extra-config 失败。错误输出可能告诉:The kubelet is not running
    猜你喜欢
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多