Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes Operator

사용자 지정 리소스

이 페이지의 내용

  • Atlas Kubernetes Operator 관리하기 kubectl
  • Atlas Kubernetes Operator 워크플로
  • 프로세스 생성 및 업데이트
  • 프로세스 삭제
  • 주석을 사용하여 기본값 건너뛰기 또는 재정의하기

Atlas Kubernetes Operator는 다음과 같은 사용자 지정 리소스 정의를 지원합니다.

Resource
설명
짧은 이름
AtlasBackupCompliancePolicy 사용자 지정 리소스
백업 데이터를 보호하기 위한 백업 컴플라이언스 정책을 구성합니다.
abcp
클러스터 Atlas를 백업하기 위한 백업 정책.
abp
클러스터 Atlas를 백업하기 위한 백업 일정입니다.
abs
Atlas의 일부 프로젝트 내에 클러스터링합니다.
ad
Atlas의 일부 프로젝트 내부의 데이터베이스 사용자입니다.
adu
Atlas에서 프로젝트를 진행하세요.
ap
Atlas의 프로젝트 팀.
at
Atlas의 연합 데이터베이스 인스턴스 및 해당 비공개 엔드포인트.
adf
Atlas cluster의 일부 컬렉션에 대한 인덱스입니다.
asic
Atlas Stream Processing 연결.
asc
Atlas Stream Processing 인스턴스.
asi
Atlas의 페더레이션 인증.
afa

중요

Custom Resource(사용자 정의 리소스)는 더 이상 기본적으로 객체를 삭제하지 않음

  • Atlas Kubernetes Operator 는 사용자 지정 리소스 구성 파일을 관리 하여 Atlas 구성을 2.0 관리하지만, Atlas Kubernetes Operator Kubernetes 에서 삭제 한 사용자 지정 리소스가 더 이상 ( 기본값) Atlas 에서 삭제되지 않습니다. 대신 Atlas Kubernetes Operator 는 Atlas 에서 해당 리소스 관리를 중지할 뿐입니다. 예를 예시 , Kubernetes 에서 AtlasProject Custom Resource(사용자 지정 리소스)를 삭제 하면 기본값 으로 Atlas Kubernetes Operator 는 더 이상 Atlas 에서 해당 프로젝트 를 자동으로 삭제하지 않습니다. 이러한 동작 변경은 우발적이거나 예기치 않은 삭제를 방지하기 위한 것입니다. 이 동작을 Atlas Kubernetes Operator 이전에 사용된 기본값 으로 되돌리는 방법 등 자세한 내용을 학습 보세요.,2 0 새 기본값: Atlas Kubernetes Operator 2 의 삭제 보호0 기능을참조하세요. .

    마찬가지로, Atlas Kubernetes Operator 를 사용하여 Kubernetes 의 Atlas 프로젝트 에서 팀을 제거 하는 경우 Atlas Kubernetes Atlas Kubernetes Operator 는 Atlas 에서 팀을 삭제 하지 않습니다.

  • 기본값 Atlas 구성 값을 암시적으로 사용하지 않으려면 원하는 구성 세부 정보를 명시적으로 정의하세요. 경우에 따라 Atlas 기본값을 상속하면 조정 루프가 발생하여 사용자 지정 리소스 가 READY 상태 를 달성하지 못할 수 있습니다. 예를 예시 AtlasDeployment 사용자 지정 리소스 에 원하는 자동 확장 동작을 명시적으로 정의하면 포함된 예시 와 같이 사용자 지정 리소스 의 정적 인스턴스 크기가 자동 확장이 활성화된 Atlas 배포서버 서버에 반복적으로 적용되지 않도록 할 수 있습니다.

    autoScaling:
    diskGB:
    enabled: true
    compute:
    enabled: true
    scaleDownEnabled: true
    minInstanceSize: M30
    maxInstanceSize: M40

kubectl 를 사용하여 클러스터 의 모든 Atlas Kubernetes Operator 리소스를 나열하려면 다음을 실행 하면 됩니다.

kubectl get atlas

특정 유형의 Atlas Kubernetes Operator CRD를 편의를 위해 나열하거나 설명하기 위해 위 표에 나열된 짧은 이름을 사용할 수 있습니다. 예를 예시 mongodb 네임스페이스 의 모든 atlasdatabaseusers 을(를) 나열하려면 다음을 실행 하면 됩니다.

kubectl get adu -n mongodb

Atlas Kubernetes Operator를 사용하면 새 Atlas 프로젝트를 만들거나 기존 Atlas 프로젝트로 작업할 수 있습니다.

Atlas에 대한 Atlas Kubernetes Operator 액세스 권한을 구성하려면 다음의 공개 API 키, 비공개 API 키 및 조직 ID 정보가 필요합니다.

자세히 알아보려면 Atlas에 대한 액세스 구성을 참조하세요.

지원되는 사용자 지정 리소스 중 하나에서 spec 필드를 변경할 때마다 Atlas Kubernetes Operator에서 다음 워크플로가 시작됩니다.

  1. Atlas Kubernetes Operator는 변경된 사용자 지정 리소스에 대한 이벤트를 수신합니다.

  2. Atlas Kubernetes Operator는 status.conditions 필드를 업데이트하여 리소스가 준비되지 않았음을 반영합니다.

    conditions:
    - lastTransitionTime: "2021-03-13T16:26:17Z"
    status: "False"
    type: Ready
  3. Atlas 관리 API에 연결하기 위해 Atlas Kubernetes Operator는 다음 위치 중 하나에서 조직 ID 및 API 키를 읽습니다.

  4. Atlas에서 리소스를 만들거나 업데이트하기 위해 Atlas Kubernetes Operator는 연결 정보를 사용하여 Atlas에 API 를 호출합니다.

    참고

    Atlas Kubernetes Operator가 사용자 지정 리소스를 조정하는 동안 Atlas에서 여러 API 호출을 수행하는 경우가 있습니다. 예를 들어AtlasProject 에는 일치하는 API 를 호출하기 위한 IP 액세스 목록 구성이 있습니다.

  5. 조정 중에 오류가 발생하면 status.conditions 이 오류를 반영하도록 업데이트됩니다.

    예시

    - lastTransitionTime: "2021-03-15T14:26:44Z"
    message: 'POST https://cloud.mongodb.com/api/atlas/v1.0/groups/604a47de73cd8cag77239021/accessList:
    400 (request "INVALID_IP_ADDRESS_OR_CIDR_NOTATION") The address 192.0.2.1dfdfd5
    must be in valid IP address or CIDR notation.'
    reason: ProjectIPAccessListNotCreatedInAtlas
    status: "False"
    type: IPAccessListReady
  6. 업데이트가 성공하면 status.conditions 리소스가 준비되었음을 반영합니다.

    conditions:
    - lastTransitionTime: "2021-03-13T16:26:17Z"
    status: "True"
    type: Ready

Atlas Kubernetes Operator 2.0 부터, Kubernetes에서 사용자 지정 리소스를 삭제하면 객체는 기본적으로 Atlas에 유지되지만 Atlas Kubernetes Operator 는 더 이상 객체를 제어하지 않습니다. 전체 배포에 대해 이 기본값을 되돌리거나 특정 사용자 지정 리소스에 대한 이 기본값을 주석 으로 재정의하여 Atlas Kubernetes Operator가 Atlas에서 해당 객체를 삭제할 수 있도록 할 수 있습니다. 주석으로 재정의하면 다음 워크플로가 시작됩니다.

  1. Atlas Kubernetes Operator는 삭제된 사용자 지정 리소스에 대한 이벤트를 수신합니다.

  2. Atlas 관리 API에 연결하기 위해 Atlas Kubernetes Operator는 다음 위치 중 하나에서 조직 ID 및 API 키를 읽습니다.

  3. Atlas에서 리소스를 삭제하기 위해 Atlas Kubernetes Operator는 연결 정보를 사용하여 Atlas에 API 호출합니다.

    참고

    Atlas Kubernetes Operator는 Kubernetes에서 생성된 모든 관련 객체를 제거합니다. 예를 들어 제거하면 AtlasDatabaseUser Atlas Kubernetes Operator가 관련 연결 비밀을 제거합니다. .

주석을 사용하여 Atlas Kubernetes Operator의 새로운 기본 동작 을 수정할 수 있습니다.

  • 사용자 지정 리소스의 metadatamongodb.com/atlas-resource-policy: "delete" 주석을 추가하는 경우, Atlas Kubernetes Operator 리소스를 삭제할 때 Atlas Kubernetes Operator도 Atlas에서 해당 객체를 삭제합니다.

    예시

    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    annotations:
    mongodb.com/atlas-resource-policy: "delete"
  • 새 삭제 동작을 Atlas Kubernetes Operator 2.0 이전에 사용된 기본값으로 되돌린 경우 사용자 지정 리소스의 metadatamongodb.com/atlas-resource-policy: "keep" 주석을 추가하여 Atlas Kubernetes Operator를 삭제할 때 Atlas Kubernetes Operator가 리소스를 삭제하지 않도록 할 수 있습니다. 연산자 리소스.

  • 사용자 지정 리소스의 metadatamongodb.com/atlas-reconciliation-policy: "skip" 주석을 추가하면 Atlas Kubernetes Operator가 리소스에 대한 조정을 시작하지 않습니다. 이 주석을 사용하면 주석을 제거할 때까지 사양과의 동기화를 일시 중지할 수 있습니다. 이 주석을 사용하여 사용자 지정 리소스를 수동으로 변경하고 동기화 중에 Atlas Kubernetes Operator가 실행 취소하지 않도록 할 수 있습니다. 이 주석을 제거하면 Atlas Kubernetes Operator가 리소스를 조정하고 사양과 동기화합니다.

  • 사용자 지정 리소스의 metadatamongodb.com/atlas-resource-version-policy: "allow" 주석을 추가하면 Atlas Kubernetes Operator에서 해당 버전 레이블이 사용 중인 Atlas Kubernetes Operator 버전과 일치하지 않더라도 리소스를 사용할 수 있습니다. 리소스 버전이 Atlas Kubernetes Operator 버전보다 뒤처진 메이저 버전인 경우 최신 기능이 작동하지 않을 수 있습니다. 사소한 버전 불일치는 이전 버전과 호환됩니다.

돌아가기

타사 서비스