Я создал кластер на AWS EC2, используя kops
, состоящий из главного узла и двух рабочих узлов, все с назначенным publi c IPv4.
Теперь я хочу создать развертывание с помощью службы, использующей NodePort, чтобы выставить приложение для публикации c.
После создания службы я извлекаю следующую информацию, показывающую, что она правильно идентифицировала мои три модуля:
nlykkei:~/projects/k8s-examples$ kubectl describe svc hello-svc
Name: hello-svc
Namespace: default
Labels: app=hello
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app":"hello"},"name":"hello-svc","namespace":"default"},"spec"...
Selector: app=hello-world
Type: NodePort
IP: 100.69.62.27
Port: <unset> 8080/TCP
TargetPort: 8080/TCP
NodePort: <unset> 30001/TCP
Endpoints: 100.96.1.5:8080,100.96.2.3:8080,100.96.2.4:8080
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
Однако, когда я пытаюсь посетить любой из моих опубликованных c IPv4 на порте 30001, я не получаю ответа от сервера. Я уже создал группу безопасности, позволяющую всем входящим трафикам c на порт 30001 для всех экземпляров.
Все работает с Docker Desktop для Ma c, и здесь я замечаю следующее поле обслуживания отсутствует в выводе выше:
LoadBalancer Ingress: localhost
Я уже изучил https://kubernetes.io/docs/concepts/services-networking/service/, и думаете, что NodePort должен служить моим потребностям?
Любая помощь приветствуется !