Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
¿Hay alguna forma de vincular K3s/franela a otra interfaz?

Tengo un clúster K3s (v1.20.4+k3s1) con 3 nodos, cada uno con dos interfaces. La interfaz predeterminada tiene una IP pública, la segunda una dirección 10.190.1.0. Instalé K3s con y sin la opción -flannel-backend=none y luego implementé flannel a través de " kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml" , previamente vinculando el contenedor kube-flannel a la interfaz interna a través de los argumentos "--iface=". En esta configuración, los pods kube-flannel obtienen la IP del nodo de la interfaz interna, pero no puedo acceder a los pods en los otros nodos a través de ICPM. Si implemento flannel sin -iface arg, los pods kube-flannel obtienen una dirección de la red 10.42.0.0. Entonces puedo llegar a los pods de los otros hosts, pero el tráfico se enrutará a través de las interfaces públicas, lo que quiero evitar. ¿Alguien tiene un consejo para mí?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El problema se resolvió en la sección de comentarios, pero para una mejor visibilidad, decidí proporcionar una respuesta.

Como podemos ver en la documentación de K3s, K3s usa franela como CNI por defecto:

De forma predeterminada, K3s se ejecutará con flannel como CNI, utilizando VXLAN como backend predeterminado. Para cambiar el CNI, consulte la sección sobre cómo configurar un CNI personalizado.

De forma predeterminada, flannel selecciona la primera interfaz en un host (consulte la documentación de flannel ), pero podemos anular este comportamiento con el indicador --flannel-iface .
Además, podemos configurar explícitamente la dirección IP para anunciar el nodo usando el indicador --node-ip .


He creado un ejemplo simple para ilustrar cómo funciona.

En mi máquina host tengo dos interfaces de red ( ens4 y ens5 ):

 kmaster:~# ip as | grep -i "UP\|inet" 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 inet 127.0.0.1/8 scope host lo 2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000 inet 10.156.15.197/32 brd 10.156.15.197 scope global dynamic ens4 3: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000 inet 192.168.0.2/32 brd 192.168.0.2 scope global dynamic ens5

Sin configurar los --flannel-iface y --node-ip , flannel seleccionará la primera interfaz ( ens4: 10.156.15.197 ):

 kmaster:~# curl -sfL https://get.k3s.io | sh - [INFO] Finding release for channel stable [INFO] Using v1.20.4+k3s1 as release ... [INFO] systemd: Starting k3s kmaster:~# kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP kmaster Ready control-plane,master 97s v1.20.4+k3s1 10.156.15.197

Pero como mencioné antes, podemos anular la interfaz de franela predeterminada con el --flannel-iface :

 kmaster:~# curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--node-ip=192.168.0.2 --flannel-iface=ens5" sh - [INFO] Finding release for channel stable [INFO] Using v1.20.4+k3s1 as release ... [INFO] systemd: Starting k3s kmaster:~# kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP kmaster Ready control-plane,master 64s v1.20.4+k3s1 192.168.0.2
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!