NGINX Service Mesh의 간편한 배포 및 업그레이드

NGINX Service Mesh 는 완전히 통합된 Service Mesh 플랫폼입니다. NGINX Plus를 기반으로 하는 Data Plane을 활용하여 mTLS, 트래픽 관리, 고가용성과 같은 주요 기능을 지원하는 동시에 Service Mesh의 모든 이점을 제공합니다.

Service Mesh는 특히 Kubernetes 플랫폼 사용자에게 클라우드 네이티브 스택의 중요한 구성 요소가 되고 있습니다. Service Mesh는 Kubernetes 애플리케이션에 중요한 관찰 가능성, 보안 및 트래픽 제어를 제공하므로 기능을 구현할 필요가 없어 개발자가 비즈니스 로직에 집중할 수 있습니다.

목차

1. Helm 지원
2. Air-Gap 설치
3. In-Place 업그레이드
4. 요약

1. NGINX Service Mesh Helm 지원

NGINX Service Mesh 에는 모든 CI/CD Pipeline의 일부로 완전히 스크립트 가능한 설치, 업그레이드 및 제거를 위한 nginx-meshctl CLI 도구가 포함되어 있습니다. 그러나 CLI가 항상 Kubernetes 서비스 관리에 선호되는 접근 방식은 아닙니다. NGINX Service Mesh 릴리스 1.1.0은 Kubernetes에 대한 애플리케이션 및 서비스의 생성, 구성, 패키징 및 배포를 자동화하는 인기 있고 지원되는 도구인 Helm에 대한 지원을 추가합니다.

NGINX Service Mesh 와 함께 Helm을 사용하려면 먼저 Helm 저장소를 추가하십시오:

# helm repo add nginx-service-mesh https://helm.nginx.com/nginx-service-mesh
# helm repo update

그런 다음 전용 Namespace에서 선택한 release‑name 으로 차트를 설치합니다.

# helm install release-name nginx-service-mesh –n nginx-mesh-namespace

2. Air-Gap 설치

표준 Kubernetes 방식에 따라 기본적으로 NGINX Service Mesh는 배포 시 다양한 Kubernetes 지원 Registry에서 Control Plane과 Data Plane 모두에 대한 컨테이너 이미지를 가져옵니다. 이미지 중 일부는 Public NGINX Container Registry에서 가져온 반면 다른 이미지(예: Prometheus 및 Grafana)는 Public Registry에서 가져왔습니다. 이 모델은 Public Outbound 액세스가 있는 Kubernetes 환경에서는 잘 작동하지만 직접적인 Public Outbound 액세스가 없는 제한적이고 잠긴 더 안전한 Kubernetes 환경에서는 작동하지 않습니다.

NGINX Service Mesh 릴리스 1.1.0에서는 이미지를 미리 가져와서 내부 Kubernetes 환경에서만 액세스할 수 있는 자체 Private Image Registry로 Push 하는 Air-Gap 설치에 대한 지원이 도입되었습니다.

미리 가져온 이미지를 Private Registry 서버로 Push 할 때 설명서에 지정된 이미지 이름과 태그를 사용해야 합니다. 그런 다음 nginx-meshctl deploy 명령에 --disable-public-images 플래그를 포함하여 Private Registry 서버에서 이미지를 가져오도록 NGINX Service Mesh에 지시합니다.

# nginx-meshctl deploy --registry-server your-private-registry --disable-public-images

3. In-Place 업그레이드

이전에는 NGINX Service Mesh를 업그레이드할 때 업데이트된 릴리스를 설치하기 전에 실행 중인 배포를 제거하거나 별도의 클러스터에 업데이트를 배포하고 사용자를 마이그레이션하는 두 가지 선택이 있었습니다. 업데이트 전에 Mesh에서 관리하는 서비스를 재배포해야 했기 때문에 둘 다 이상적이지 않았습니다.

NGINX Service Mesh 1.1.0은 중단이 훨씬 적은 경험을 위해 In-Place 업그레이드를 지원합니다. 또한 필요한 모든 컨테이너 이미지와 NGINX Service Mesh Control Plane이 자동으로 업그레이드되고 CRD(Custom Resource Definitions)가 유지됩니다.

nginx-meshctl Command Line를 설치하고 다음 명령을 실행하여 현재 배포를 최신 버전으로 업그레이드할 수 있습니다.

# nginx-meshctl upgrade

Note: In-Place 업그레이드를 실행할 때 Data Plane Sidecar는 Rerolled 되거나 확장(scaled up)될 때까지 이전 버전에서 계속 실행됩니다. 확장의 경우 새 Pod는 최신 Sidecar 버전을 실행합니다.

4. NGINX Service Mesh 요약

NGINX Service Mesh 1.1.0 버전 부터는 사용자 경험 개선에 계속해서 초점을 맞추고 있습니다. 릴리스 정보에서 이 릴리스에 대해 자세히 알아보고 시작하려면 문의 페이지에서 NGINX Service Mesh를 신청하세요. 개발, 테스트 및 Production 환경에 배포하고 GitHub에서 피드백을 제출할 수 있습니다.

NGINX Service Mesh를 최대한 활용하려면 Ingress 및 Egress를 함께 관리할 수 있도록 NGINX Ingress Controller와 통합 하는 것이 좋습니다. 아래 NGINX 엔지니어 Kate Osborn이 NGINX Service Mesh와 NGINX Plus 기반 버전의 NGINX Ingress Controller를 결합하여 Kubernetes Ingress 및 Egress 트래픽 관리를 간소화하는 방법을 보여줍니다.

NGINX Service Mesh와 함께 사용할 수 있는 Ingress Controller의 솔루션 개요를 확인하고 NGINX Plus Ingress Controller 성능을 직접 테스트 및 사용해 보려면 지금 30일 무료 평가판을 신청하거나 사용 사례에 대해 최신 소식을 빠르게 전달받고 싶으시면 아래 뉴스레터를 구독하세요.