将 Atlas Kubernetes Operator v 1 .x 升级到 v 2 .x
您可以按照此升级步骤从 v1.x
Atlas Kubernetes Operator 部署进行升级。 为此,您需要更新现有的 MongoDB 自定义资源规范,因为v2.x
中的 YAML 字段名称已更改,所有凭证现在都作为 Kubernetes 密钥传递。 此外,您必须启动一个新的Kubernetes集群,在其中部署Atlas Kubernetes Operator v2.x
,然后将对现有MongoDB Atlas数据库实例的管理过渡到这个新的Atlas Kubernetes Operator v2.x
部署。
步骤
1
部署新的 Kubernetes 集群。
部署这个新集群后,您现在就有了两个 Kubernetes 集群。 以下步骤要求您对每个 Kubernetes 集群运行kubectl
命令。 为简化此过程,您可以使用以下命令配置每个 Kubernetes 上下文:
kubectl config set-cluster old --server=https://<OLD_CLUSTER_ULR> kubectl config set-context old --cluster=old kubectl config set-cluster new --server=https://<NEW_CLUSTER_ULR> kubectl config set-context new --cluster=new
2
3
4
更新现有的AtlasProject
CR 定义。
更新现有 YAML 定义以与以下示例保持一致,以便它们根据需要引用以下 API 密钥和档案:
CR 部分 | 云服务提供商 | v1.x | v2.x |
---|---|---|---|
.spec.alertConfiguration.notifications | APIToken | APITokenRef | |
DatadogAPIKey | DatadogAPIKeyRef | ||
FlowdockTokenAPI | FlowdockTokenAPIRef | ||
OpsGenieAPIKey | OpsGenieAPIKeyRef | ||
VictorOpsAPIKey | VictorOpsSecretRef | ||
VictorOpsRoutingKey | VictorOpsSecretRef
(预计具有两个VictorOps 值) | ||
.spec.encryptionAtRest | AWS | AccessKeyID , SecretAccessKey , CustomerMasterKeyID , RoleID | CloudProviderAccessRoles |
AZURE | SubscriptionID , KeyVaultName , KeyIdentifier , Secret | secretRef | |
GCP | ServiceAccountKey , KeyVersionResourceID | secretRef |
通过在前面步骤中进行的更新,生成的 CRD 可能类似于以下示例:
apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project labels: app.kubernetes.io/version: 1.6.0 spec: name: Test Atlas Operator Project projectIpAccessList: - cidrBlock: "<Public-CIDR-of-K8s-Cluster>" comment: "This CIDR is added to your Atlas Project's Access List."
5
更新现有的AtlasDeployment
CR 定义。
如果现有 YAML 定义包含
advancedDeploymentSpec
,请将该部分重命名为deploymentSpec
。如果现有 YAML 定义包含
deploymentSpec
,请更新该部分以与以下deploymentSpec
示例保持一致。如果现有 YAML 定义包含
serverlessSpec
,则无需进行任何更改。
通过在前面步骤中进行的更新,生成的 CRD 可能类似于以下示例:
deploymentSpec: clusterType: REPLICASET name: advanced-deployment-2 mongoDBMajorVersion: "5.0" replicationSpecs: - regionConfigs: regionName: EASTERN_US - electableSpecs: nodeCount: 4 instanceSize: M10 autoScaling: compute: scaleDownEnabled: true enabled: true minInstanceSize: M10 maxInstanceSize: M20 providerName: GCP backingProviderName: GCP priority: 7 regionName: US_EAST_2 - electableSpecs: nodeCount: 1 instanceSize: M10 autoScaling: compute: scaleDownEnabled: true enabled: true minInstanceSize: M10 maxInstanceSize: M20 providerName: AWS backingProviderName: AWS priority: 6
6
7