Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

515
Visualizações
AWS EKS, ¿Cómo acceder a Pod directamente desde el navegador?

Soy muy nuevo en kubernetes. Pasé la última semana aprendiendo sobre nodos, pods, clústeres, servicios e implementaciones.

Con eso, estoy tratando de comprender un poco más cómo funciona la red para kubernetes. Solo quiero exponer una página web simple de nginx docker y presionarla desde mi navegador.

Nuestra VPC está configurada con una conexión directa, por lo que puedo acceder a instancias EC2 en sus direcciones IP privadas. También configuré el clúster de EKS usando la interfaz de usuario en aws por ahora como private . Con fines de prueba, agregué mi rango cidr para que se permita en todos los TCP como un grupo de seguridad adicional en la interfaz de usuario del clúster de EKS.

Aquí están mis definiciones básicas de servicio e implementación:

 apiVersion: v1 kind: Service metadata: name: testing-nodeport namespace: default labels: infrastructure: fargate app: testing-app spec: type: NodePort selector: app: testing-app ports: - port: 80 targetPort: testing-port protocol: TCP --- apiVersion: apps/v1 kind: Deployment metadata: name: testing-deployment namespace: default labels: infrastructure: fargate app: testing-app spec: replicas: 1 selector: matchLabels: infrastructure: fargate app: testing-app template: metadata: labels: infrastructure: fargate app: testing-app spec: containers: - name: nginx image: nginx:1.14.2 ports: - name: testing-port containerPort: 80

Puedo ver que todo funciona correctamente cuando ejecuto:

kubectl get all -n default

Sin embargo, cuando trato de acceder a la dirección IP de NodePort en el puerto 80 , no puedo cargarla desde el navegador.

Puedo acceder al pod si primero configuro un kubectl proxy en la siguiente URL (ya que el proxy se inicia en el puerto 8001 ):

 http://localhost:8001/api/v1/namespaces/default/services/testing-nodeport:80/proxy/

Estoy bastante perdido en este punto. No sé qué estoy haciendo mal y por qué no puedo acceder a la ventana acoplable nginx básica fuera del comando de proxy kubectl.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

¿Qué pasa si usas la opción proxy ? Algo como esto:

 kubectl port-forward -n default service/testing-nodeport 3000:80 Forwarding from 127.0.0.1:3000 -> 80 Forwarding from [::1]:3000 -> 80

Después de esto, puede acceder a su servicio K8S desde localhost:3000 . Más información aquí

over 4 years ago · Santiago Trujillo Relatório

0

Imagine que el clúster de kubernetes es como su VPC de AWS. Tiene su propia red interna con IP privadas y conecta todos los POD. Kubernetes solo expone las cosas que solicita explícitamente que se expongan.

El puerto de servicio 80 está disponible dentro del clúster. Entonces, un pod puede hablar con este servicio usando el service name:service port . Pero si necesita acceder desde el exterior, necesita ingress controller / LoadBalancer . También puede utilizar NodePort con fines de prueba. El puerto del nodo será algo mayor que 30000 (dentro de este 30000-32767).

Debería poder acceder a nginx usando node IP:nodeport . Aquí asumí que tiene un grupo de seguridad que abre el puerto del nodo.


Usa este yaml. Actualicé el puerto del nodo para que sea 31000. Puede acceder a nginx en nodeport:31000 . Como mencioné, no puede usar 80 como está dentro del clúster. Si necesita usar 80, entonces necesita un controlador de ingreso.

 apiVersion: v1 kind: Service metadata: name: testing-nodeport namespace: default labels: infrastructure: fargate app: testing-app spec: type: NodePort selector: app: testing-app ports: - port: 80 targetPort: testing-port protocol: TCP nodePort: 31000 --- apiVersion: apps/v1 kind: Deployment metadata: name: testing-deployment namespace: default labels: infrastructure: fargate app: testing-app spec: replicas: 1 selector: matchLabels: infrastructure: fargate app: testing-app template: metadata: labels: infrastructure: fargate app: testing-app spec: containers: - name: nginx image: nginx:1.14.2 ports: - name: testing-port containerPort: 80
over 4 years ago · Santiago Trujillo Relatório

0

Bien, después de más de 16 horas depurando esto, finalmente descubrí lo que estaba pasando. En fargate no puede configurar los grupos de seguridad por nodo como puede hacerlo con los grupos de nodos administrados. Estaba configurando las reglas del grupo de seguridad en la configuración de "Grupos de seguridad adicionales". Sin embargo, fargate aparentemente ignora por completo esas configuraciones y SOLAMENTE usa el grupo de seguridad de su configuración de "Grupo de seguridad de clúster". Entonces, en la interfaz de usuario de EKS, configuré las reglas correctas en el "Grupo de seguridad del clúster" y ahora puedo acceder a mi módulo directamente en una instancia de Fargate.

Gran ventaja de esto. Use solo "Grupo de seguridad de clúster" para los nodos de Fargate.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda