Kubeadm: la especificación de node-cidr-mask-size como controllerManagerExtra arg no tuvo prioridad

Creado en 7 mar. 2018  ·  4Comentarios  ·  Fuente: kubernetes/kubeadm

¿Qué palabras clave buscó en los problemas de kubeadm antes de presentar esta?

controllerManagerExtraArgs, node-cidr-mask-size

¿Es este un INFORME DE ERROR o una SOLICITUD DE FUNCIÓN?

INFORME DE ERROR

Versiones

versión kubeadm (use kubeadm version ): v1.9.3

Medio ambiente :

  • Versión de Kubernetes (use kubectl version ): v1.9.3
  • Proveedor de nube o configuración de hardware : VirtualBox
  • SO (por ejemplo, de / etc / os-release):
    NAME="Container Linux by CoreOS" ID=coreos VERSION=1576.4.0 VERSION_ID=1576.4.0 BUILD_ID=2017-12-06-0449 PRETTY_NAME="Container Linux by CoreOS 1576.4.0 (Ladybug)" ANSI_COLOR="38;5;75" HOME_URL="https://coreos.com/" BUG_REPORT_URL="https://issues.coreos.com" COREOS_BOARD="amd64-usr"
  • Kernel (por ejemplo, uname -a ): Linux k8s-master 4.13.16-coreos-r2 # 1 SMP Mié 6 de diciembre 04:27:34 UTC 2017 x86_64 Intel (R) Xeon (R) CPU E3-1505M v5 @ 2.80GHz GenuineIntel GNU / Linux
  • Otros :

¿Qué sucedió?

Estaba especificando node-cidr-mask-size en un archivo de configuración de kubeadm en controllerManagerExtraArgs para establecer la bandera. kube-controller-manager se inició con 2 instancias de --node-cidr-mask-size se le pasaron. La segunda instancia fue la predeterminada que agrega kubeadm y anuló el valor que estaba intentando establecer.

¿Qué esperabas que sucediera?

kube-controller-manager debería haberse iniciado con una instancia de --node-cidr-mask-size o al menos la que especifiqué sería la segunda para que tuviera prioridad.

¿Cómo reproducirlo (de la forma más mínima y precisa posible)?

  1. Ejecute kubeadm init --config=myconfig.yaml con lo siguiente como contenido del archivo myconfig.yaml
    apiVersion: kubeadm.k8s.io/v1alpha1 kind: MasterConfiguration api: advertiseAddress: "fd10::101" networking: serviceSubnet: fd30::0/110 podSubnet: "fd20:0::/120" controllerManagerExtraArgs: node-cidr-mask-size: "120"
  2. Compruebe las banderas con las que se inicia kube-controller-manager.

¿Algo más que necesitemos saber?

Este fue un problema para mí al intentar usar kubeadm para configurar un clúster IPv6 y especificar una podSubnet.

Comentario más útil

@tmjd Lo networking.podSubnet a controllerManagerExtraArgs.cluster-cidr y agregando allocate-node-cidrs también, tal como lo hubiera hecho el código kubeadm si podSubnet hubiera sido especificado directamente.

Modificando su ejemplo original, se convierte en:

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:  
  advertiseAddress: "fd10::101"
networking:
  serviceSubnet: fd30::0/110   
  # MOVED BELOW podSubnet: "fd20:0::/120"    
controllerManagerExtraArgs:
  allocate-node-cidrs: "true"
  cluster-cidr: "fd20:0::/120"
  node-cidr-mask-size: "120"

Esta solución es esencialmente eludir la declaración if kubeadm aquí:
https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342

No parece que kubeadm use podSubnet para otra cosa que no sea la validación, pero podría estar equivocado.

Sin embargo, todavía preferiría poder anular el tamaño de la máscara cidr del nodo de una manera más compatible.

Todos 4 comentarios

todavía presente en 1.9.6.

Realmente debería ser solo una opción bajo la clave networking , actualmente solo coloca --node-cidr-mask-size en la configuración dos veces, al principio y al final

@tmjd Lo networking.podSubnet a controllerManagerExtraArgs.cluster-cidr y agregando allocate-node-cidrs también, tal como lo hubiera hecho el código kubeadm si podSubnet hubiera sido especificado directamente.

Modificando su ejemplo original, se convierte en:

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:  
  advertiseAddress: "fd10::101"
networking:
  serviceSubnet: fd30::0/110   
  # MOVED BELOW podSubnet: "fd20:0::/120"    
controllerManagerExtraArgs:
  allocate-node-cidrs: "true"
  cluster-cidr: "fd20:0::/120"
  node-cidr-mask-size: "120"

Esta solución es esencialmente eludir la declaración if kubeadm aquí:
https://github.com/kubernetes/kubernetes/blob/86a58202b68d04b2e31b56db80b4d2a4dec77c93/cmd/kubeadm/app/phases/controlplane/manifests.go#L336 -L342

No parece que kubeadm use podSubnet para otra cosa que no sea la validación, pero podría estar equivocado.

Sin embargo, todavía preferiría poder anular el tamaño de la máscara cidr del nodo de una manera más compatible.

@tmjd Fix debería aterrizar en la próxima versión de kubeadm del maestro.

¿Cuál es el estado de esto?
Actualmente estoy configurando un clúster de Kubernetes con:

kubeadm version: &version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.4", GitCommit:"5ca598b4ba5abb89bb773071ce452e33fb66339d", GitTreeState:"clean", BuildDate:"2018-06-06T08:00:59Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

El problema sigue ocurriendo aquí.

¿Fue útil esta página
0 / 5 - 0 calificaciones