Неизвестное поле «setHostnameAsFQDN», несмотря на использование последнего клиента kubectl

#kubernetes #deployment #kubectl #podspec

#kubernetes #развертывание #kubectl #podspec

Вопрос:

У меня есть файл развертывания yaml, который выглядит следующим образом:

 apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-kubernetes
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello-kubernetes
  template:
    metadata:
      labels:
        app: hello-kubernetes
    spec:
      setHostnameAsFQDN: true
      hostname: hello
      subdomain: world
      containers:
      - name: hello-kubernetes
        image: redis 
 

Однако я получаю эту ошибку:

 $ kubectl apply -f dep.yaml  

error: error validating "dep.yaml": error validating data: ValidationError(Deployment.spec.template.spec): unknown field "setHostnameAsFQDN" in io.k8s.api.core.v1.PodSpec; if you choose to ignore these errors, turn validation off with --validate=false
 

Моя версия kubectl:

 $ kubectl version --client
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0", GitCommit:"af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38", GitTreeState:"clean", BuildDate:"2020-12-08T17:59:43Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"}
 

После указания --validate=falsee hostname и hostname -f по-прежнему возвращает разные значения.

Я считаю, что я что-то не понял. В документе говорится, что setHostnameAsFQDN это будет доступно с версии kubernetes v1.20

Комментарии:

1. напишите, какая версия у вашего сервера k8s.

Ответ №1:

Вы показали kubectl версию. Ваша версия kubernetes также должна быть версии v1.20. Убедитесь, что вы используете kubernetes версии v1.20.

Используется kubectl version для просмотра как клиентской, так и серверной версии. Где версия клиента относится к kubectl версии, а версия сервера относится к kubernetes версии.

Что касается документа k8s v1.20 release note doc:, ранее представленного в 1.19 за воротами функций, SetHostnameAsFQDN теперь включено по умолчанию. Более подробная информация об этом поведении доступна в документации для DNS для служб и модулей

Комментарии:

1. О, бедный я. Спасибо за разъяснение! Сервер K8S оказался на версии v1.18.9