Kong 인그레스 설치
Kubernetes에 Kong 설정은 다음과 같이 간단합니다.
# using YAMLs
$ kubectl apply -f https://bit.ly/k4k8s
# or using Helm
$ helm repo add kong https://charts.konghq.com
$ helm repo update
# Helm 2
$ helm install kong/kong
# Helm 3
$ helm install kong/kong --generate-name --set ingressController.installCRDs=false
Kong에 연결 테스트
먼저 Kong 인그레스에 IP를 확인 하십시오.
$ kubectl get svc -n kong
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kong-proxy LoadBalancer 10.35.251.209 35.XXX.XXX.XX 80:32118/TCP,443:31462/TCP 35d
kong-validation-webhook ClusterIP 10.35.254.2 <none> 443/TCP 35d
Kong에 다음처럼 요청하면 HTTP 404 Not Found를 반환해야합니다.
$ curl -i 35.XXX.XXX.XX
HTTP/1.1 404 Not Found
Date: Tue, 02 Jun 2020 01:29:39 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Content-Length: 48
X-Kong-Response-Latency: 0
Server: kong/2.0.4
{"message":"no Route matched with those values"}
echo-server 설정
Kong 인그레스 컨트롤러를 사용하는 방법을 보여주기 위해 echo-server 애플리케이션을 설정하십시오.
$ kubectl apply -f https://bit.ly/echo-service
service/echo created
deployment.apps/echo created
기본 프록시
이전에 작성된 echo-server를 프록시하기 위해 인그레스 규칙을 작성하십시오.
$ echo '
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo
spec:
rules:
- http:
paths:
- path: /foo
backend:
serviceName: echo
servicePort: 80
' | kubectl apply -f -
ingress.extensions/demo created
인그레스 규칙을 테스트 하십시오.
curl -i 35.XXX.XXX.XX/foo
HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Date: Tue, 02 Jun 2020 01:34:01 GMT
Server: echoserver
X-Kong-Upstream-Latency: 7
X-Kong-Proxy-Latency: 0
Via: kong/2.0.4
Hostname: echo-758859bbfb-8xqbp
Pod Information:
node name: gke-crawler-1-default-pool-917bc6f9-05nt
pod name: echo-758859bbfb-8xqbp
pod namespace: default
pod IP: 10.32.0.132
<-- clipped -->
모든 것이 올바르게 배포되면 위의 응답이 표시됩니다. 이는 Kong이 Kubernetes 내에서 실행중인 응용 프로그램으로 트래픽을 올바르게 라우팅 할 수 있는지 확인합니다.