Kubernetes que no reenvían paquetes entre nodos -- kubernetes camp Relacionados El problema

kubernetes not forwarding packets between nodes


0
vote

problema

Español

He establecido un clúster de Kubernetes en Oracle VirtualBox con una máquina virtual maestra (192.168.0.150) y dos máquinas virtuales del trabajador (.151 y .152) conectadas a través del "adaptador puente" de VirtualBox. Estoy usando la red de franela y el CIDR de la red POD es 10.244.0.0/16. He creado un despliegue que consiste en 4 réplicas de NGINX Server, con un servicio usando el NodoPort 30300.

Estoy probando el sistema con "CURL 'IP del nodo trabajador': 30300" y he experimentado que aproximadamente el 50% de las solicitudes que reciben el servidor de NGINX, pero la otra mitad vuelve con un error: "CURL: (7) Error al conectarse a 192.168.0.151:30300: No hay ruta para host ". Sospecho que las solicitudes se sirven cuando el programador devuelve una POD que se está ejecutando en el nodo del trabajador actual (el nodo con la IP que se usa en la solicitud de curl), pero si el programador le da una vaina que está situada en el otro nodo, que El paquete no se reenvía a ese nodo.

¿Es posible usar el servicio de NodoPort con múltiples nodos de trabajadores y sin equilibrador de carga externa?

Aquí puede ver mis archivos YAML utilizados para crear la implementación y el servicio:

despliegue.yaml:

  --- apiVersion: apps/v1 kind: Deployment metadata:   name: nginx-deployment   labels:     app: nginx spec:   replicas: 4   selector:     matchLabels:       app: nginx   template:     metadata:       labels:         app: nginx     spec:       containers:         - name: nginx           image: nginx:1.15.4           ports:             - containerPort: 80   

service.yaml

  --- apiVersion: v1 kind: Service metadata:   name: nginx-service   labels:     app: nginx spec:   ports:     - port: 8080       targetPort: 80       name: web       nodePort: 30300   type: NodePort   selector:     app: nginx   
Original en ingles

I have set a up a kubernetes cluster in Oracle Virtualbox with one master VM (192.168.0.150) and two worker VMs (.151 and .152) connected via Virtualbox's "Bridged Adapter". I am using flannel network and the CIDR of the pod network is 10.244.0.0/16. I have created a deployment consisting 4 replicas of nginx server, with a service using the nodePort 30300.

I am testing the system with "curl 'IP of worker node':30300" and I have experienced that about the 50% of requests served properly by the nginx server, but the other half returns with an error: "curl: (7) Failed to connect to 192.168.0.151:30300: No route to host". I suspect that the requests get served when the scheduler returns a pod which is running on the current worker node (the node with the IP used in the curl request), but if the scheduler gives a pod which is situated on the other node, than the packet is not forwarded to that node.

Is is possible to use nodePort service with multiple worker nodes and without external load balancer?

Here you can see my yaml files used for creating the deployment and the service:

deployment.yaml:

--- apiVersion: apps/v1 kind: Deployment metadata:   name: nginx-deployment   labels:     app: nginx spec:   replicas: 4   selector:     matchLabels:       app: nginx   template:     metadata:       labels:         app: nginx     spec:       containers:         - name: nginx           image: nginx:1.15.4           ports:             - containerPort: 80 

service.yaml

--- apiVersion: v1 kind: Service metadata:   name: nginx-service   labels:     app: nginx spec:   ports:     - port: 8080       targetPort: 80       name: web       nodePort: 30300   type: NodePort   selector:     app: nginx 
  

Lista de respuestas

0
 
vote

Exactamente, el propósito de usar una NODEPORT no es Para usar un equilibrador de carga externo y use suyo propio en su subred. No hay nada de malo en su configuración. Para asegurarse de que su problema es la red de clústeres, intente lo siguiente: Puede escalar su réplica a "1", luego verifique la misma manera que las direcciones IP. Debe obtener una respuesta de ambas direcciones IP de nodo. Si no, compruebe si su puertos y firewall están configurados correctamente. Además, puede verificar la guía que usó para implementar el clúster de Kubernetes o KUBAADM.

 

Exactly, the purpose of using a NodePort is not to use an external load balancer and use your own in your subnet. There is nothing wrong with your configuration. To make it sure that your problem is cluster networking, try the following: you can scale your replica to "1", then check the same way for both IP addresses. You need to get an answer from both node IP addresses. If not, check if your ports and firewall are configured correctly. Also, you can check the guide that you used to deploy Kubernetes cluster or kubeadm.

 
 

Relacionados problema

93  ¿Cómo volver a intentar la imagen en una vaina de kubernetes?  ( How to retry image pull in a kubernetes pods ) 
Soy nuevo en Kubernetes. Tengo un problema en las vainas. Cuando ejecuto el comando kubectl get pods Resultado: NAME READY ST...

3  Ejecutar programáticamente los comandos de Kubernetes en un clúster de GKE fresco  ( Programmatically run kubernetes commands on a fresh gke cluster ) 
Para ejecutar una prueba de carga de una aplicación que estoy desarrollando, estoy creando un clúster de motor de contenedor de Google (GKE), cree un par de d...

1  Cómputo de cómputo instancia insalubre del 50% del tiempo  ( Compute engine unhealthy instance down 50 of the time ) 
Comencé a usar Google Cloud hace 3 días, así que soy completamente nuevo para ello. Tengo 4 vainas desplegadas en el motor de Google Kubernetes: frontend: ...

2  Kubernetes matando continuamente y recreando la última vaina  ( Kubernetes continuously killing and recreating last pod ) 
El último contenedor (3er) se está eliminando y recreado continuamente por Kubernetes. Pasa desde corriendo hasta el estado de terminación. La UI de Kubernete...

-2  ¿Hay alguna manera de instalar MySQL a través de DockerFile en un contenedor de Ubuntu Docker? [cerrado]  ( Is there a way to install mysql via dockerfile in an ubuntu docker container ) 
cerrado . Esta pregunta debe ser más enfocado . Actualmente no está aceptando respuestas. ...

0  Nginx daemonset - ¿Cómo selecciono la dirección IP para enlazar?  ( Nginx daemonset how do i select which ip address to bind to ) 
Tengo un clúster de metal desnudo de Docker Enterprise K8 que se ejecuta en CENTOS8, y siguiendo a los documentos oficiales para instalar NGINX utilizando arc...

1  ¿Cómo podemos reiniciar la vaina de Kubernetes si su preparación falla?  ( How can we restart the kubernetes pod if its readiness fail ) 
una pregunta rápida. Sé que si la sonda de la provividad de Kubernetes falla, Kubernetes ayudará a reiniciar la vaina e intentará nuevamente. Pero, ¿qué tal l...

0  Jenkins construye Daemer Daemer que no se ejecuta en el clúster de Kubernetes  ( Jenkins build docker daemon not running on kubernetes cluster ) 
Soy nuevo en DEV OPS e intentando construir mi código usando Jenkins y cargarlo en el clúster de Kubernetes que está alojado en la nube de IBM. Pero cuando ej...

0  ¿Cómo montar un directorio en Windows en un contenedor con Kubernetes en Docker para Windows?  ( How to mount a directory in windows on a container with kubernetes on docker for ) 
Estoy usando Docker para Windows 2.3.0.4 (establo) respaldado por WSL2 en Windows 10 versión 2004 y con Soporte de Kubernetes habilitado. Estoy tratando de ...

2  ¿Qué servidor web debo usar dentro de Kubernetes para Ruby On Rails? [cerrado]  ( Which web server should i use inside kubernetes for ruby on rails ) 
cerrado . Esta pregunta es basada en opinión . Actualmente no está aceptando respuestas. ¿...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos