TKG 1.3과 NSX Advanced Load Balancer

가장 최근에 올린 글에서 클러스터 API가 TKG에서 어떻게 활용되는지 살펴보았습니다. 이 게시물은 TKG(Tantsu Kubernetes Grid) 멀티 클라우드 버전을 참조하며, TKGm이라고도 합니다. TKG가 탄주 포트폴리오의 다른 TKG 제품과 차별화될 수 있도록 이 게시물에 있는 멀티 클라우드 TKG를 참조하기 위해 이 명명 규칙을 사용할 것입니다. 이 게시물에서는 TKG v1.3의 새로운 기능, 즉 이제 NSX ALB – Advanced Load Balancer(이전의 AVI Vantage)를 지원하여 로드 밸런서 서비스를 활용하는 애플리케이션에 가상 IP 주소를 제공한다는 사실에 대해 자세히 알아보겠습니다. NSX ALB를 vSphere와 Tanzu를 통합하는 방법에 대한 단계를 이미 문서화했습니다. TKGm용 NSX 고급 로드 밸런서의 설정은 매우 유사하지만 워크플로우는 약간 다릅니다. 이것은 이전에 배포된 버전 20.1.4와 비교하여 NSX ALB 버전 20.1.5의 새 설치 관리자 워크플로우입니다. TKG 관리 클러스터 설치 관리자 UI에는 NSX ALB와의 통합을 수용하는 몇 가지 추가 단계도 있습니다. 우리는 이 게시물에 있는 것들을 다룰 것이다.

시작하기 전에 TKGm이 Kube-VIP를 계속 사용하여 관리 클러스터 API 서버와 워크로드 클러스터 API 서버 모두에 프런트엔드 가상 IP 주소를 제공한다는 점을 강조해야 합니다. NSX ALB는 TKGM과 통합되면 로드 밸런서 서비스가 필요한 애플리케이션에 가상 IP 주소를 제공합니다. 따라서 관리 클러스터와 워크로드 클러스터의 구성 파일 모두에서 해당 클러스터의 vSphere IP 주소 끝점이 지정됩니다. 이러한 IP 주소는 정적 주소로 간주되며 DHCP IP 주소 범위를 벗어나야 합니다.

NSX ALB 배포

NSX ALB 배포는 vSphere with Tanzu 블로그 게시물에 이미 요약되어 있는 배포 단계와 대부분 동일합니다. 버전 20.1.5의 큰 차이점은 어플라이언스의 전원을 켜고 시스템 설정, Email/SMTP 및 Multi-tenant 구성을 처음 구성한 후 VMware vCenter/vSphere ESX의 설정 이후 단계로 바로 시작할 수 있다는 점입니다. 시작 UI 아래에 나와 있습니다.

NSX ALB를 구성하는 나머지 단계는 vCenter 및 vSphere 환경에 대한 세부 정보가 추가되고, 인증서가 생성되며, NSX ALB 서비스 엔진과 로드 밸런싱 VIP에 대한 네트워크 및 주소 범위가 선택되고, IPAM 프로필이 생성되는 등 앞에서 설명한 것과 동일합니다. 이 단계는 이미 사용 가능하므로 여기서는 반복하지 않습니다.

TKG 관리 클러스터

TKG 관리 클러스터의 배포는 Cluster API 블로그 게시물에서도 자세히 다루었습니다. 당사와 관련된 추가 항목이 하나 있으며, 이는 NSX ALB 섹션 포함입니다. TKG 관리 클러스터 생성 UI에서 이 새(선택 사항) NSX ALB 섹션은 다음과 같이 표시되며, 현재 부분적으로만 채워져 있습니다.

TKG 관리 클러스터를 생성하기 위한 결과 매니페스트 파일은 다음과 같이 보입니다. 이 파일은 TKGm UI 설치 프로그램이 실행되는 호스트의 $HOME/.tanzu/tkg/clusterconfigs 폴더에 생성됩니다. 이 설정에 구성된 LDAP 또는 OIDC가 없습니다. 대부분의 NSX ALB 구성은 매니페스트의 시작 부분에 있습니다.

Shell

tanzu management-cluster create 명령을 사용하면 위의 구성 파일을 사용하여 관리 클러스터를 원격 설치할 수 있습니다. 출력이 보다 상세하도록 -v 6 옵션을 포함했습니다. 설치 관리자가 vSphere 7을 감지하면 TKGm 대신 vSphere with Tanzu를 설정하는 옵션이 제공됩니다. TKGm 관리 클러스터 배포를 계속하려면 적절하게 대응해야 합니다. 이는 매우 작은 종류(Kubernetes in Docker) 클러스터를 생성하고, 클러스터 API 제공자 확장을 해당 클러스터에 추가한 다음, 이러한 제공자를 사용하여 vSphere에서 VM이 지원하는 TKG 관리 클러스터를 구축하는 일반적인 Cluster API 배포 모델을 거칩니다. 관리 클러스터가 VM에서 실행되고 있으면 컨텍스트가 이 클러스터로 전환되고 해당 클러스터가 제거됩니다. 여기 전체 출력이 있습니다.

Shell

이제 TKG 관리 클러스터가 가동되고 있으며 네트워킹용 Antrea 및 K8이 vSphere 스토리지를 사용할 수 있도록 vSphere CSI와 같은 모든 추가 기능이 있습니다. tanzu login 명령을 사용하여 이 관리 클러스터를 선택하고 로그인할 수 있습니다.

Shell

NSX ALB가 아직 VIP를 제공하도록 호출되지 않았습니다. 관리 클러스터용 VIP는 kube-vip에서 제공합니다. 이제 워크로드 클러스터 배포를 진행할 수 있습니다.

TKG 워크로드 클러스터

워크로드 클러스터를 배포하기 위해 다시 한 번 구성 파일을 생성합니다. 여기 제가 환경에서 사용하던 것이 있습니다. 샘플은 $HOME/.tanzu/tkg/clusterconfigs로 제공됩니다. 이 예에서 워크로드 클러스터는 인터넷에 액세스할 수 없는 공극 환경에서 배포됩니다. 따라서 모든 TKG 이미지는 구성 파일에서 TKG_CUSTOM_IMAGE_REPOSITORY에서 참조되는 로컬 하버 레지스트리에 있습니다.

Shell

이제 이 구성 파일을 적용하여 워크로드 클러스터를 구축할 수 있습니다. tanzu 명령을 사용하여 적용하면 제어부 노드 1개와 작업자 노드 2개를 포함하는 워크로드 클러스터를 생성할 수 있습니다. 구축이 완료되면 새 워크로드 클러스터 컨텍스트를 가져와 KUBECONFIG에 새 워크로드 클러스터 컨텍스트를 추가한 다음 해당 워크로드 컨텍스트를 전환합니다. 나는 이 출력물에 동사성을 첨가하지 않았다. Pinniped 구성은 OIDC 또는 LDAP ID 공급자가 구성되어 있지 않다는 경고 메시지가 표시됩니다. 따라서 관리 권한을 사용하여 워크로드 클러스터에 액세스해야 합니다. Pinniped 및 Dex를 사용한 OIDC 및 LDAP ID 관리는 TKGm v1.3의 또 다른 핵심 기능입니다.

Shell

이제 워크로드 클러스터가 가동되어 실행되고 있지만 다시 한 번 VIP에 대해 NSX ALB를 사용하지 않았습니다. VIP(endpoint)가 구성 파일에 정의되어 있으며, 이를 워크로드 클러스터의 API 서버에 대한 프런트엔드 IP 주소로 구성하는 데 다시 한 번 Kube-VIP가 사용되었습니다. 이제 유형 로드 밸런서 서비스가 필요한 애플리케이션 배포를 진행하면 NSX ALB가 이 VIP를 제공하는 것을 볼 수 있습니다.

로드 밸런서 응용 프로그램

NSX ALB를 테스트하기 위해 Nginx Web Server 앱을 사용합니다. 여기 매니페스트가 있습니다. 3개의 복제본과 연결된 로드 밸런서 서비스로 구성된 배포입니다.

Shell

이 애플리케이션을 적용할 때 NSX ALB에서 서비스에 할당되는 로드 밸런서 IP 주소/가상 IP(VIP)를 확인해야 합니다.

Shell

NSX ALB에서 구성한 범위의 NSX ALB에서 VIP를 성공적으로 수신한 것으로 보입니다. 서비스가 ping 요청에 응답하기 전에 활성화될 때까지 잠시 기다려야 할 수 있습니다. 마지막 테스트는 http 포트 80의 Nginx 웹 서버 기본 랜딩 페이지에 도달할 수 있는지 확인하는 것입니다.

Shell

성공! 현재 NSX ALB는 TKG 워크로드 클러스터에 로드 밸런서 서비스를 위한 VIP를 제공하고 있습니다.

TKGm에서 NSX ALB 문제 해결

NSX ALB와 TKG 간의 이러한 통합은 새로운 AKO 확장을 통해 제공됩니다. VIP 제공에 문제가 있을 경우 특별한 AKO 포드를 쿼리할 수 있습니다. 다음은 내 설정의 AKO 포드에서 가져온 로그 조각입니다. 이러한 로그는 NSX ALB에서 잘못된 구성 문제를 식별하는 데 매우 유용하다는 것을 알게 되었습니다.

Shell

물론 모든 작업이 예상대로 진행되었으면 vSphere UI에 배포되는 서비스 엔진을 관찰할 수 있어야 하며 NSX ALB 관리 포털에 로그인하면 가상 서비스가 표시되는 것을 볼 수 있습니다. 다음은 Applications > Dashboard에서 가져온 보기입니다.

Applications > Virtual Services 보기.

대시보드로 돌아가서 View VS List 대신 View VS Tree를 수행하고 + 기호를 클릭하여 확장하는 것이 좋습니다. 여기에는 서비스와 연결된 TKG 노드의 VS, 풀, 네트워크 및 IP 주소가 표시됩니다. 이 경우 Nginx 애플리케이션에는 3개의 복제본이 있으므로 3개의 다른 노드가 표시됩니다.

이제 TKG 워크로드 클러스터가 NSX 고급 로드 밸런서와 통합되어 로드 밸런서 서비스를 요청하는 내 TKG 클러스터의 애플리케이션에 VIP(가상 IP 주소)를 성공적으로 제공하고 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

[TCE] Introduction : Architecture

Tanzu Community Edition은 Kubernetes 클러스터의 부트스트래핑 및 관리를 가능하게 하는 다양한 구성 요소와 위에서 실행되는 다양한 플랫폼 서비스로…