Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

341
Vistas
Cómo incluir en la lista blanca un puerto personalizado de entrada nginx

Tengo un ingreso de nginx en Kubernetes con una lista blanca (gestionada por una anotación nginx.ingress.kubernetes.io/whitelist-source-range ) y también una asignación de puerto personalizada (que expone un puerto 22 del servidor SFTP a través de --tcp-services-configmap mapa de configuración). La lista blanca funciona muy bien para 80 y 443, pero no funciona para 22. ¿Cómo incluyo en la lista blanca mi puerto personalizado?

La configuración se ve más o menos así:

 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-ingress-controller namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx spec: ... spec: serviceAccountName: nginx-ingress-serviceaccount containers: - name: nginx-ingress-controller image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.33.0 args: - /nginx-ingress-controller - --configmap=$(POD_NAMESPACE)/nginx-configuration - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services - --udp-services-configmap=$(POD_NAMESPACE)/udp-services - --publish-service=$(POD_NAMESPACE)/ingress-nginx - --annotations-prefix=nginx.ingress.kubernetes.io ports: - name: http containerPort: 80 - name: https containerPort: 443 - name: sftp containerPort: 22 ... kind: Ingress metadata: name: {{ .controllerName }} annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/whitelist-source-range: {{ .ipAllowList }} kind: ConfigMap apiVersion: v1 metadata: name: tcp-services namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx data: 22: "default/sftp:22"

ACTUALIZAR

Gracias a @jordanm, descubrí que puedo restringir las direcciones IP para todos los puertos a través de loadBalancerSourceRanges en LoadBalancer en lugar de nginx:

 kind: Service apiVersion: v1 metadata: name: ingress-nginx namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx spec: externalTrafficPolicy: Local type: LoadBalancer loadBalancerIP: {{ .loadBalancerIp }} selector: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx ports: - name: http port: 80 targetPort: http - name: https port: 443 targetPort: https - name: sftp port: 22 targetPort: sftp loadBalancerSourceRanges: {{ .ipAllowList }}
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

En primer lugar, eche un vistazo a este problema: ip-whitelist-support .

Las IP no están en la lista blanca para los servicios TCP, una alternativa sería crear un firewall separado para los servicios TCP y agregar las IP en la lista blanca a nivel del firewall.

Para la ubicación específica {{ $path }} hemos definido {{ if isLocationAllowed $location }} .

Consulte la documentación oficial de Ingress: ingress-kubernetes .

Ingress expone las rutas HTTP y HTTPS desde fuera del clúster a los servicios dentro del clúster. El enrutamiento del tráfico está controlado por reglas definidas en el recurso Ingress.

Un Ingress no expone puertos o protocolos arbitrarios. La exposición de servicios distintos de HTTP y HTTPS a Internet suele utilizar un servicio de tipo Service.Type=NodePort o Service.Type=LoadBalancer.

Debe tener un controlador de Ingress para satisfacer un Ingress. Solo crear un recurso de Ingress no tiene efecto.

En este caso, el controlador de ingreso del instrumento de recursos de Ingress cómo manejar las solicitudes http/https. En este enfoque, el controlador nginx-ingress como software (introducir funcionalidad de nivel 7/equilibrio de carga).

Si está interesado en la compatibilidad con nginx ingress tcp:

Ingress no admite servicios TCP o UDP. Por esta razón, este controlador de Ingress usa las banderas --tcp-services-configmap y --udp-services-configmap

Ver: exponer-tcp-udp-servicios

Si desea verificar una configuración más granular mientras trabaja con su servicio tcp, debe considerar usar la configuración de firewall/equilibrio de carga L4 proporcionada por su proveedor de nube.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda