Ssoon

[2주차] CHAPTER-09 Traefik 인그레스 구축 본문

Production Kubernetes Online Study

[2주차] CHAPTER-09 Traefik 인그레스 구축

구구달스 2023. 3. 14. 20:19
이정훈님이 집필하신 "24단계 실습으로 정복하는 쿠버네티스" 로 진행하는 CloudNet@ 팀의 PKOS 2주차 정리입니다.

📌 인그레스 ?   " 외부의 HTTP 요청에 대한 서비스 처리 규칙을 정의한 리소스"

 인그레스의 주요 기능

  • URL 및 경로별 백엔드 서비스 분리
  • SSL/TLS 인증서 연동
  • 애플리케이션 관리 효율을 위해 외부 접속에 관한 상세 규칙을 별도 인그레스 리소스로 분리

✅ Traefik 인그레스 콘트롤러 설치

💠 helm 을 이용해 Traefik 을 설치합니다.

💠 values.yaml 을 수정합니다.

💠 Traefik 의 네임스페이스를 생성하고 설치하고 정보를 확인합니다.

인그레스 테스트용 애플리케이션 설치

  인그레스의 주요 용도 : 사용자의 URL 경로에 따라 백엔드 웹서버를 구분해서 응답하는 것

💠 테스트를 위해 서로 다른 4개의 deployment 와 service 를 생성합니다.

💠 별도의 busybox 파드를 생성한 후 각 서비스 이름으로 접속 테스트를 합니다.

Traefik 인그레스 설정 테스트

⛔ Traefik CRD 를 이용한 인그레스 설정

  Traefik 인그레스 설정 파일은 IngressRoute 라는 자체 CRD(Custom Resource Defination) 을 사용합니다.

  CRD ? 사용자가 임의로 자신이 필요한 쿠버네티스 API 리소스를 모아서 원하는 기능을 구현하는 K8S 확장 기능

💠 IngressRoute 설정을 확인합니다.

💠 Ingresroute 리소스를 생성합니다.

💠 Traefik 로드밸런서 IP 와 가상호스트 이름을 /etc/hosts 에 추가합니다.

💠  4 개의 가상 호스트와  URL 경로에 대해 정상적으로 분리되어 접속되는지 확인합니다.

💠 관리자 페이지에서도 확인 할 수 있습니다.

💠 서비스 내 다른 파드로 부하분산 을 확인합니다.

⛔ 사용자 SSL/TLS 인증서 적용

  Traefik 인그레스는 사용자 정의 SSL/TLS 인증서 설치를 지원합니다.

  다수의 웹서버 설정에서 별도로 등록할 필요 없이 단일 Traefik 설정 파일에서 관리할 수 있습니다.

   쿠버네티스에서는 애플리케이션과 네트워크 설정을 분리하여 애플리케이션 설정을 변경하지 않고 배포할 수 있습니다

 

💠 openssl 을 사용해 사용자 인증서를 생성합니다.

💠 CSR (Certificate Signing Request) 과 서버 인증서를 생성합니다.

💠 서버 인증서에 사용할 www.myweb.com.crt  를 Traefik 에 연동하기 위해 Secret으로 저장합니다.

  쿠버네티스는 SSL/TLS 인증서를 Secret 으로 저장합니다.

   Traefik 에서는 Secret 타입의 인증서를 사용합니다.

💠 생성된 Secret 을 Traefik 의 IngressRoute 설정 파일에 추가합니다.

💠 기존에 생성한 IngressRoute 를 삭제하고 새로운 IngressRoute (cafe-tls-crd-ingressroute.yml) 를 생성합니다.

💠 https://www.myweb.com/juice 로 접속하여 앞서 생성한 인증서 정보를 확인합니다.

Comments