Azure AKS에서 퍼시스턴트 볼륨을 사용하는 카우치베이스 자율 운영자

업계 FIRST CRD를 통해 기본적으로 kubernetes(k8s) API와 통합된 NoSQL 데이터베이스는 고객에게 엄청난 성능, 민첩성, 클라우드 이식성을 제공하여 다음과 같은 이점을 제공합니다. 무료 에서

  1. Couchbase 클러스터 관리 또는 관리하기
  2. 노드 장애에 대한 걱정을 덜어주는 k8s 운영자가 여러분을 위해 파드를 돌립니다.
  3. 노드 추가 후 리밸런싱 작업 수행에 대한 걱정, k8s 오퍼레이터가 대신 수행합니다.
  4. 공급업체 종속

k8과 기본적으로 통합하면 사용자 정의 컨트롤러를 정의할 수 있으며, 이를 통해 Couchbase 클러스터에서 발생하는 특정 조건에 대한 워크플로우를 정의할 수 있습니다. 사용자 정의 컨트롤러에 해당 로직을 작성하면 Couchbase 클러스터를 더 잘 관리할 수 있습니다.

Azure AKS에서 Couchbase Autonomous Operator를 실행하는 것은 현재 기술 미리보기 중입니다.

다음과 같은 작업을 수행합니다.

  1. CLI로 Azure에 로그인(az 로그인)
  2. 리소스 그룹 만들기
  3. AKS에서 k8s 클러스터 만들기
  4. k8s 대시보드에 액세스(선택 사항)
  5. 카우치베이스 자율 운영자 배포
  6. AKS에 카우치베이스 클러스터 배포하기
  7. 클러스터에 일부(~100,000개) 문서 삽입하기
  8. 하나의 명령으로 클러스터 확장
  9. 노드 장애를 시뮬레이션하여 파드 삭제하기
  10. k8s가 클러스터 정의와 일치하도록 해당 이벤트를 감시하고 새 파드를 불러오는 것을 확인합니다.
  11. 참조

이제 Azure Kubernetes Service의 Autonomous Operator 배포를 매우 상세하게 단계별로 살펴보겠습니다.

CLI로 Azure에 로그인(az 로그인)

리소스 그룹 만들기

k8s 클러스터 만들기

Azure 포털에 로그인하고 검색 아이콘에서 Azure Kubernetes Service를 검색하면 다음과 같은 화면이 표시됩니다.

K8 서비스 만들기

k8s 노드에 대한 인스턴스 크기를 선택하고 요구 사항에 따라 노드 수를 선택합니다.

인스턴스 유형 선택

 

 

 

 

 

 

 

 

 

 

인스턴스 유형 선택

k8s 워커 노드의 번호를 선택하세요.

k8s 클러스터에 RBAC 사용

k8s용 RBAC 선택

기본 네트워킹 선택

네트워킹에 대한 기본 설정 선택

컨테이너 모니터링 사용

컨테이너 모니터링을 위한 기본 설정 선택

유효성 검사가 통과되었는지 확인하고 생성

다음을 클릭하면 k8s 클러스터에 대한 유효성 검사가 통과된 것을 확인할 수 있습니다.

실행 명령을 사용하여 Azure에서 로컬로 실행 중인 k8s 클러스터를 가져옵니다(개인적으로 이 명령은 AKS에서 실행 중인 원격 k8s 클러스터를 관리할 수 있는 기능을 제공하므로 유용하다고 생각합니다. 다른 옵션을 사용할 수 있습니다. Azure 셸)

아래 스크린샷은 AKS 클러스터 구성이 로컬에서 올바르게 설정되었는지 확인하는 방법을 보여줍니다.

AKS에서 실행 중인 k8s 클러스터 확인

k8s 대시보드에 액세스(선택 사항)

모든 k8s 자산은 kubectl을 통해 관리할 수 있으며, Couchbase 클러스터에 대한 GUI 액세스를 통해 관리가 더 쉬워집니다. 하지만 k8s 대시보드를 통해서도 k8s 자산을 관리하고 싶습니다.

[팁] k8s 대시보드에서 다음과 같은 권한 문제가 발생하는 경우

를 클릭한 다음 다음 명령을 실행합니다.

현재 URL에서 실행 중인 k8s 대시보드에 액세스할 수 있어야 합니다. http://127.0.0.1:8001/

카우치베이스 자율 운영자 배포

CB 운영자를 배포하는 것은 일회성 작업이며 매우 간단하다는 점을 기억하세요.

로컬 노트북에 다음 URL에서 운영자 zip 파일을 다운로드했습니다. 카우치베이스 운영자 패키지 다운로드

k8s에서 카우치베이스 클러스터에 RBAC 활성화

카우치베이스 운영자 배포

1분 이내에 준비가 완료되며, 배포가 진행되는 과정을 지켜볼 수 있습니다.

 

AKS에 카우치베이스 클러스터 배포하기

이제 AKS에 자율 운영자를 배포했으니, 이제 Couchbase 클러스터를 배포해 보겠습니다.

AKS를 사용하면 기본적으로 StorageClass가 제공됩니다.

배포를 위해 관리형 프리미엄을 선택하겠습니다.

자세한 yaml 파일은 여기에서 확인할 수 있습니다, 카우치베이스-퍼시스턴트-클러스터.yaml

카우치베이스 클러스터가 나타나고 4개의 파드를 생성하는 데 몇 분 정도 걸리며, 처음으로 레지스트리에서 도커 이미지를 다운로드하므로 커피를 마시기 좋은 시간입니다!

NodePort(기본값은 LoadBalancer)에서 cb-op-aks-demo-ui 서비스를 노출하면 공용 IP를 통해 Couchbase Server GUI에 액세스할 수 있습니다.

노드포트에서 로드밸런서에 cb-op-aks-demo-ui를 노출합니다.

명령 실행

는 다음과 같은 출력을 제공해야 합니다.

이제 기본 사용자 이름/비밀번호(예: 관리자/비밀번호)로 GUI에 로그인합니다.

로드밸런서가 노출한 공용 IP에서 GUI에 로그인합니다.

클러스터에 일부(~100,000개) 문서 삽입하기

[팁] 실행하기 전에 컨테이너에 유틸리티 cbc-pillowfight를 설치해야 합니다. 이 유틸리티의 설치는 이 블로그의 범위를 벗어납니다.

버킷 통계 차트에 불이 켜져 있어야 합니다.

베개 싸움이 실행 중일 때의 버킷 통계

하나의 명령으로 클러스터 확장

데이터 노드 용량을 3개에서 5개로 늘리고 싶다고 가정하고, 서버:size를 5로 변경하는 등 couch-base-persistent-cluster.yaml 파일을 업데이트하기만 하면 카우치베이스 클러스터를 확장하는 매우 간단한 작업이 가능합니다.

클러스터 확장하기

새로운 파드가 생성되고, 클러스터에 파드와 카우치베이스 노드가 추가되고, 리밸런싱이 수행되는 것을 보게 될 것입니다. 정말 놀랍습니다!

파드가 생성되고 리밸런싱이 수행됩니다.

클러스터가 확장되었으며 새로운 클러스터 정의는 다음과 같습니다. 총 100,000개의 항목 중 각 노드에 ~20,000개의 항목/노드가 있는 것을 관찰할 수 있습니다.

새로운 클러스터 정의

[팁] 컨테이너에 PV가 있는지 확인해 보겠습니다.

포드에 로그인하고 다음 명령을 실행합니다. lsblk -a

In 카우치베이스-퍼시스턴트-클러스터.yaml 스토리지 볼륨을 4GiB 크기로 정의했고, 강조 표시된 스니펫에서 4GiB의 Couchbase 디렉터리가 있음을 알 수 있습니다!

노드 장애를 시뮬레이션하여 파드 삭제하기

데이터 서비스 노드인 k8s 대시보드에서 포드 cb-op-aks-demo-0000을 삭제합니다.

k8s 대시보드에서 포드 삭제하기

와 함께 자동 페일오버 타임아웃 변수 타임아웃을 초과하면 노드가 자동 페일오버되고 자율 운영자가 이를 감지하여 Couchbase 클러스터에 의해 자동 페일오버됩니다.

노드 삭제 및 장애 조치

카우치베이스 커스텀 컨트롤러는 클러스터 정의를 지속적으로 감시하고 있으며 총 4개의 노드 또는 k8s 파드가 필요하며 하나가 없어진 것을 확인하여 새 파드를 생성하고 클러스터에 가입한 후 리밸런싱을 수행합니다.

새 파드가 생성되고, 클러스터에 가입하고, 리밸런싱 작업이 수행되며, 이 모든 과정이 자동으로 수행됩니다.

카우치베이스 운영자 파드 로그에서

coucbase-operator-xxx 로그의 재조정 진행 상황

잠시 시간을 내어 여기서 무슨 일이 있었는지 살펴봅시다!

노드에 장애가 발생했고, 사용자 정의 컨트롤러(일명 카우치베이스 운영자)가 이를 감지했으며, 카우치베이스 클러스터 정의를 보고 총 7개의 포드 또는 7개의 카우치베이스 노드가 있어야 한다는 것을 확인하고, 하나가 없어진 것을 확인하고, 자동 장애 조치 시간 초과를 기다린 후 새 파드를 스핀하고 클러스터에 가입하고 재조정 작업을 수행합니다.

카우처스는 민첩성, 성능, 최첨단 기술 측면에서 고객에게 더 나은 서비스를 제공하기 위해 지속적인 차별화를 추구합니다. 이것은 확실히 게임 체인저입니다. 여러분의 피드백에 감사드리며, AKS에서 실행되는 쿠버네티스 기반 Couchbase Autonomous Operator를 통해 마이크로서비스를 향한 여정이 한 걸음 더 쉬워지기를 기대합니다.

참조

https://docs.microsoft.com/en-us/azure/aks/azure-disks-dynamic-pv

https://docs.microsoft.com/en-us/azure/aks/tutorial-kubernetes-deploy-cluster

새로운 Kubernetes 및 OpenShift용 Couchbase Autonomous Operator 1.0이 이제 정식 버전으로 출시되었습니다!

https://docs.couchbase.com/operator/1.0/overview.html

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 램 다크네

Ram Dhakne은 Couchbase의 미국 서부 솔루션 컨설턴트입니다. 그는 현재 엔터프라이즈 고객의 디지털 혁신 여정을 돕고 NoSQL 기술 도입을 지원하고 있습니다. 현재 그의 관심 분야는 AKS, GKE, ACS 및 OpenShift에서 실행되는 Kubernetes 클러스터에서 Couchbase NoSQL 서버와 같은 영구 애플리케이션을 실행하여 Kubernetes에서 엔드투엔드 보안을 유지하는 것입니다. 과거에는 IaaS 플랫폼(AWS, GCP, Azure 및 프라이빗 클라우드), 엔터프라이즈 백업 대상 제품 및 백업 애플리케이션에 대해 작업했습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.