Tengo un archivo yaml de implementación que se parece a esto:
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: redisSin embargo, estoy recibiendo este error:
$ 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=falseMi versión de 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"} Después de especificar --validate=falsee , hostname y hostname -f aún devuelven valores diferentes.
Creo que entendí mal algo. Doc dice que setHostnameAsFQDN estará disponible desde kubernetes v1.20
kubectl versión de kubectl. Su versión de kubernetes también debe ser v1.20. Asegúrese de estar utilizando la versión v1.20 de kubernetes.
Utilice kubectl version para ver la versión del cliente y del servidor. Donde la versión del cliente se refiere a la versión de kubectl y la versión del servidor se refiere a la versión de kubernetes .
En cuanto al documento de notas de la versión de k8s v1.20: Previamente presentado en 1.19 detrás de una puerta de funciones, SetHostnameAsFQDN ahora está habilitado de forma predeterminada. Hay más detalles disponibles sobre este comportamiento en la documentación de DNS para servicios y pods.