API 게이트웨이 Kong 시리즈(2) 배포

7221 단어
배포 환경:
[OS]
centos 6.8 (centos 6.5라면 6.8로 업그레이드하십시오. 그렇지 않으면 docker가 지원되지 않습니다)
 
[Docker]
Client version: 1.7.1
Client API version: 1.19
Docker engine 1.9 이상 버전 권장, docker-compose 지원
 
[Kong]
Version: 0.9.9
모두가 알고 있는 원인으로 인해 국내 링크dockerhub와github는 모두 어느 정도의 문제가 있으므로daocloud를 사용하는 것을 권장합니다.io의 docker 렌즈 가속 서비스 이미지 풀 속도 향상
 
배포 프로세스
1. 데이터베이스 배포
kong은 2가지 데이터베이스 카스텔라와postgres를 지원합니다. 이쪽은 응용 장면이 크지 않기 때문에postgres를 사용합니다.
명령을 사용하려면 다음과 같이 하십시오.
sudo docker run -d\
--name kong-database\
--restart=always\
-p 5432:5432\
-e POSTGRES_USER=kong\
-e POSTGRES_DB=kong\
-v/var/lib/containers/kong/data:/var/lib/postgresql/data\
postgres
완성 후 용기 자동 시작
P.S: 마지막volume의 맵을 주의하십시오. 용기 내 데이터베이스를 로컬/var/lib/containers/kong/data에 비추어 영구화합니다. 이동할 때 데이터를 옮기는 것을 잊지 마십시오.
 
2.kong 서비스 배포
sudo docker run -d\
--name kong-core\
--restart=always\
-p 8001:8001\
-p 20802:8443\
-p 20801:8000\
-p 7946:7946\
-p 7946:7946/udp\
--link kong-database:kong-database\
-e KONG_DATABASE=postgres\
-e KONG_PG_HOST=kong-database\
-v/etc/localtime:/etc/localtime:ro\
-v /etc/letsencrypt:/etc/letsencrypt:ro\
-v /usr/local/container/kong/kong.conf:/usr/local/kong/kong.conf:ro\
-v/usr/local/container/kong/nginx-kong.conf/:/usr/local/kong/nginx-kong.conf:ro\
kong
 
SSL을 구성하려면:
letsencrypt의 무료 인증서를 사용합니다. 어떻게 만드는지 다른 글 보십시오.
sudo vi/usr/local/container/kong/kong.conf
1. ssl 수정cert_키는 당신의 개인 키pem (이 경로는 위의/etc/letsencrypt/live/your.domain.com/privkey.pem)
2. ssl 수정cert는 인증서pem입니다. (이 경로는 위의/etc/letsencrypt/live/your.domain.com/fullchain.pem에 대응합니다)
 
sudo vi/usr/local/container/kong/nginx-kong.conf
1. ssl 수정certificate_키는 당신의 개인 키pem (이 경로는 위의/etc/letsencrypt/live/your.domain.com/privkey.pem)
2. ssl 수정certificate는 당신의 인증서pem(이쪽 경로는 위의/etc/letsencrypt/live/your.domain.com/fullchain.pem)에 대응합니다
 
완료 후 컨테이너에 들어가기
sudo docker exec -it kong-core/bin/bash
구성 다시 로드
kong reload
컨테이너 종료
exit
 
P.S:
1. 이 시간대를 수정하고 만약 그렇지 않으면 ln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime(그렇지 않으면 서버/클라이언트 시간 불일치로 인해 hmac-sha1 플러그인 검증에 영향을 미칠 수 있음)
2.kong.conf 및nginx-kong.다음에 ssl을 설정하기 위해서readOnly로 마운트합니다. 처음 시작할 때kong의 기본값에 따라 이 두 개의 파일을 만듭니다. 그렇지 않으면 파일을 생성하지 않으면 시작하는데 문제가 발생할 수 있습니다. 첫 번째run을 시작할 때 로로 불러오지 않고 자동으로 생성합니다. 그리고 rm에서 이 용기를 제거하고 로로 다시 마운트해서 시작하면 로컬이 자동으로 생성됩니다.마지막으로 이 두 파일chomd 700에 대해
 
3. kong-dashboard 배치
ui를 통해 플러그인을 쉽게 변경할 수 있도록 편리한 플러그인 ui를 설치합니다
sudo docker run -d\
--name kong-ui\
--restart=always\
--link kong-core:kong-core\
-p 8080:8080\
pgbi/kong-dashboard
시작 후 Kong node URL을 입력하고 위에서 링크한 Kong-core (여기가 바로 "kong-core") 이름을 입력하십시오. (제가 IP를 사용해 봤는데 아무것도 정상적이지 않습니다.)
 
추가 정보 docker-compose.yml
 1 version: "2"
 2 
 3 services:
 4   kong-database:
 5     image: postgres
 6     container_name: kong-database
 7     restart: always
 8     ports:
 9       - "5432:5432"
10     environment:
11       - POSTGRES_USER=kong
12       - POSTGRES_DB=kong
13     volumes:
14       - "/var/lib/containers/kong/data:/var/lib/postgresql/data"
15   kong:
16     image: kong:0.9.9
17     container_name: kong-core
18     environment:
19       - KONG_DATABASE=postgres
20       - KONG_PG_HOST=kong-database
21     restart: always
22     ports:
23       - "20801:8000"
24       - "20802:8443"
25       - "8001:8001"
26       - "7946:7946"
27       - "7946:7946/udp"
28     links:
29       - kong-database
30     volumes:
31       - "/etc/localtime:/etc/localtime:ro"
32       - "/etc/letsencrypt:/etc/letsencrypt:ro"
33       - "/usr/local/container/kong/kong.conf:/usr/local/kong/kong.conf:ro"
34       - "/usr/local/container/kong/nginx-kong.conf/:/usr/local/kong/nginx-kong.conf:ro"
35   kong-ui:
36     image: pgbi/kong-dashboard
37     container_name: kong-ui
38     restart: always
39     links:
40       - kong-core
41     ports:
42       - "8080:8080"

 
전재 대상:https://www.cnblogs.com/shown1985/p/6474074.html

좋은 웹페이지 즐겨찾기