Puedes ascender de un v1.x Implementación del operador de Kubernetes de Atlas siguiendo este procedimiento de actualización. Para ello, tendrás que actualizar la especificación del recurso personalizado de MongoDB existente, ya que los nombres de los campos YAML en v2.x han cambiado y todas las credenciales se pasan ahora como secretos de Kubernetes. Además, debes crear un nuevo clúster de Kubernetes, implementar Atlas Kubernetes Operator v2.x allí y luego migrar la gestión de tu instancia existente de la base de datos MongoDB Atlas a este nuevo implementación de Atlas Kubernetes Operator v2.x.
Procedimiento
Implementa un nuevo clúster de Kubernetes.
Con este nuevo clúster implementado, ahora tienes dos clústeres de Kubernetes. Los siguientes pasos requieren que ejecutes comandos kubectl en cada uno de estos clústeres de Kubernetes. Para simplificar esto, puedes configurar cada uno de los contextos de Kubernetes con los siguientes comandos:
kubectl config set-cluster old --server=https://<OLD_CLUSTER_URL> kubectl config set-context old --cluster=old kubectl config set-cluster new --server=https://<NEW_CLUSTER_URL> kubectl config set-context new --cluster=new
Implementa Atlas Kubernetes Operator v2.x en tu nuevo clúster K8s.
Reemplace el marcador de posición <version> en el siguiente comando con la versión deseada de Atlas Kubernetes Operator y ejecute el comando para implementar Atlas Kubernetes Operator en su clúster de Kubernetes recién aprovisionado.
kubectl use-context new kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/<version>/deploy/all-in-one.yaml
Escala la cantidad de réplicas de tu Atlas Kubernetes Operator v1.x a cero.
Escale el recuento de réplicas en su v1.x Atlas Kubernetes Operator deployment a 0 en su clúster de Kubernetes "antiguo", de modo que ya no supervise ni actualice la implementación asociada de MongoDB Atlas ejecutando:
kubectl use-context old kubectl scale --replicas=0 deployment.apps/mongodb-atlas-operator -n mongodb-atlas-system
Actualice las definiciones existentes de CR de AtlasProject.
Actualice sus definiciones YAML existentes para alinearlas con el siguiente ejemplo, de modo que hagan referencia a los siguientes secretos y credenciales de API según sea necesario:
Sección CR | Proveedor de nube | v1.x | versión 2.x |
|---|---|---|---|
|
|
| |
|
| ||
|
| ||
|
| ||
|
| ||
|
| ||
| AWS |
|
|
Azure |
|
| |
GCP |
|
|
Como resultado de las actualizaciones que realizó en los pasos anteriores, su CRD resultante podría parecerse al siguiente ejemplo:
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."
Actualice las definiciones existentes de CR de AtlasDeployment.
Si tu definición YAML existente incluye un
advancedDeploymentSpec, renombra esa sección adeploymentSpec.Si su definición YAML existente incluye un
deploymentSpec, actualice esa sección para alinearla con el siguiente ejemplodeploymentSpec.Si tu definición YAML existente incluye un
serverlessSpec, no se requieren cambios.
Como resultado de las actualizaciones que realizó en los pasos anteriores, su CRD resultante podría parecerse al siguiente ejemplo:
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
Escala el número de miembros del set de réplicas en la implementación actualizada.
Establezca el número de réplicas en 1 en su implementación de Atlas Kubernetes Operator 2.x para que el nuevo Atlas Kubernetes Operator recoja los recursos migrados. Dado que estos recursos son semánticamente iguales a sus recursos personalizados de AKO 1.9.x existentes, sus recursos de MongoDB Atlas no cambiarán.