Не в состоянии получить доступ к услуге с публичного IP-адреса в Kubernetes - PullRequest
0 голосов
/ 05 июля 2019

Я использую kubernetes и запускаю один сервис. Сервис работает и показывается в сервисе. Но я не могу получить к нему доступ из публичного ip экземпляра. Ниже мой файл развертывания.

apiVersion: v1
kind: Service
metadata:
  name: apache-service
spec:
  selector:
    app: apache
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  type: NodePort

---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: apache-deployment
spec:
  selector:
    matchLabels:
      app: apache
  replicas: 2 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        app: apache
    spec:
      containers:
      - name: apache
        image: mobingi/ubuntu-apache2-php7:7.2
        ports:
        - containerPort: 80

Вот мой список услуг.

NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
apache-service   NodePort    10.106.242.181   <none>        80:31807/TCP   9m5s
kubernetes       ClusterIP   10.96.0.1        <none>        443/TCP        11m

Но когда я проверяю ту же службу из следующего telnet с публичным ip кластера и узла. Он не отвечает.

telnet public-ip:31807

Любой вид помощи будет ощутимым.

1 Ответ

0 голосов
/ 05 июля 2019

Что вы подразумеваете под IP-адресом кластера? Вы имеете в виду узел, который действует как мастер kunernetes? Это не будет работать, если вы используете мастер IP. Поскольку у мастеров нет запланированных развертываний из-за проблем безопасности.

Предоставление службы через нодпорт означает, что служба прослушивает определенный порт в каждом из рабочих узлов. Таким образом, вы можете получить доступ к рабочим узлам kunernetes через порты узлов и получить ответ. Однако если вы создали кластер с использованием облачных провайдеров, таких как aws, группы безопасности рабочих узлов будут защищены. Возможно, вам нужно отредактировать группы безопасности рабочих узлов для доступа к сервису.

...