Невозможно получить доступ к сервису на внешнем ip Kubernetes - PullRequest
0 голосов
/ 21 января 2019

У меня проблема с тем, что я не могу получить доступ к сервису с помощью curl, хотя у меня есть внешний IP. Я отвечаю на запрос тайм-аута.Вот мои сервисы

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE crawler-manager-1 NodePort 10.103.18.210 192.168.0.10 3001:30029/TCP 2h redis NodePort 10.100.67.138 192.168.0.11 6379:30877/TCP 5h, а вот мой сервисный файл yaml:

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe
      convert -f docker-compose.yml
    kompose.version: 1.17.0 (a74acad)
  creationTimestamp: null
  labels:
    io.kompose.service: crawler-manager-1
  name: crawler-manager-1
  namespace: cbpo-example
spec:
  type: NodePort
  externalIPs:
    - 192.168.0.10
  ports:
  - name: "3001"
    port: 3001
    targetPort: 3001
  selector:
    io.kompose.service: crawler-manager-1
    run: redis
status:
  loadBalancer: {}

Здесь мой файл развертывания yml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe
      convert -f docker-compose.yml
    kompose.version: 1.17.0 (a74acad)
  creationTimestamp: null
  labels:
    io.kompose.service: crawler-manager-1
  name: crawler-manager-1
  namespace: cbpo-example
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: crawler-manager-1
    spec:
      hostNetwork: true
      containers:
      - args:
        - npm
        - start
        env:
        - name: DB_HOST
          value: mysql
        - name: DB_NAME
        - name: DB_PASSWORD
        - name: DB_USER
        - name: REDIS_URL
          value: redis://cbpo-redis
        image: localhost:5000/manager
        name: crawler-manager-1
        ports:
        - containerPort: 3001
        resources: {}
      restartPolicy: Always
status: {}

У кого-нибудь возникают проблемы, как у меня, когдаработать с кубернетес?Мне нужно получить доступ, чтобы проверить, могут ли два сервиса в моем пространстве имен соединяться друг с другом. Большое спасибо.

1 Ответ

0 голосов
/ 22 января 2019

Вместо связи по ip-адресам для ваших сервисов вы можете общаться с их DNS-именами.

«Нормальным» (не без заголовка) Службам назначается запись DNS A для имя формы my-svc.my-namespace.svc.cluster.local. Это решает на IP-адрес кластера Сервиса.

«Безголовый» (без кластерного IP) Службам также присваивается DNS-запись для имени формы мой-svc.my-namespace.svc.cluster.local. В отличие от обычных Сервисов, это разрешает набор IP-адресов модулей, выбранных Сервисом. Ожидается, что клиенты будут использовать набор или использовать стандарт круговая выборка из набора.

Для получения дополнительной информации, пожалуйста, проверьте Kubernetes DNS для услуг

...