Kubernetes PodPreset не работает
Я хотел поиграть с функцией PodPreset Kubernetes на моем тестовом кластере под управлением версии 1.6.6. 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
Сам кластер работает нормально (у меня есть несколько служб и модулей). Любая идея?
1 ответ
Решение
Конечная точка API "settings.k8s.io/v1alpha1" включена по умолчанию в 1.6.x. Так что вам не нужно указывать в параметре runtime-config.
Можете ли вы попробовать, не указывая ничего в параметре "runtime-config". Вам просто нужен PodPreset для контроля доступа, который у вас уже есть.
Предложение:
minikube stop
minikube start --extra-config=apiserver.runtime-config=settings.k8s.io/v1alpha1=true
Теперь попробуйте поиграть с podpreset. Это сработало для меня.