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

342
Views
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 answers
Answer question

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 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!