실습
Ingress-NGINX Controller
Introduction
Helm 차트 리포지토리 추가
Ingress-NGINX Controller 설치
배포된 구성요소 확인
생성된 Service 확인
생성된 NLB 상세 내용 확인
웹 브라우저를 열고 Service의 External IP 주소로 접속 - 아래의 명령어로 주소 확인 가능
생성된 NGINX Ingress Controller Pod에서 실행중인 프로세스 확인
NGINX 설정 파일 리뷰
생성된 NLB 주소로 접속했을때 404 Not Found가 나오는 이유 확인
Virtual hosting
Deployment 생성
Service 생성
생성된 Service 확인
Ingress 생성
생성된 Ingress 확인
NGINX Ingress Controller 로그 확인
생성된 IngressClass 확인
Ingress 수정 - IngressClass 명시
Ingress 객체에 발생한 Event 확인
NGINX Ingress Controller 엔드포인트 확인
NGINX Ingress Controller 로그 확인
Ingress에 명시한 Host 주소를 HTTP 헤더값에 추가하고 NGINX Ingress Controller 엔드포인트 호출
NGINX 설정 파일에 위에서 명시한 Host들에 대한 설정들이 추가 되었는지 확인
Ingress 삭제
NGINX 설정 파일에 위에서 삭제한 Ingress 명시한 Host들에 대한 설정들이 삭제 되었는지 확인
리소스 삭제
Path based routing
리소스 생성
생성된 리소스 확인
Ingress 생성
Ingress 객체에 발생한 Event 확인
NGINX Ingress Controller 로그 확인
Ingress에 명시한 Host 주소를 HTTP 헤더값에 추가하고 각각의 경로로 NGINX Ingress Controller 엔드포인트 호출
NGINX Ingress Controller 로그 확인
e.g.
NGINX Ingress Controller 로그 확인
Ingress에 명시한 Host 주소를 HTTP 헤더값에 추가하고 각각의 경로로 NGINX Ingress Controller 엔드포인트 호출
새로운 리소스 생성
새로 배포한 애플리케이션 호출
Ingress 수정
NGINX Ingress Controller 로그 확인
Ingress에 명시한 Host 주소를 HTTP 헤더값에 추가하고 새롭게 명시한 경로들로 NGINX Ingress Controller 엔드포인트 호출
리소스 삭제
TLS/SSL
CFSSL 설치
CA 인증서 및 CA 사설키 생성
CA 설정파일 생성
인증서 생성요청 설정파일 생성
인증서 및 사설키 생성
Secret 생성
데모 웹사이트 배포
생성된 리소스 확인
Ingress 생성
Ingress 생성 확인 - ADDRESS에 NGINX Ingress Controller 엔드포인트가 업데이트 되는지 확인
Ingress에 명시한 Host 주소를 호출하면 NGINX Ingress Controller 엔드포인트로 연결되도록 하고 프로토콜로 데모 웹사이트 호출
리소스 삭제
Clean up
NGINX Ingress Controller 삭제
AWS Load Balancer Controller
Introduction
EKS 클러스터가 생성되어 있는 AWS 계정번호 확인하고 환경변수로 저장
Node에 부여된 Label을 통해서 EKS 클러스터 이름 확인하고 환경변수로 저장
IAM OIDC 제공자 생성
AWS Load Balancer Controller에 부여할 IAM 권한이 명시된 JSON 파일 다운로드
다운받은 IAM 정책 JSON 파일 리뷰
IAM 정책 생성
이미 IAM 정책이 존재할 경우 정책 문서 업데이트
ServiceAccount 생성
Helm이 설치되어 있지 않을 경우에는 아래의 명령어로 Helm 설치
EKS 리포지토리 추가
위에서 추가한 리포지토리가 추가되었는지 확인
위에서 추가한 리포지토리에 있는 Helm 차트 목록 확인
AWS Load Balancer Controller 설치
AWS Load Balancer Controller 로그 확인
데모 웹사이트 배포
생성된 리소스 확인
Ingress 생성
생성된 Ingress 확인
위에서 생성한 Ingress에 발생한 Event 확인
AWS Load Balancer Controller 로그 확인
Ingress 수정
Ingress 상태 확인
Ingress에 발생한 Event 확인
AWS Load Balancer Controller 로그 확인
아래의 명령어를 실행해서 생성된 ALB 엔드포인트를 확인하고 웹브라우저를 통해서 접근이 되는지 확인
생성된 ALB 이름을 확인하고 환경변수로 저장
ALB의 상세 내용 확인
ALB의 Scheme 확인
ALB가 생성된 서브넷 확인
ALB가 생성된 서브넷에 부여된 태그 확인
AWS Load Balancer Controller가 ALB를 생성한 서브넷을 선택하는 방법 확인 - https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/deploy/subnet_discovery
AWS Load Balancer Controller로 Ingress 생성할때 요구되는 파라미터 및 기본값 확인 - https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/ingress/annotations
Ingress 수정
Ingress에 발생한 Event 확인
AWS Load Balancer Controller 로그 확인
아래의 명령어를 실행해서 생성된 ALB 엔드포인트를 확인하고 웹브라우저를 통해서 접근이 되는지 확인
기존에 생성된 ALB가 존재하는지 확인
새롭게 생성된 ALB의 ARN를 확인하고 환경변수로 저장
아파치 웹서버 배포
Ingress 수정
아래의 명령어를 실행해서 생성된 ALB 엔드포인트를 확인하고 웹브라우저를 통해서 접근이 되는지 확인
cURL 명령어로 Host 값을 nginx.example.com으로 명시하고 ALB 엔드포인트 호출
cURL 명령어로 Host 값을 httpd.example.com으로 명시하고 ALB 엔드포인트 호출
ALB의 리스너 ARN를 확인하고 환경변수로 저장
ALB 리스너 확인
ALB 리스너 규칙 확인
ALB에 연동된 대상그룹들의 ARN을 확인하고 환경변수로 저장
대상그룹 확인
대상그룹에 포함된 대상 목록 확인
Pod 목록 확인
아파치 Deployment의 Replica 갯수를 3개로 조정
Pod 목록 확인
대상그룹에 포함된 대상 목록 확인
Ingress 삭제
AWS Load Balancer Controller 로그 확인
ALB가 삭제되었는지 확인
리소스 삭제
IngressGroup
Ingress 생성
생성된 Ingress 확인
위에서 생성한 Ingress에 발생한 Event 확인
AWS Load Balancer Controller 로그 확인
아래의 명령어를 실행해서 생성된 ALB 엔드포인트를 확인하고 웹브라우저를 통해서 접근이 되는지 확인
Product 서비스 배포
리소스가 정상적으로 생성되었는지 확인
/product 경로로 접속할 경우 위에 배포한 서비스로 연결되도록 Ingress 생성
생성된 Ingress 확인
위에서 생성한 Ingress에 발생한 Event 확인
AWS Load Balancer Controller 로그 확인
Ingress 수정
Ingress 확인
Ingress에 발생한 Event 확인
처음에 생성한 Ingress의 ALB 엔드포인트에 방금 생성한 Ingress에 명시한 경로로 웹브라우저를 통해서 접근이 되는지 확인 - 아래의 명령어로 주소 확인 가능
Product 서비스의 로그 확인
Product 서비스의 루트 경로 호출
Product 서비스의 /product 경로 호출
Product 서비스 수정
Product 서비스의 루트 경로 호출
Product 서비스의 /product 경로 호출
처음에 생성한 Ingress의 ALB 엔드포인트에 /product 경로로 웹브라우저를 통해서 접근이 되는지 확인 - 아래의 명령어로 주소 확인 가능
Payment 서비스 배포
리소스가 정상적으로 생성되었는지 확인
/payment 경로로 접속할 경우 위에 배포한 서비스로 연결되도록 Ingress 생성
생성된 Ingress 확인
위에서 생성한 Ingress에 발생한 Event 확인
AWS Load Balancer Controller 로그 확인
처음에 생성한 Ingress의 ALB 엔드포인트에 /payment 경로로 웹브라우저를 통해서 접근이 되는지 확인 - 아래의 명령어로 주소 확인 가능
위에서 개별로 생성한 3개의 Ingress들이 동일한 ALB를 사용하는지 확인
리소스 삭제
Last updated