사용자 지정 리소스
이 페이지의 내용
Atlas Kubernetes Operator는 다음과 같은 사용자 지정 리소스 정의를 지원합니다.
Resource | 설명 | 짧은 이름 |
---|---|---|
백업 데이터를 보호하기 위한 백업 컴플라이언스 정책을 구성합니다. | 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
Atlas Kubernetes Operator 관리하기 kubectl
kubectl
를 사용하여 클러스터 의 모든 Atlas Kubernetes Operator 리소스를 나열하려면 다음을 실행 하면 됩니다.
kubectl get atlas
특정 유형의 Atlas Kubernetes Operator CRD를 편의를 위해 나열하거나 설명하기 위해 위 표에 나열된 짧은 이름을 사용할 수 있습니다. 예를 예시 mongodb
네임스페이스 의 모든 atlasdatabaseusers
을(를) 나열하려면 다음을 실행 하면 됩니다.
kubectl get adu -n mongodb
Atlas Kubernetes Operator 워크플로
Atlas Kubernetes Operator를 사용하면 새 Atlas 프로젝트를 만들거나 기존 Atlas 프로젝트로 작업할 수 있습니다.
Atlas에 대한 Atlas Kubernetes Operator 액세스 권한을 구성하려면 다음의 공개 API 키, 비공개 API 키 및 조직 ID 정보가 필요합니다.
Atlas Kubernetes Operator 가 새 Atlas 프로젝트 를 생성하도록 하려면Grant Programmatic Access to an Organization(조직에 프로그래밍 방식 액세스 권한을 부여합니다)을 클릭합니다. 조직 에서 Atlas 관리 API 에 대한 IP 액세스 목록 이 필요한 경우 API 액세스 목록도 구성해야 합니다.
중요
API 키에 Organization Project Creator 조직 역할 이상을 할당해야 합니다.
기존 Atlas 프로젝트 로 작업하려면 프로젝트에서 프로젝트액세스를 추가합니다. 조직 에서 Atlas 관리 API 에 대한 IP 액세스 목록 이 필요한 경우 API 액세스 목록도 구성해야 합니다.
중요
API 키에 Project Owner 프로젝트 역할을 할당해야 합니다.
자세히 알아보려면 Atlas에 대한 액세스 구성을 참조하세요.
프로세스 생성 및 업데이트
지원되는 사용자 지정 리소스 중 하나에서 spec
필드를 변경할 때마다 Atlas Kubernetes Operator에서 다음 워크플로가 시작됩니다.
Atlas Kubernetes Operator는 변경된 사용자 지정 리소스에 대한 이벤트를 수신합니다.
Atlas Kubernetes Operator는
status.conditions
필드를 업데이트하여 리소스가 준비되지 않았음을 반영합니다.conditions: - lastTransitionTime: "2021-03-13T16:26:17Z" status: "False" type: Ready Atlas 관리 API에 연결하기 위해 Atlas Kubernetes Operator는 다음 위치 중 하나에서 조직 ID 및 API 키를 읽습니다.
spec.connectionSecretRef.name
(AtlasProject
사용자 지정 리소스 에 지정된 경우).기본적으로 Atlas Kubernetes Operator는 동일한 네임스페이스 에 연결 비밀을
AtlasProject
유지합니다. Custom Resource(사용자 지정 리소스) . 다른 네임스페이스 에 시크릿을 저장하려면spec.connectionSecretRef.namespace
매개변수를 지정합니다.global
Atlas Kubernetes Operator 시크릿<operator-deployment-name>-api-key
( 가 지정되지 않은spec.connectionSecretRef.name
경우).
Atlas에서 리소스를 만들거나 업데이트하기 위해 Atlas Kubernetes Operator는 연결 정보를 사용하여 Atlas에 API 를 호출합니다.
참고
Atlas Kubernetes Operator가 사용자 지정 리소스를 조정하는 동안 Atlas에서 여러 API 호출을 수행하는 경우가 있습니다. 예를 들어
AtlasProject
에는 일치하는 API 를 호출하기 위한 IP 액세스 목록 구성이 있습니다.조정 중에 오류가 발생하면
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 업데이트가 성공하면
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에서 해당 객체를 삭제할 수 있도록 할 수 있습니다. 주석으로 재정의하면 다음 워크플로가 시작됩니다.
Atlas Kubernetes Operator는 삭제된 사용자 지정 리소스에 대한 이벤트를 수신합니다.
Atlas 관리 API에 연결하기 위해 Atlas Kubernetes Operator는 다음 위치 중 하나에서 조직 ID 및 API 키를 읽습니다.
spec.connectionSecretRef.name
(AtlasProject
사용자 지정 리소스 에 지정된 경우).기본적으로 Atlas Kubernetes Operator는 동일한 네임스페이스 에 연결 비밀을
AtlasProject
유지합니다. Custom Resource(사용자 지정 리소스) . 다른 네임스페이스 에 시크릿을 저장하려면spec.connectionSecretRef.namespace
매개변수를 지정합니다.global
Atlas Kubernetes Operator 시크릿<operator-deployment-name>-api-key
( 가 지정되지 않은spec.connectionSecretRef.name
경우).
Atlas에서 리소스를 삭제하기 위해 Atlas Kubernetes Operator는 연결 정보를 사용하여 Atlas에 API 호출합니다.
참고
Atlas Kubernetes Operator는 Kubernetes에서 생성된 모든 관련 객체를 제거합니다. 예를 들어 제거하면
AtlasDatabaseUser
Atlas Kubernetes Operator가 관련 연결 비밀을 제거합니다. .
주석을 사용하여 기본값 건너뛰기 또는 재정의하기
주석을 사용하여 Atlas Kubernetes Operator의 새로운 기본 동작 을 수정할 수 있습니다.
사용자 지정 리소스의
metadata
에mongodb.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 이전에 사용된 기본값으로 되돌린 경우 사용자 지정 리소스의
metadata
에mongodb.com/atlas-resource-policy: "keep"
주석을 추가하여 Atlas Kubernetes Operator를 삭제할 때 Atlas Kubernetes Operator가 리소스를 삭제하지 않도록 할 수 있습니다. 연산자 리소스.사용자 지정 리소스의
metadata
에mongodb.com/atlas-reconciliation-policy: "skip"
주석을 추가하면 Atlas Kubernetes Operator가 리소스에 대한 조정을 시작하지 않습니다. 이 주석을 사용하면 주석을 제거할 때까지 사양과의 동기화를 일시 중지할 수 있습니다. 이 주석을 사용하여 사용자 지정 리소스를 수동으로 변경하고 동기화 중에 Atlas Kubernetes Operator가 실행 취소하지 않도록 할 수 있습니다. 이 주석을 제거하면 Atlas Kubernetes Operator가 리소스를 조정하고 사양과 동기화합니다.사용자 지정 리소스의
metadata
에mongodb.com/atlas-resource-version-policy: "allow"
주석을 추가하면 Atlas Kubernetes Operator에서 해당 버전 레이블이 사용 중인 Atlas Kubernetes Operator 버전과 일치하지 않더라도 리소스를 사용할 수 있습니다. 리소스 버전이 Atlas Kubernetes Operator 버전보다 뒤처진 메이저 버전인 경우 최신 기능이 작동하지 않을 수 있습니다. 사소한 버전 불일치는 이전 버전과 호환됩니다.