/ tipo de error
versión kubeadm (use kubeadm version
):
v1.12.2
Estoy configurando un arnés de prueba basado en VM que usa kubeadm para configurar un pequeño clúster de k8s. Las máquinas virtuales están configuradas para configurar direcciones locales de enlace IPv4 y usar DNS de multidifusión para encontrarse entre sí. Debido a la forma en que se configuran las máquinas virtuales, tengo que anular --apiserver-advertisement-address para hacer que los k8 usen la interfaz LAN para la comunicación del nodo, porque no es la interfaz predeterminada.
Desafortunadamente, kubeadm verifica .IsGlobalUnicast()
en la dirección pasada, por lo que se rechaza la dirección IPv4 local de enlace aunque es una forma válida de configurar un clúster pequeño.
kubeadm init
debe aceptar direcciones IPv4 o IPv6 de enlace local, si se especifican explícitamente en la línea de comandos.
kubeadm init --apiserver-advertise-address=169.254.152.255
/ eliminar error
/ tipo de característica
/ sig nodo
/ cartera de pedidos prioritaria
/ asignar @kad
cc @rosti
@danderson
esto es por diseño. nuestra validación es solo una verificación de cordura, porque el kubelet también ignora las direcciones en la interfaz del host que no son unidifusión global:
https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/util/net/interface.go#L305 -L308
los bucles también se anulan:
https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/util/net/interface.go#L408
Por lo tanto, habilitar direcciones de enlace local puede ser problemático en la mayoría de los casos de uso. Deshabilitamos intencionalmente debido a un par de otras condiciones de falla, y este caso de uso es IMO no estándar.
Dada la falta de justificación y el acuerdo general de que esto puede ser más problemático para la mayoría de los usuarios, estamos cerrando.
Si su caso de uso se puede simplificar, generalizar o parchear fácilmente, no dude en volver a abrir.
Comentario más útil
Por lo tanto, habilitar direcciones de enlace local puede ser problemático en la mayoría de los casos de uso. Deshabilitamos intencionalmente debido a un par de otras condiciones de falla, y este caso de uso es IMO no estándar.