AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

Kubernetes演算子の配置

複数のKubernetesクラスターにMongoDBリソースの複数のインスタンスを配置するには、まずKubernetes Operator をKubernetesクラスターの 1 つに配置する必要があります。Kubernetes Operator が中央のKubernetesクラスターに配置されると、中央のKubernetesクラスターにアップデートを適用することで、すべてのKubernetesクラスターにわたってMongoDBリソースを作成および管理できます。

次の手順を開始する前に、次のアクションを実行してください。

  • kubectl をインストールします。

  • Helm をインストールします。

  • GKE クラスターの手順または同等の手順を完了します。

  • TLS 証明書 の手順または同等の手順を実行します。

  • Istio Service メッシュ手順または同等の手順を完了します。

  • kubectl mongodbプラグインをインストールします。kubectl mongodbプラグインをインストールするには

    1

    Kubernetes Operator リポジトリ用のMongoDBコントロールのリリース ページから、ご希望のKubernetes Operatorパッケージバージョンをダウンロードします。

    パッケージの名前には次のパターンが使用されます: kubectl-mongodb_{{ .Version }}_{{ .Os }}_{{ .Arch }}.tar.gz

    次のいずれかのパッケージを使用します。

    • kubectl-mongodb_{{ .Version }}_darwin_amd64.tar.gz

    • kubectl-mongodb_{{ .Version }}_darwin_arm64.tar.gz

    • kubectl-mongodb_{{ .Version }}_linux_amd64.tar.gz

    • kubectl-mongodb_{{ .Version }}_linux_arm64.tar.gz

    2

    次の例のように、 パッケージを解凍します。

    tar -zxvf kubectl-mongodb_<version>_darwin_amd64.tar.gz
    3

    解凍された ディレクトリでkubectl-mongodbバイナリを見つけ、次の例に示すように、Kubernetes Operator ユーザーの PATH 内にある目的の宛先に移動します。

    mv kubectl-mongodb /usr/local/bin/kubectl-mongodb

    これで、次のコマンドを使用してkubectl mongodbプラグインを実行できるようになります。

    kubectl mongodb multicluster setup
    kubectl mongodb multicluster recover

    サポートされているフラグの詳細については、 MongoDB kubernetes プラグイン リファレンス を参照してください。

  • 必要に応じて を更新し、次の env_variables.shファイルで定義されている環境変数を設定します。

    1# Namespace in which Ops Manager and AppDB will be deployed
    2export OM_NAMESPACE="mongodb-om"
    3# Namespace in which the operator will be installed
    4export OPERATOR_NAMESPACE="mongodb-operator"
    5# Namespace in which MongoDB resources will be deployed
    6export MDB_NAMESPACE="mongodb"
    7
    8# comma-separated key=value pairs for additional parameters passed to the helm-chart installing the operator
    9export OPERATOR_ADDITIONAL_HELM_VALUES="${OPERATOR_ADDITIONAL_HELM_VALUES:-""}"
    10
    11export OFFICIAL_OPERATOR_HELM_CHART="mongodb/mongodb-kubernetes"
    12export OPERATOR_HELM_CHART="${OPERATOR_HELM_CHART:-${OFFICIAL_OPERATOR_HELM_CHART}}"

You can find all included source code in the MongoDB Kubernetes Operator repository.

1
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" create namespace "${OPERATOR_NAMESPACE}"
kubectl --context "${K8S_CLUSTER_1_CONTEXT_NAME}" create namespace "${OPERATOR_NAMESPACE}"
kubectl --context "${K8S_CLUSTER_2_CONTEXT_NAME}" create namespace "${OPERATOR_NAMESPACE}"
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" create namespace "${OM_NAMESPACE}"
kubectl --context "${K8S_CLUSTER_1_CONTEXT_NAME}" create namespace "${OM_NAMESPACE}"
kubectl --context "${K8S_CLUSTER_2_CONTEXT_NAME}" create namespace "${OM_NAMESPACE}"
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" create namespace "${MDB_NAMESPACE}"
kubectl --context "${K8S_CLUSTER_1_CONTEXT_NAME}" create namespace "${MDB_NAMESPACE}"
kubectl --context "${K8S_CLUSTER_2_CONTEXT_NAME}" create namespace "${MDB_NAMESPACE}"
2
mkdir -p secrets
kubectl create secret generic "image-registries-secret" \
--from-file=.dockerconfigjson="${HOME}/.docker/config.json" --type=kubernetes.io/dockerconfigjson \
--dry-run=client -o yaml > secrets/image-registries-secret.yaml
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${OPERATOR_NAMESPACE}" apply -f secrets/image-registries-secret.yaml
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${OM_NAMESPACE}" apply -f secrets/image-registries-secret.yaml
kubectl --context "${K8S_CLUSTER_1_CONTEXT_NAME}" -n "${OM_NAMESPACE}" apply -f secrets/image-registries-secret.yaml
kubectl --context "${K8S_CLUSTER_2_CONTEXT_NAME}" -n "${OM_NAMESPACE}" apply -f secrets/image-registries-secret.yaml
kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" apply -f secrets/image-registries-secret.yaml
kubectl --context "${K8S_CLUSTER_1_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" apply -f secrets/image-registries-secret.yaml
kubectl --context "${K8S_CLUSTER_2_CONTEXT_NAME}" -n "${MDB_NAMESPACE}" apply -f secrets/image-registries-secret.yaml
3

次のコマンドを実行して、 Kubernetesクラスターを構成します。

1kubectl mongodb multicluster setup \
2 --central-cluster="${K8S_CLUSTER_0_CONTEXT_NAME}" \
3 --member-clusters="${K8S_CLUSTER_0_CONTEXT_NAME},${K8S_CLUSTER_1_CONTEXT_NAME},${K8S_CLUSTER_2_CONTEXT_NAME}" \
4 --member-cluster-namespace="${OM_NAMESPACE}" \
5 --central-cluster-namespace="${OPERATOR_NAMESPACE}" \
6 --create-service-account-secrets \
7 --install-database-roles=true \
8 --image-pull-secrets=image-registries-secret
9
10kubectl mongodb multicluster setup \
11 --central-cluster="${K8S_CLUSTER_0_CONTEXT_NAME}" \
12 --member-clusters="${K8S_CLUSTER_0_CONTEXT_NAME},${K8S_CLUSTER_1_CONTEXT_NAME},${K8S_CLUSTER_2_CONTEXT_NAME}" \
13 --member-cluster-namespace="${MDB_NAMESPACE}" \
14 --central-cluster-namespace="${OPERATOR_NAMESPACE}" \
15 --create-service-account-secrets \
16 --install-database-roles=true \
17 --image-pull-secrets=image-registries-secret
4

MongoDB Helm Charts for Kubernetesリポジトリを Helm に追加します。

1helm repo add mongodb https://mongodb.github.io/helm-charts
2helm repo update mongodb
3helm search repo "${OFFICIAL_OPERATOR_HELM_CHART}"
5

Kubernetes用のMongoDB Helm Charts を使用して、 Kubernetes演算子を配置します。

1helm upgrade --install \
2 --debug \
3 --kube-context "${K8S_CLUSTER_0_CONTEXT_NAME}" \
4 mongodb-kubernetes-operator-multi-cluster \
5 "${OPERATOR_HELM_CHART}" \
6 --namespace="${OPERATOR_NAMESPACE}" \
7 --set namespace="${OPERATOR_NAMESPACE}" \
8 --set operator.namespace="${OPERATOR_NAMESPACE}" \
9 --set operator.watchNamespace="${OM_NAMESPACE}\,${MDB_NAMESPACE}" \
10 --set operator.name=mongodb-kubernetes-operator-multi-cluster \
11 --set operator.createOperatorServiceAccount=false \
12 --set operator.createResourcesServiceAccountsAndRoles=false \
13 --set "multiCluster.clusters={${K8S_CLUSTER_0_CONTEXT_NAME},${K8S_CLUSTER_1_CONTEXT_NAME},${K8S_CLUSTER_2_CONTEXT_NAME}}" \
14 --set "${OPERATOR_ADDITIONAL_HELM_VALUES:-"dummy=value"}" \
15 --set operator.env=dev
6
1kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${OPERATOR_NAMESPACE}" rollout status --timeout=2m deployment/mongodb-kubernetes-operator-multi-cluster
2echo "Operator deployment in ${OPERATOR_NAMESPACE} namespace"
3kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${OPERATOR_NAMESPACE}" get deployments
4echo; echo "Operator pod in ${OPERATOR_NAMESPACE} namespace"
5kubectl --context "${K8S_CLUSTER_0_CONTEXT_NAME}" -n "${OPERATOR_NAMESPACE}" get pods
このページを評価