Atlas Kubernetes Operator는 다음과 같은 사용자 지정 리소스를 지원합니다.
Resource | 설명 |
|---|---|
cluster Atlas를 백업하기 위한 백업 정책 구성. | |
cluster Atlas를 백업하기 위한 백업 일정을 구성합니다. | |
Atlas 내의 일부 프로젝트에서 cluster의 구성. | |
Atlas의 일부 프로젝트 내 데이터베이스 사용자를 구성합니다. | |
Atlas에서 프로젝트를 구성합니다. | |
Atlas에서 프로젝트 팀을 구성합니다. | |
Atlas에서 연합 데이터베이스 인스턴스 및 해당 비공개 엔드포인트를 구성합니다. | |
Atlas에서 페더레이션 인증을 구성합니다. |
중요
Custom Resource(사용자 정의 리소스)는 더 이상 기본적으로 객체를 삭제하지 않음
Atlas Kubernetes Operator 는 사용자 지정 리소스 구성 파일을 관리 하여 Atlas 구성을 관리하지만, Atlas Kubernetes Operator 2.0 Kubernetes 에서 삭제 한 사용자 지정 리소스가 더 이상 Atlas 에서 삭제되지 않습니다. 대신 Atlas Kubernetes Operator 는 해당 리소스 관리를 중지할 뿐입니다. 예를 예시 , Kubernetes 에서 AtlasProject Custom Resource (사용자 지정 리소스)를 삭제 하면 Atlas Kubernetes Operator 는 더 이상 Atlas 에서 해당 프로젝트 를 자동으로 삭제하지 않으므로 우발적이거나 예기치 않은 삭제를 방지할 수 있습니다. 이 동작 을 Atlas Kubernetes Operator 2 이전에 사용된 기본값 으로 되돌리는 방법 등 학습 보세요.0, 새 기본값: Atlas Kubernetes Operator 2 의 삭제 보호 기능을 참조하세요.0.
Atlas Kubernetes Operator 워크플로
Atlas Kubernetes Operator를 사용하면 새 Atlas 프로젝트를 만들거나 기존 Atlas 프로젝트로 작업할 수 있습니다.
Atlas에 대한 Atlas Kubernetes Operator 액세스 권한을 구성하려면 다음의 공개 API 키, 비공개 API 키 및 조직 ID 정보가 필요합니다.
Atlas Kubernetes Operator 새 Atlas 프로젝트 생성하도록 하려면Atlas 에 프로그래밍 방식 액세스 권한을 부여합니다. 조직 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에 연결 비밀을 유지합니다. 다른 네임스페이스에 시크릿을 저장 하려면spec.connectionSecretRef.namespace매개변수를 지정합니다.globalAtlas 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
AtlasProjectCustom Resource(사용자 지정 리소스)와 동일한 네임스페이스 에 연결 비밀을 유지합니다. 다른 네임스페이스에 시크릿을 저장 하려면spec.connectionSecretRef.namespace매개변수를 지정합니다.globalAtlas 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 버전보다 뒤처진 메이저 버전인 경우 최신 기능이 작동하지 않을 수 있습니다. 사소한 버전 불일치는 이전 버전과 호환됩니다.