올해 초에 NGINX 소프트웨어 솔루션을 위한 새로운 제어 평면으로 NGINX Management Suite를 출시했습니다 . 이를 통해 단일 창에서 NGINX 데이터 평면의 사용자 애플리케이션과 REST API를 구성, 확장, 보호 및 모니터링할 수 있습니다.
NGINX 관리 제품군은 모듈형 디자인을 갖추고 있습니다. 핵심은 인스턴스 관리자 모듈로, 전체 NGINX 오픈 소스 및 NGINX Plus 인스턴스에 대한 추적, 구성 및 가시성을 제공합니다. 이 글을 쓰는 시점에서 API Connectivity Manager는 API 게이트웨이로 실행되는 NGINX Plus를 관리하고 조율하는 데 사용되는 또 다른 모듈입니다.
NGINX 관리 제품군은 베어 메탈, Linux 가상 머신 또는 컨테이너화되어 실행될 수 있습니다. Kubernetes에 배포하는 데 권장되는 방법은 제공되는 Helm 차트를 사용하는 것입니다. 하지만 특정 목적을 위해서는 자체 Docker 이미지를 빌드하고 Helm에 의존하지 않는 사용자 정의 CI/CD 파이프라인을 통해 수명 주기를 관리해야 할 수도 있습니다.
[ 편집자 - 이 게시물은 Docker 이미지 빌드 프로세스를 완전히 자동화하기 위해 2023년 2월에 업데이트되었습니다.]
NGINX Management Suite에 대한 Docker 이미지를 만드는 데 필요한 리소스의 GitHub 저장소를 제공하며, Instance Manager 및 API Connectivity Manager의 다음 버전을 지원합니다.
Docker 이미지를 빌드하려면 다음이 필요합니다.
Docker 이미지를 실행하려면 다음이 필요합니다.
kubectl
Docker 이미지를 빌드하려면 다음 지침을 따르세요.
메모: 본 문서는 출판 당시의 NGINX Management Suite UI를 정확하게 표현하기 위해 최선을 다했지만, UI는 변경될 수 있습니다. 이 지침을 참고로 사용하고 필요에 따라 현재 UI에 맞게 조정하세요.
GitHub 저장소를 복제합니다.
$ git clone https://github.com/nginxinc/NGINX-Demos 'NGINX-Demos'에 복제... 원격: 객체 열거: 215, 완료. 원격: 사물 세기: 100% (215/215), 완료. 원격: 객체 압축: 100% (137/137), 완료. 원격: 총 215(델타 108), 재사용 171(델타 64), 팩 재사용 0 수신 객체: 100% (215/215), 2.02 MiB | 1.04 MiB/s, 완료.
델타 해결: 100% (108/108), 완료.
빌드 디렉토리로 변경:
$ cd NGINX-데모/nginx-nms-docker/
docker
ps를
실행하여 Docker가 실행 중인지 확인한 다음 buildNIM.sh 스크립트를 실행하여 Docker 이미지를 빌드합니다. ‑i
옵션은 자동 빌드 모드를 설정하고, ‑C
와 ‑K
는 각각 NGINX Management Suite 인증서와 키의 이름을 지정하는 필수 옵션이며, ‑t
옵션은 이미지가 푸시되는 개인 레지스트리의 위치와 이름을 지정합니다.
$ ./scripts/buildNIM.sh -i -C nginx-repo.crt -K nginx-repo.key -t registry.ff.lan:31005/nginx-nms:2.5.1 ==> NGINX Management Suite docker 이미지 빌드 Docker 데몬에 빌드 컨텍스트 전송 92.19MB 1/18단계: ubuntu:22.04에서 ---> a8780b506fa4 2/18단계: ARG NIM_DEBFILE ---> 0f2354280c34에서 실행 중 중간 컨테이너 0f2354280c34 제거 [...] ---> 0588a050c852 18/18단계: CMD /deployment/startNIM.sh ---> d0cc5466a43d에서 실행 중 중간 컨테이너 d0cc5466a43d 제거 ---> 25117ec0410a 25117ec0410a를 성공적으로 빌드했습니다.registry.ff.lan:31005/nginx-nms:2.5.1을 성공적으로 태그 지정했습니다.푸시는 저장소 [registry.ff.lan:31005/nginx-nms] 9c4918474e3a를 참조합니다. 42543d044dbb를 푸시했습니다: 1621b2ec0a5e를 푸시했습니다: c6a464fc6a79를 푸시했습니다: 75fa1d3c61bb를 푸시했습니다: 3501fcf5dbd8을 푸시했습니다: d4a221057e67을 푸시했습니다: 9ad05eafed57을 푸시했습니다: f4a670ac65b6를 푸시했습니다: 2.5.1 푸시: 다이제스트: sha256:9a70cfdb63b71dc31ef39e4f20a1420d8202c85784cb037b45dc0e884dad74c9 크기: 2425
다음 지침에 따라 배포 매니페스트를 준비하고 Kubernetes에서 NGINX Management Suite를 시작하세요.
이전 섹션의 4단계 에서 다운로드한 NGINX Management Suite 라이선스를 Base64로 인코딩하고 출력을 클립보드에 복사합니다.
$ base64 -w0 nginx-mgmt-suite.lic TulNRS1WZXJz...
좋아하는 편집기를 사용하여 manifests/1.nginx-nim.yaml을 열고 다음과 같이 변경하세요.
spec.template.spec.containers
섹션에서 기본 이미지 이름( your.registry.tld/nginx-nim2:tag
)을 이전 섹션의 3단계 에서 ‑t
옵션으로 지정한 Docker 이미지 이름(이 경우, registry.ff.lan:31005/nginx-nms:2.5.1 )으로 바꿉니다.
spec: ...
template:
...
spec:
containers:
- name: nginx-nim2
image: your.registry.tld/nginx-nim2:tag
spec.template.spec.containers.env
섹션에서 지정된 각 이름
의 값
필드에 다음과 같은 대체 내용을 넣어 인증 자격 증명을 구성합니다.
NIM_USERNAME
– (선택 사항) 기본 관리자를
관리자 계정 이름으로 바꿉니다.NIM_PASSWORD
– (필수) 기본 nimadmin을
강력한 비밀번호로 바꿉니다.NIM 라이센스
– (필수) 기본값을 교체합니다. <BASE64_인코딩된_라이센스_파일>
위의 1단계에서 생성한 base64로 인코딩된 라이선스를 사용합니다.spec: ...
template:
...
spec:
containers:
...
env:
...
- name: NIM_USERNAME
값: 관리자
- 이름: NIM_PASSWORD
값: nimadmin
- 이름: NIM_LICENSE
값: "<BASE64_ENCODED_LICENSE_FILE>"
원하는 경우 manifests/3.vs.yaml을 편집하여 NGINX 관리 제품군에 접속하는 데 사용되는 호스트 이름을 사용자 정의합니다.
Kubernetes 클러스터에서 NGINX Management Suite를 시작하려면 nimDockerStart.sh를 실행하세요. 추적에서 표시된 대로 nginx-nim2 Pod로 실행됩니다. 이 스크립트는 백엔드 데이터베이스인 ClickHouse 와 분석 시각화를 위한 Grafana 에 대한 Pod도 초기화합니다. 자세한 내용은 GitHub 저장소의 README를 참조하세요.
$ ./scripts/nimDockerStart.sh start namespace/nginx-nim2 created ~/NGINX-NIM2-Docker/manifests/certs ~/NGINX-NIM2-Docker RSA 개인 키 생성 .....................................+++++ .....................................+++++ 'nim2.f5.ff.lan.key'에 새 개인 키 쓰기 ----- secret/nim2.f5.ff.lan created configmap/clickhouse-conf created configmap/clickhouse-users created persistentvolumeclaim/pvc-clickhouse created deployment.apps/clickhouse created service/clickhouse created deployment.apps/nginx-nim2 created service/nginx-nim2 created service/nginx-nim2-grpc created persistentvolumeclaim/pvc-grafana-data created persistentvolumeclaim/pvc-grafana-log created deployment.apps/grafana created service/grafana created virtualserver.k8s.nginx.org/nim2가 생성되었습니다 virtualserver.k8s.nginx.org/grafana가 생성되었습니다 ~/NGINX-NIM2-Docker가 생성되었습니다
세 개의 포드가 현재 실행 중인지 확인하세요.
$ kubectl get pods -n nginx-nim2 이름 준비 상태 재시작 나이 clickhouse-759b65db8c-74pn5 1/1 실행 중 0 63초 grafana-95fbbf5c-jczgk 1/1 실행 중 0 63초 nginx-nim2-5f54664754-lrhmn 1/1 실행 중 0 63초
NGINX Management Suite에 액세스하려면 브라우저에서 https://nim2.f5.ff.lan (또는 이전 섹션의 4단계 에서 설정한 대체 호스트 이름)으로 이동하세요. 이전 섹션의 2단계 에서 설정한 자격 증명을 사용하여 로그인하세요.
NGINX Management Suite의 Docker 인스턴스를 중지하고 제거하려면 다음 명령을 실행하세요.
$ ./scripts/nimDockerStart.sh stop 네임스페이스 "nginx-nim2" 삭제됨
이 게시물에서 논의된 NGINX 솔루션을 시도하려면 오늘 30일 무료 평가판을 시작하거나 사용 사례에 대해 논의하기 위해 저희에게 연락하세요 .
"이 블로그 게시물에는 더 이상 사용할 수 없거나 더 이상 지원되지 않는 제품이 참조될 수 있습니다. 사용 가능한 F5 NGINX 제품과 솔루션에 대한 최신 정보를 보려면 NGINX 제품군을 살펴보세요. NGINX는 이제 F5의 일부가 되었습니다. 이전의 모든 NGINX.com 링크는 F5.com의 유사한 NGINX 콘텐츠로 리디렉션됩니다."