헬름이란 무엇인가요?
헬름은 쿠버네티스 플랫폼에서 애플리케이션의 설치와 관리를 간소화하는 도구입니다. 사용자는 서비스, 역할, 배포와 같은 리소스에 대한 Kubernetes 정의를 사용자 정의 가능한 단일 패키지로 결합할 수 있습니다. 헬름은 기본적으로 쿠버네티스 애플리케이션을 위한 패키지 관리자이므로, 설치된 모든 리소스를 전부 또는 전무 접근 방식을 사용하여 단일 단위로 관리 및 업데이트할 수 있으므로 업그레이드 시 각 릴리스에 필요한 모든 종속성이 성공적으로 설치되도록 보장합니다. 이 블로그에서는 헬름을 사용하여 카우치베이스 클러스터와 함께 카우치베이스 자율 운영자를 쿠버네티스 환경에 설치하는 방법을 설명합니다.
헬름 설치하기
버전 1.11 이상에서 실행 중인 쿠버네티스 클러스터가 있다고 가정하면, Couchbase 클러스터 배포를 위한 헬름을 시작할 준비가 완료된 것입니다. 첫 번째 단계는 헬름 명령줄 클라이언트를 설치하는 것입니다. 다음 명령어는 리눅스용 실행 경로에 헬름 바이너리를 다운로드하고 압축을 풉니다(다른 OS의 경우 릴리스)
1 2 3 4 |
# 헬름 설치 wget https://스토리지.googleapis.com/쿠버네티스-헬름/헬름-v2.13.1-리눅스-amd64.tar.gz 타르 -zxvf 헬름-v2.13.1-리눅스-amd64.tar.gz sudo mv 리눅스-amd64/헬름 /usr/local/bin/헬름 |
이제 헬름스 템플릿 서비스를 설치해 보겠습니다. 틸러
. 틸러는 서비스, 시크릿, 파드와 같은 리소스를 생성하기 위해 쿠버네티스 API와 직접 상호 작용하는 모든 작업을 수행한다. 모든 좋은 빠른 시작 가이드와 마찬가지로, 간결성을 위해 보안에 대해 약간 느슨하게 설명할 것이며, 이는 곧 틸러
서비스를 통해 모든 쿠버네티스 네임스페이스 내에서 리소스를 생성할 수 있습니다. 다음 명령을 실행하여 Tiller 서비스에 필요한 RBAC 규칙과 ServiceAccount를 만듭니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
echo "apiVersion: v1 종류: 서비스 계정 메타데이터: 이름: 경운기 네임스페이스: kube-system --- API 버전: rbac.authorization.k8s.io/v1 종류: 클러스터 역할 바인딩 메타데이터: 이름: 경운기 roleRef: api그룹: rbac.authorization.k8s.io 종류: 클러스터 역할 이름: 클러스터 관리자 주제: - 종류: 서비스 계정 이름: 경운기 네임스페이스: 큐브-시스템" | kubectl create -f - |
마지막으로 틸러 서비스를 쿠버네티스 클러스터에 설치합니다:
1 |
헬름 init --서비스-계정 틸러 |
조종을 시작할 시간입니다!
차트 설치
운영자 차트 설치
카우치베이스 오퍼레이터 차트는 동적 어드미션 컨트롤러, 오퍼레이터 자체 및 클러스터 내에서 이를 실행하는 데 필요한 모든 리소스를 배포한다. 이것은 리소스 그룹을 설치 및 업그레이드 가능한 단일 단위로 표현하여 패키지 관리자와 매우 유사하게 작동하므로 헬름의 힘/마법입니다.
차트를 설치하려면 다음 명령을 사용하여 헬름 클라이언트가 파트너 리포지토리를 가리키도록 해야 합니다:
1 |
헬름 repo 추가 카우치베이스 https://카우치베이스-파트너.github.io/헬름-차트/ |
이제 연산자 차트를 설치해 보겠습니다:
1 |
헬름 설치 --이름 op-예제 카우치베이스/카우치베이스-연산자 |
설치하면 운영자의 로그 확인을 위해 실행할 명령어 목록이 반환됩니다.
1 2 3 4 5 6 7 |
참고: 1. 카우치베이스 운영자가 배포되었습니다. 카우치베이스-운영자 로그를 확인합니다. kubectl logs -f deployment/op-example-couchbase-operator --namespace default 2. 입학 컨트롤러가 배포되었습니다. 어드미션 컨트롤러 로그 확인 kubectl logs -f deploy/op-example-couchbase-admission-controller --namespace default |
첫 번째 명령을 복사하여 운영자가 성공적으로 시작되었는지 확인합니다:
1 |
kubectl 로그 -f 배포/op-예제-카우치베이스-연산자 --네임스페이스 기본값 |
그리고 운영자가 이벤트를 수신 대기 중이라는 것을 알 수 있는데, 이는 클러스터가 관리할 클러스터를 기다리고 있다는 의미입니다:
1 2 3 |
시간="2019-05-02T23:42:12Z" 레벨=정보 msg="카우치베이스-운영자 v1.2.0 (릴리스)" 모듈=메인 ... 시간="2019-05-02T23:42:28Z" 레벨=정보 msg="CRD 초기화, 듣기 에 대한 이벤트... |
Couchbase 클러스터 차트 설치하기
카우치베이스 클러스터 차트는 카우치베이스 클러스터 유형의 템플릿 버전을 제공합니다. 기본적으로 이 차트는 3노드 클러스터를 설치합니다. 이 차트의 세부 정보가 궁금하다면 다음 명령을 사용하여 기본값을 확인할 수 있습니다:
1 |
헬름 검사 카우치베이스/카우치베이스-클러스터 |
이제 다음 명령어로 클러스터 차트를 설치하여 클러스터를 실행해 보겠습니다:
1 |
헬름 설치 --이름 cb-예제 카우치베이스/카우치베이스-클러스터 |
설치는 클러스터의 상태를 확인하는 단계와 함께 관리자 콘솔을 빠르게 볼 수 있는 방법을 반환합니다.
1 2 3 4 5 6 |
참고: 1. Get 카우치베이스 클러스터 상태 kubectl 설명 --네임스페이스 기본값 카우치베이스 클러스터 cb-예제-카우치베이스-클러스터 2. 연결 에 관리자 콘솔 kubectl 포트-앞으로 --네임스페이스 기본값 cb-예제-카우치베이스-클러스터-0000 8091:8091 # 열기 http://localhost:8091 |
두 번째 명령을 실행하여 콘솔을 확인해 보겠습니다:
1 |
kubectl 포트-앞으로 --네임스페이스 기본값 cb-예제-카우치베이스-클러스터-0000 8091:8091 |
이 명령은 포트 8091에서 로컬 호스트에 관리 콘솔의 프록시를 만듭니다. 다음 위치로 이동합니다. http://localhost:8091 를 클릭하여 클러스터를 확인합니다. 아직 클러스터가 표시되지 않는 경우 kubectl 설명 po cb-example-couchbase-cluster-0000 를 사용하여 전달되는 파드의 상태를 확인할 수 있는데, 이는 새로운 클러스터에서 실행할 때 종종 이미지가 아직 생성 중일 수 있기 때문입니다.
차트 관리
이 시점에서 운영자용 차트와 클러스터용 차트를 각각 하나씩, 적어도 두 개는 설치되어 있어야 합니다. 설치된 차트 목록을 보려면 다음을 실행합니다. 헬름 목록
:
1 2 3 4 5 |
~$ 헬름 목록 이름 개정 업데이트 상태 차트 앱 버전 네임스페이스 cb-예제 1 목요일 5월 9 23:44:31 2019 배포됨 카우치베이스-클러스터-0.1.2 1.2 기본값 op-예제 1 목요일 5월 9 23:40:36 2019 배포됨 카우치베이스-연산자-0.1.2 1.2 기본값 |
차트가 설치되면 헬름은 이를 헬름의 릴리스
. 단일 차트에서 여러 릴리스를 설치할 수 있습니다. 릴리스가 삭제된 경우 헬름 삭제
를 삭제하면 모든 패키지 리소스(파드, 서비스, 시크릿)도 삭제됩니다. 오퍼레이터 및 클러스터 차트 사용자 정의에 대한 자세한 내용은 Couchbase 오퍼레이터 설명서를 참조하세요. 릴리스 업데이트.
TLS 및 영구 볼륨으로 설치하기
TLS 및 퍼시스턴트 볼륨으로 클러스터를 생성하려면 헬름의 템플릿 오버라이딩을 사용하여 클러스터 차트의 사용자 정의를 제공하겠습니다.
라는 파일을 만듭니다. myvalues.yaml
를 다음 값으로 대체합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
echo "couchbaseCluster: 서버: all_services: 포드: 볼륨 마운트: 기본값: 카우치베이스 데이터: 카우치베이스 보안 컨텍스트: fsGroup: 1000 볼륨클레임템플릿: - 메타데이터: 이름: 카우치베이스 사양: storageClassName: 기본값 리소스: 요청: 스토리지: 1Gi couchbaseTLS: create: true" > myvalues.yaml |
위의 값은 스토리지 클래스의 이름이 기본값
를 확인하고 그렇지 않은 경우 사용자 환경에 적합한 값으로 변경합니다. 이제 값 오버라이드가 적용된 클러스터 차트를 설치합니다:
1 |
헬름 설치 --이름 cbs-예제 -f myvalues.yaml 카우치베이스/카우치베이스-클러스터 |
헬름은 서버 인증서 및 키와 함께 운영자와 클라이언트가 사용하는 CA 인증서를 자동으로 생성합니다.
1 2 3 4 5 6 |
리소스: ==> v1/비밀 이름 AGE cbs-예제-카우치베이스-클러스터 1s cbs-예제-카우치베이스-클러스터-서버-tls 1s cbs-예제-카우치베이스-클러스터-연산자-tls 1s |
관리자 콘솔을 보려면 다음 명령어를 사용하여 파드의 TLS 사용 관리 포트(18091)에서 로컬호스트로 포트 포워드 명령을 실행합니다:
1 |
kubectl 포트-앞으로 --네임스페이스 기본값 cbs-예제-카우치베이스-클러스터-0000 18091:18091 |
다음으로 이동합니다. http://localhost:18091 를 클릭하여 클러스터를 확인합니다.
다음 단계로 이동
"너무 쉬웠어요"라고 생각하신다면, 그 말이 맞을 것입니다. "더 자세히 알고 싶다"고 생각하신다면, 다음 내용을 살펴보세요. 설정 가이드 에서 프로덕션 환경 도입에 대한 모범 사례를 확인하세요!
더 많은 Couchbase 자율 운영자 리소스
-
사용해 보세요: https://www.couchbase.com/downloads
-
지원 포럼: https://www.couchbase.com/forums/c/couchbase-server/Kubernetes
자세히 보기
-
자율 운영자 1.2.0 심층 분석: https://www.couchbase.com/blog/deep-dive-couchbase-autonomous-operator-1-2-0
-
자율 운영자 1.2.0 네트워킹: https://www.couchbase.com/blog/autonomous-operator-1-2-0-networking