Kubernetes Operator를 설치하기 전에 Kubernetes Operator 배포의 범위를 설정할 수 있습니다. 범위는 Ops Manager 및 MongoDB 리소스를 배포하기 위해 선택한 네임스페이스에 따라 달라집니다.
Kubernetes 연산자 배포 범위
다음 범위 중 하나를 설정할 수 있습니다.
연산자가 리소스와 동일한 단일 네임스페이스를 사용합니다.
Kubernetes Operator가 동일한 네임스페이스 를 리소스로 사용하도록 범위를 설정할 수 있습니다. 이 경우 Kubernetes Operator는 동일한 네임스페이스에 있는 MongoDB Ops Manager 및 MongoDB 리소스를 감시합니다.
Kubernetes 연산자를 설치 하면 기본 네임스페이스가 사용됩니다.
연산자가 네임스페이스의 하위 집합을 사용함
Kubernetes Operator 리소스에서 사용하는 네임스페이스 와 다른 네임스페이스를 하나 이상 사용하도록 Kubernetes Operator 범위를 설정할 수 있습니다. 이 경우 Kubernetes Operator는 사용자가 지정한 네임스페이스의 하위 집합에 있는 Ops Manager 및 MongoDB 리소스를 감시합니다.
이 범위로 Kubernetes 연산자 인스턴스를 설치하려면 operator.watchNamespace 와 함께 helm 를 사용합니다. 매개변수입니다.
네임스페이스의 하위 집합을 감시하는 것은 단일 Kubernetes 연산자 인스턴스가 다른 클러스터 리소스 유형을 감시하는 배포에서 유용합니다. 예를 들어, 네임스페이스의 한 하위 집합에서 MongoDB 리소스를 감시하고 네임스페이스의 다른 하위 집합에서 MongoDBMultiCluster 리소스를 감시하도록 Kubernetes 연산자를 구성할 수 있습니다. 리소스 조정 중에 경합 상태를 방지하려면 Kubernetes 연산자가 감시하려는 각 사용자 지정 리소스 유형에 대해 범위를 네임스페이스의 고유한 하위 집합으로 설정해야 합니다.
helm 관련 설치 지침 을 따르되 operator.watchNamespace 에 하나 이상의 네임스페이스를 지정합니다. Kubernetes 연산자가 관찰할 수 있는 매개변수입니다.
# Watch one namespace helm install enterprise-operator mongodb/enterprise-operator \ --set operator.watchNamespace='namespace-to-watch' <...>
# Watch both namespace-a and namespace-b helm install enterprise-operator mongodb/enterprise-operator \ --set operator.watchNamespace="namespace-a\,namespace-b"
# Operator with name `mongodb-enterprise-operator-qa-envs` will # watch ns-dev, ns-qa and ns-uat namespaces helm install mongodb-enterprise-operator-qa-envs mongodb/enterprise-operator \ --set operator.watchNamespace="ns-dev\,ns-qa\,ns-uat"
# Operator with name `mongodb-enterprise-operator-staging` will # watch ns-staging and ns-pre-prod helm install mongodb-operator helm-chart --set operator.watchNamespace="ns-staging\,ns-pre-prod" mongodb-enterprise-operator-staging
Kubernetes 연산자가 배포된 네임스페이스가 아닌 하나 이상의 네임스페이스에 있는 리소스를 감시하기 위해 Kubernetes 연산자를 설치하는 경우:
다음 리소스를 만듭니다.
A 여러 리소스에 액세스 할 수 있는 ClusterRole 입니다. 전체 리소스 정의는 operator-roles.yaml 예시 참조하세요. 이는 클러스터 범위의 리소스 입니다.
ClusterRoleBinding 을 생성하여 ClusterRole 을 ServiceAccount와 연결합니다. 이
clusterRoleBinding은(는) Kubernetes Operator가 설치한 네임스페이스 에서 사용 중인 ServiceAccount로 생성한clusterRole을(를) 바인딩합니다.
설치 중에 적용 기본값 구성 파일에 ClusterRole 및 ClusterRoleBinding을 포함합니다.
로컬 Kubernetes 서비스 계정:을 생성합니다.
각 네임스페이스 에 대해 다음 로컬 Kubernetes ServiceAccounts의 일부 또는 전부를 생성합니다.
네임스페이스에 MongoDB 인스턴스를 배포하려면
mongodb-enterprise-database-pods을(를) 사용합니다.네임스페이스에 Ops Manager를 배포하려면
mongodb-enterprise-appdb및mongodb-enterprise-ops-manager을 사용합니다.
다음 예시 클러스터 에서 ClusterRole 과 ClusterRoleBinding 이 함께 작동하는 방식을 보여줍니다.
mongodb 네임스페이스에 ServiceAccount를 만든 다음 이 네임스페이스에 Kubernetes 연산자를 설치한다고 가정해 보겠습니다. Kubernetes 연산자는 이 서비스 계정을 사용합니다.
네임스페이스 ns1 및 ns2 을 감시하도록 Kubernetes 연산자 범위를 설정하려면 다음을 수행합니다.
이러한 권한을 사용하여 클러스터 전체에 네임스페이스가 없는 ClusterRole을 생성합니다.
세 네임스페이스(
mongodb,ns1,ns2)에 ClusterRoleBinding을 생성합니다. 이 ClusterRoleBinding 은 ClusterRole 을mongodb네임스페이스의 ServiceAccount에 바인딩합니다.clusterRoleBinding를 사용하면mongodb네임스페이스 에 배포된 Kubernetes Operator가 대상 네임스페이스 의clusterRole, 즉mongodb,ns1및ns2에 설명된 리소스에 액세스 할 수 있습니다.
클러스터 전체 범위를 사용하는 연산자
Kubernetes Operator의 범위를 Kubernetes 클러스터로 설정할 수 있습니다. 이 경우 Kubernetes Operator는 Kubernetes 클러스터의 모든 네임스페이스에 있는 MongoDB Ops Manager 및 MongoDB 리소스를 감시합니다.
중요
Kubernetes cluster당 cluster 전체 범위로 Kubernetes 연산자 인스턴스를 하나만 배포할 수 있습니다.
Kubernetes Operator의 클러스터 전체 범위를 설정하다 하려면 플랫폼을 선택합니다.
다음 단계
MongoDB Enterprise Kubernetes Operator의 범위를 설정한 후에는 다음을 수행할 수 있습니다.