Helm으로 Nginx 배포

NGINX 웹 서버를 설치하는 방법을 실습합니다.

1. 차트 저장소 업데이트

Helm은 차트arrow-up-right라는 패키징 형식을 사용합니다. 차트는 쿠버네티스 리소스를 설명하는 파일과 템플릿들의 모음집 입니다.

차트는 독립형 웹 서버를 기술하는 것과 같이 간단한 것 부터 웹 서버를 포함한 전체 웹 애플리케이션 스택, 데이터베이스, 프록시 등을 나타내는 것과 같이 더 복잡한 것을 다룰 수 있습니다.

kubectl을 통해 쿠버네티스 리소스를 수동으로 설치하는 대신 Helm을 사용하여 오류나 다른 가능성을 줄이면서 사전 정의 된 차트를 더 빠르게 설치할 수 있습니다.

차트 저장소는 업데이트 및 새롭게 추가되는 기능으로 인해 자주 변경됩니다. Helm의 로컬 목록을 이러한 모든 변경 사항으로 업데이트 되도록 유지하기 위해 repository updatearrow-up-right 명령을 실행 해야 합니다.

Helm의 로컬 차트 목록을 업데이트 하려면 다음을 실행하십시오.

# first, add the default repository, then update
helm repo add stable https://charts.helm.sh/stable
helm repo update

2. 차트 저장소 검색

이제 저장소 차트 목록이 업데이트 되었으므로 차트에서 검색arrow-up-right 할 수 있습니다. 모든 차트를 나열 하려면 다음의 명령어를 입력합니다.

출력에서 우리가 추가 한 모든 차트 목록을 확인 할 수 있습니다. 키워드를 포함하여 훨씬 더 유용한 검색을 할 수 있습니다.

다음으로 nginx 웹 서버 차트를 검색합니다.

그 결과는 다음과 같습니다.

circle-info

명령어에 대한 추가 정보는 이곳arrow-up-right에서 찾을 수 있습니다.

3. Bitnami 저장소 추가

이전 단계에서 NGINX가 기본 Helm 차트 저장소를 통해 여러개의 다른 제품을 제공하는 것을 알 수 있었습니다. NGINX 독립형 웹 서버는 그 중 하나 입니다.

빠른 웹 검색으로 Bitnami Chart 저장소arrow-up-right를 통해 사용 가능한 NGINX 독립형 웹 서버에 대한 차트가 있음을 발견 하였습니다.

검색 가능한 차트의 로컬 목록에 Bitnami 차트 리포지토리를 추가 하기 위해 아래 명령어를 수행합니다.

완료되면 모든 Bitnami 차트를 검색 할 수 있습니다:

nginx를 다시 한 번 검색하면:

이제 두 저장소에서 더 많은 nginx 옵션을 볼 수 있습니다.

nginx에 대해 Bitnami 저장소에서 검색할 수 도 있습니다.

In both of those last two searches, we see

as a search result. That’s the one we’re looking for, so let’s use Helm to install it to the EKS cluster.

다른 방법으로 nginx에 대해 Bitnami 저장소에서 검색 하여 검색 범위를 좁힐 수 있습니다.

검색 결과에서 실습에 필요한 nginx를 찾았으므로, Helm을 사용하여 EKS 클러스터에 설치합니다.

4. bitnami/nginx 설치

helm installarrow-up-right 명령어를 사용하여 Bitnami 독립형 nginx 웹 서버 차트를 설치 합니다.

Helm 차트는 쿠버네티스 클러스터 내에 여러 번 설치 할 수 있습니다. 이것은 차트의 설치가 사용자 별로 다른 목적에 맞게 변경 할 수 있기 때문 입니다. 따라서 설치 시 고유한 이름을 제공해야 합니다.

helm 유틸리티를 사용하여 bitnami/nginx 차트를 설치 하십시오. 쿠버네티스 배포에 ‘mywebserver’라는 이름을 지정합니다. helm 설치arrow-up-right 문서를 작성하거나helm install --help 명령을 실행 하여 명령 구문을 확인합니다.

이 명령을 실행하면 출력에 다음과 같은 유사한 배포 상태, 개정, namespace 등에 대한 정보가 포함 됩니다.

기본 쿠버네티스 서비스, Pod 및 배포를 검토 하려면 다음을 실행 합니다.

circle-exclamation

이 출력에 표시된 첫 번째 개체는 Deploymentarrow-up-right 입니다. Deployment 객체는 다양한 버전의 롤아웃 (및 롤백) 애플리케이션을 관리 합니다.

다음 명령을 실행 하여 Deployment 객체를 더 자세히 확 할 수 있습니다.

차트에 의해 생성 된 다음 개체는 Podarrow-up-right 입니다. Pod는 하나 이상의 컨테이너 그룹 입니다.

Pod 객체가 성공적으로 배포되었는지 확인하기 위해 다음 명령을 실행 할 수 있습니다.

이 차트가 생성하는 세 번째 개체는 Servicearrow-up-right 입니다. Service는 인터넷이나 Elastic Load Balancer(ELB)가 nginx 웹 서버에 연결할 수 있게 합니다.

이 Service의 전체 URL을 얻으려면 다음을 실행하십시오:

다음과 유사한 출력이 표시됩니다. EXTERNAL-IP의 값을 복사하고 웹 브라우저에서 새 탭에 붙여 넣습니다.

circle-exclamation

Service가 온라인 상태가 되면 다음과 유사한 환영 메시지가 표시됩니다.

5. 정리하기

Helm 차트에서 생성한 모든 개체를 제거하려면 Helm deletearrow-up-right를 사용할 수 있습니다.

애플리케이션을 제거하기 전에 Helm listarrow-up-right 명령을 통해 실행중인 항목을 확인할 수 있습니다.

다음과 유사한 mywebserver가 설치 되었음을 보여주는 출력이 표시 되어야 합니다.

제거 하기 위해서 다음 명령을 실행 합니다:

다음과 같은 결과를 확인 할 수 있습니다.

kubectl은 또한 pod와 service를 더 이상 사용할 수 없음을 보여줍니다.

이것으로 정리가 완료되었습니다.

Last updated