Используйте Конга, чтобы разоблачить Конгу

Я использую Kong для демонстрации Konga — пользовательского интерфейса административного интерфейса Kong.

Я запускаю его, используя стек докеров со следующим файлом докеров:

version: "3.1"

secrets:
  webservices_hostname:
    external: true
  webservices_cert:
    external: true
  webservices_key:
    external: true

services:

#Create a new empty database for kong to use
# postgress used instead of cassendra as I haven't been able to find a healthcheck command for cassendra
  kong-database:
    image: postgres:9.4
    deploy:
      restart_policy:
        condition: any
    environment:
      - POSTGRES_USER=kong
      - POSTGRES_DB=kong
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres"]
      interval: 10s
      timeout: 5s
      retries: 5

#Setup kong database
  kong-migration:
    image: kong
    deploy:
      restart_policy:
        condition: on-failure
    environment:
      - KONG_DATABASE=postgres
      - KONG_PG_HOST=kong-database
    command: kong migrations up
    deploy:
      restart_policy:
        condition: on-failure

#Start the kong server
  kong:
    image: kong
    deploy:
      restart_policy:
        condition: any
    secrets:
     - webservices_cert
     - webservices_key
    environment:
      - KONG_DATABASE=postgres
      - KONG_PG_HOST=kong-database
      - KONG_PG_DATABASE=kong
      - KONG_SSL_CERT=/run/secrets/webservices_cert
      - KONG_SSL_CERT_KEY=/run/secrets/webservices_key
    ports:
      - 80:8000
      - 443:8443
    healthcheck:
      test: ["CMD-SHELL", "curl -I -s -L http://127.0.0.1:8000 || exit 1"]
      interval: 5s
      retries: 10
    restart: on-failure

#The next section starts a UI for kong called konga. 
#We only need a ui for development experimentation and can be removed if no UI is required
# when it is running it can be accessed on port 1337
  konga:
    image: pantsel/konga
    deploy:
      restart_policy:
        condition: on-failure
    ports:
     - 1337:1337

#Configure kong to forward requests to flaskapp
  kong-addapis-konga:
    image: byrnedo/alpine-curl
    deploy:
      restart_policy:
        condition: on-failure
    command: "-i -X POST \
                --url http://kong:8001/apis/ \
                --data 'name=flaskapp' \
                --data 'uris=/flaskapp' \
                --data 'upstream_url=http://flaskapp:80'
                --data 'https_only=false'
             "

Я запускаю стек командой

docker stack deploy --compose-file ./docker-compose.yml webservices

Если я получу доступ к хосту: 1337, Konga будет работать как обычно. Я могу перейти к подключениям, и он без проблем подключается к API администратора kong (http://kong:8001)

Однако, если я захожу на https://host:443/konga или http://host:80/konga он получает доступ к konga без проблем, однако, когда я пытаюсь подключить konga к kong, я получаю сообщение об ошибке:

"О, щелк! Не удается подключиться к http://kong:8001"

Почему доступ к Konga через Kong вызывает такое поведение? Я думал, что не имеет значения, как я подключаюсь к Konga — как только я доберусь туда, не должно быть никакой разницы между использованием прямого порта или использованием Kong.

Любые идеи?


person Robert3452    schedule 15.01.2018    source источник


Ответы (2)


Вы должны создать сеть и подключить ее к конгу. Используйте созданную сеть в конфигурации вашей конги.

docker network create my-net

docker network connect my-net kong

docker run --rm --network my-net -p 8080:8080 pantsel/konga start --kong-url http://kong:8001
person Reza    schedule 30.04.2018

У меня была такая же ошибка, добавление косой черты в конец маршрута решило проблему. вместо http://host:80/konga вызовите http://host:80/konga/ Значит маршрут будет вместо /konga, /konda/

person Abdulrahman    schedule 22.01.2020