Git Product home page Git Product logo

Comments (12)

theweakgod avatar theweakgod commented on May 27, 2024

Hello, perhaps what you need is this: consul.md

from apisix.

kayx23 avatar kayx23 commented on May 27, 2024

i am using it apisix-docker 3.8 but i am unable to make connection between consul and apisix

Please see: https://docs.api7.ai/apisix/how-to-guide/service-discovery/consul-integration

As it sounds like a connectivity issue, if you can share how you started APISIX and Consul, as well as your configurations, that would be very helpful to help suggest the next step.

from apisix.

KalepuHarish avatar KalepuHarish commented on May 27, 2024

Hi @kayx23,

Thank you for response and to your point below is the way i am staring APISIX and Consul.

1. i am using apisix-docker and using docker compose i am starting apisix below is the compose file config.yaml file
docker-compose.yaml file:

version: "3"

services:
apisix-dashboard:
image: apache/apisix-dashboard:3.0.1-alpine
restart: always
volumes:
- ./dashboard_conf/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml
ports:
- "9000:9000"
networks:
apisix:

apisix:
image: apache/apisix:${APISIX_IMAGE_TAG:-3.8.0-debian}
restart: always
volumes:
- ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
depends_on:
- etcd
##network_mode: host
ports:
- "9180:9180/tcp"
- "9080:9080/tcp"
- "9091:9091/tcp"
- "9443:9443/tcp"
- "9092:9092/tcp"
networks:
apisix:

etcd:
image: bitnami/etcd:3.5.11
restart: always
volumes:
- etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: "true"
ALLOW_NONE_AUTHENTICATION: "yes"
ETCD_ADVERTISE_CLIENT_URLS: "http://etcd:2379"
ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
ports:
- "2379:2379/tcp"
networks:
apisix:

web1:
image: nginx:1.19.0-alpine
restart: always
volumes:
- ./upstream/web1.conf:/etc/nginx/nginx.conf
ports:
- "9081:80/tcp"
environment:
- NGINX_PORT=80
networks:
apisix:

web2:
image: nginx:1.19.0-alpine
restart: always
volumes:
- ./upstream/web2.conf:/etc/nginx/nginx.conf
ports:
- "9082:80/tcp"
environment:
- NGINX_PORT=80
networks:
apisix:

prometheus:
image: prom/prometheus:v2.25.0
restart: always
volumes:
- ./prometheus_conf/prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
networks:
apisix:

grafana:
image: grafana/grafana:7.3.7
restart: always
ports:
- "3000:3000"
volumes:
- "./grafana_conf/provisioning:/etc/grafana/provisioning"
- "./grafana_conf/dashboards:/var/lib/grafana/dashboards"
- "./grafana_conf/config/grafana.ini:/etc/grafana/grafana.ini"
networks:
apisix:

networks:
apisix:
driver: bridge

volumes:
etcd_data:
driver: local

config.yaml file

discovery:
consul:
servers:
- "http://127.0.0.1:8500"
apisix:
node_listen: 9080 # APISIX listening port
enable_ipv6: false

enable_control: true
control:
ip: "0.0.0.0"
port: 9092

deployment:
admin:
allow_admin: # https://nginx.org/en/docs/http/ngx_http_access_module.html#allow
- 0.0.0.0/0 # We need to restrict ip access rules for security. 0.0.0.0/0 is for test.

admin_key:
  - name: "admin"
    key: edd1c9f034335f136f87ad84b625c8f1
    role: admin                 # admin: manage all configuration data

  - name: "viewer"
    key: 4054f7cf07e344346cd3f287985e76a2
    role: viewer

etcd:
host: # it's possible to define multiple etcd hosts addresses of the same etcd cluster.
- "http://etcd:2379" # multiple etcd address
prefix: "/apisix" # apisix configurations prefix
timeout: 30 # 30 seconds

plugin_attr:
prometheus:
export_addr:
ip: "0.0.0.0"
port: 9091

2. Running consul using brew install in my macbook and its running on 8500 port with UI. using below commands

brew tap hashicorp/tap
brew install hashicorp/tap/consul

And also i tried another way i.e

  1. Running APISIX on AWS EC2 instance with same config using docker only
  2. Running Consul on Another EC2 Instance in this case also i am unable to make connection between them.
    below is the doc using to install consul: https://developer.hashicorp.com/consul/install

Thanks,
Harish

from apisix.

theweakgod avatar theweakgod commented on May 27, 2024

discovery:
consul:
servers:

Use Networks Gateway.

from apisix.

KalepuHarish avatar KalepuHarish commented on May 27, 2024

@kayx23 But i am not running consul using docker. but could you give little detailed answer with example please that will help a lot please.

from apisix.

kayx23 avatar kayx23 commented on May 27, 2024

discovery:
consul:
servers:

Replace 127.0.0.1 with your host's private ip address:

image

from apisix.

KalepuHarish avatar KalepuHarish commented on May 27, 2024

@kayx23 thank you so much will try and let you know

from apisix.

KalepuHarish avatar KalepuHarish commented on May 27, 2024

but what if i am doing like below:

1. Running APISIX on AWS EC2 instance with same config using docker only
2. Running Consul on Another EC2 Instance in this case also i am unable to make connection between them.
below is the doc using to install consul: https://developer.hashicorp.com/consul/install

from apisix.

kayx23 avatar kayx23 commented on May 27, 2024
  1. similar to what I mentioned above, replace 127.0.0.1 with your EC2 host's private ip address.
  2. you would have to research a bit more on your own to configure out how to adjust the networking and security group setups.

from apisix.

KalepuHarish avatar KalepuHarish commented on May 27, 2024
Screenshot 2024-02-23 at 1 05 10 PM as you suggested followed same but if you attached screenshot still its not able to connect to consul

from apisix.

theweakgod avatar theweakgod commented on May 27, 2024

docker inspect apisix container, and use NETWORKS GATEWAY as ur consul host.

from apisix.

kayx23 avatar kayx23 commented on May 27, 2024

as you suggested followed same but if you attached screenshot still its not able to connect to consul

@KalepuHarish I cannot reproduce your issue unfortunately.

Any update? Still struggling with the same?

from apisix.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.