Развернутый модуль AWS-EKS предоставляется с типом службы. Порт узла недоступен через IP-адрес узла и открытый порт. - PullRequest
0 голосов
/ 14 февраля 2019

Я создал кластер k8s на AWS, используя EKS с Terraform, следуя этой документации https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html.

У меня есть один рабочий узел . Note: Everything is in Private Subnets

Только что запущенный контейнер hello-world для node.js

Код для определения модуля

kind: Pod
metadata:
  name: nodehelloworld.example.com
  labels:
    app: helloworld
spec:
  containers:
  - name: k8s-demo
    image: wardviaene/k8s-demo
    ports:
    - name: nodejs-port
      containerPort: 3000

Код для определения службы

apiVersion: v1
kind: Service
metadata:
  name: helloworld-service
spec:
  ports:
  - port: 31001
    nodePort: 31001
    targetPort: nodejs-port
    protocol: TCP
  selector:
    app: helloworld
  type: NodePort

kubectl get pods показывает, что мой модуль запущен и работает

nodehelloworld.example.com   1/1       Running   0          17h

kubectl get svc показывает, что моя служба также создана

helloworld-service   NodePort    172.20.146.235   <none>        31001:31001/TCP   16h

kubectl describe svc helloworld-service она имеет правильный конечная точка и правильный селектор

Так вот в чем проблема

Когда я нажимаю NodeIP: незащищенный порт (который 31001) яполучая This site can’t be reached

, затем я использовал kubeclt port-forward podname 3000:3000

Я могу ударить с помощью curl -v localhost:3000 достижимо

Я проверил правило входящей группы безопасности 0-65535 из моегоБлок CIDR.

Что-то еще мне не хватает?

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Исправлено. В AWS EKS нодпорты не работают, как в Pure Kubernetes.когда вы выставляете

  - port: 31001
    targetPort: nodejs-port
    protocol: TCP

31001, это будет показывать порт кластера IP.

, чтобы получить nodePort, вы должны описать свой сервис и найти NodePort - описание, которое было выставлено

0 голосов
/ 26 февраля 2019

Если вы пытаетесь подключиться извне кластера, то в группе безопасности для рабочих узлов вам нужно будет добавить настраиваемую запись TCP для включения входящего трафика через порт 31001. Add an entry to Inbound rules in your worker node security group

Если это не сработает, убедитесь, что вы можете подключиться к узлу через этот IP.Я обычно подключаюсь с помощью VPN-клиента.

...