10.3 Kong 정보

kong.png

Kong은 API 게이트웨이의 핵심 기능 중 하나로 강력한 라우팅 시스템을 제공합니다.

이 라우팅 시스템은 클라이언트 요청을 적절한 서비스 또는 엔드포인트로 정확하고 효율적으로 전달하는 역할을 합니다.

Kong의 라우팅 기능을 통해 사용자는 쿠버네티스에 생성한 pod에 대한 service를 원하는 호스트 경로로 연결 가능합니다.

아래의 과정을 통해서 이러한 절차가 이루어지게 됩니다.

  • kong gateway service 등록
  • 해당 gateway service에 route 생성

10.3.1 kong gateway service 등록

gateway services 리스트 화면 Gateway service는 사용자가 Kong API 게이트웨이를 통해 연결하고자 하는 쿠버네티스 Pod에 대한 서비스를 나타냅니다.

이는 Kong에서 관리하는 다양한 백엔드 서비스를 대표합니다.

Kong Manager 페이지에서는 좌측 메뉴의 “Gateway Services” 탭을 통해 등록된 서비스들을 확인하고 새로운 서비스를 등록할 수 있습니다.

kong gateway service 등록 방법

  1. New Gateway Service 클릭: 2. Kong Manager의 Gateway Services 섹션에서 “New Gateway Service” 버튼을 클릭합니다.

  2. 서비스 정보 입력: gateway service 생성

    • Name: 사용자가 식별할 수 있는 Gateway 서비스의 이름을 입력합니다.

    • Gateway Service Endpoint: 쿠버네티스 pod 에 대한 service 정보를 입력합니다. 2가지 방법이 있습니다.

      Using URL: 서비스와 연결할 URL을 입력합니다. URL 형식은 쿠버네티스 서비스의 표준 DNS 주소 형식을 따릅니다. 서비스 정보 입력 - url 사용

      • http://[service-name].[namespace].svc.cluster.local:[service-port]
      • [service-name] : 쿠버네티스 내의 서비스 이름
      • [namespace] : 해당 서비스가 속한 네임스페이스
      • [service-port] : 서비스가 사용하는 포트

      Using protocol, host and path 서비스 정보 입력 - protocol, host, path, port 사용

      • protocol : 쿠버네티스 service 내부 통신이기 때문에 http
      • host : [service-name].[namespace].svc.cluster.local
      • path : 백엔드 서비스에 접근할때 필요한 path ( 대부분의 경우 빈값 )
      • port : 서비스가 사용하는 포트

10.3.2 해당 gateway service에 route 생성

route-list.png Route 생성은 클라이언트 요청에 대한 규칙을 정의하는 과정입니다.

이 과정을 통해 클라이언트에서 사용하는 호스트 정보를 정의하고, 해당 요청이 적절한 게이트웨이 서비스로 연결되도록 합니다.

kong Route 등록 방법

  1. Routes -> New Route 클릭 or Gateway Services -> route를 생성하고자 하는 service 클릭 -> Routes -> New Route 클릭 gateway-service-route.png
  2. route 정보 입력 route-create.png
  • Gateway Service : Route를 적용하고자 하는 Gateway Service id를 입력합니다.
  • Name : 사용자가 식별할 수 있는 Route의 이름을 입력합니다.
  • Host : 클라이언트가 사용할 요청의 host 주소를 설정합니다.
  • Methods : 클라이언트에게 허용할 Http Method를 지정합니다. (빈 값일 경우 전체 허용)
  • Paths : 사용자에게 허용할 path를 지정합니다. 반드시 하나 이상의 path가 지정되어야합니다. (아무것도 적용하기 싫으면 / 를 입력) route-create-path.png

10.3.3 tls 적용방법

  1. root 권한으로 접속하여 ‘kubectl edit secrets -n serengeti-kong serengeti-kong-proxy-cert-new’ 명령을 사용합니다
  2. ca.crt, tls.crt, tls.key 의 값을 새로 받은 tls 인증서의 텍스트 값을 base64인코딩 하여 교체해줍니다.
  3. ‘kubectl rollout restart deployment -n serengeti-kong serengeti-kong’ 명령을 통해서 kong을 리스타트 합니다