Skip to content

Latest commit

 

History

History
65 lines (45 loc) · 2.17 KB

README.md

File metadata and controls

65 lines (45 loc) · 2.17 KB

KongSul

How to work Kong Api Gateway with Consul Service Discovery (MicroService)

Kong Introduction

see part of kong api gateway from official site kong-api

* how to register api on kong 

Consul Section

install consul and at the services.json, put the file into /etc/consul.d/services.json and you can run consule command like this:

$ consul agent -dev -config-dir=/etc/consul.d

By example, this is working on localhost, check you're consul ns is working correctly:

$ dig @127.0.0.1 -p 8600 go-svc-1.service.consul
$ dig @127.0.0.1 -p 8600 go-svc-1.service.consul SRV

; <<>> DiG 9.9.7-P3 <<>> @127.0.0.1 -p 8600 go-svc-1.service.consul SRV
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26325
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;go-svc-1.service.consul.	IN	SRV

;; ANSWER SECTION:
go-svc-1.service.consul. 0	IN	SRV	1 1 8082 Faizals-MacBook-Pro.local.node.dc1.consul.

;; ADDITIONAL SECTION:
Faizals-MacBook-Pro.local.node.dc1.consul. 0 IN	A 127.0.0.1
Faizals-MacBook-Pro.local.node.dc1.consul. 0 IN	TXT "consul-network-segment="

;; Query time: 0 msec
;; SERVER: 127.0.0.1#8600(127.0.0.1)
;; WHEN: Wed Dec 27 22:51:37 WIB 2017
;; MSG SIZE  rcvd: 165

and check you're file at /etc/resolv.conf, register nameserver localhost like this:

$ nameserver 127.0.0.1

and you must set on kong.conf at line dns_resolver like this:

$ dns_resolver: 127.0.0.1:8600 // consul host & port 

and register the name of consul ns as upstream_url on kong api like this :

$ curl -i -X POST \
    --url http://localhost:8001/apis/ \
    --data 'name=your-api' \
    --data 'hosts=your-api.com' \
    --data 'upstream_url=http://go-svc-1.service.consul'

Testing Kong api and Consul Service Discovery Working Great Together:

$ curl -i -X GET \
    --url http://localhost:8000/ \
    --header 'Host: your-api.com'