Atlas Operator的快速入门指南

294 阅读3分钟

MongoDB企业运营商的作用是在自我管理的基础设施上自动化和管理MongoDB集群。虽然这种整合从单一的Kubernetes控制平面提供了对自我管理的MongoDB部署的完全控制,但我们更进一步,将这一功能扩展到我们完全管理的数据库--MongoDB Atlas。我们很高兴地介绍Kubernetes的Atlas运营商的试用版本。

Atlas操作员将允许你管理所有的MongoDB Atlas集群,而不必离开Kubernetes。通过从你最想去的地方管理你的云原生应用程序的生命周期,尽可能地保持你的工作流程的无缝和优化。通过该Atlas运营商的试用版,您可以通过Kubernetes在您选择的云提供商上配置和部署完全管理的MongoDB Atlas集群。

对于那些寻求通过AWS、谷歌云和Azure原生的独特工具和服务来释放多云的力量,而不增加数据管理经验的复杂性的人来说,这个供应商尤其重要。有了这个新的Atlas运营商,你就可以通过Atlas上的多云集群获得所有云的优点,再加上在任何地方运行你的整个堆栈的自由,同时在一个中央位置进行管理。

试用版 "只是意味着它具有提供完全管理的Atlas集群的所有核心功能,但精彩的内容还在后面。除了封装Atlas的核心功能外,它还确保为每个数据库用户创建Kubernetes Secrets,这使得敏感数据的管理更加容易。Atlas运营商还允许您创建IP绑定,以便您的应用程序可以安全地访问集群。

如果您今天有兴趣使用 Atlas Operator 的试用版,请按照我们下面的快速入门指南开始使用!

快速入门

以下是使用Atlas操作员在Atlas中创建第一个集群的步骤。请注意,在部署Atlas操作员之前,您需要有一个正在运行的Kubernetes集群。

  1. 注册/登录Atlas,为您的组织创建API密钥。此信息和组织ID将被用于配置Atlas操作员对Atlas的访问。

  2. 部署Atlas操作员

kubectl apply -f \
https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/main/deploy/all-in-one.yaml
  1. 创建一个包含步骤一中的连接信息的秘密。这个秘密将被Atlas操作员用来连接到Atlas:
kubectl create secret generic mongodb-atlas-operator-api-key \
  --from-literal="orgId=<the_atlas_organization_id>" \
  --from-literal="publicApiKey=<the_atlas_api_public_key>" \
  --from-literal="privateApiKey=<the_atlas_api_private_key>" \
  -n mongodb-atlas-system
  1. 创建AtlasProject自定义资源:
cat <<EOF | kubectl apply -f -  
apiVersion: atlas.mongodb.com/v1  
kind: AtlasProject  
metadata:  
  name: my-project  
spec:  
  name: Test Atlas Operator Project  
  projectIpAccessList:  
  - ipAddress: "0.0.0.0/0"  
    comment: "Allowing access to database from everywhere (only for Demo!)"  
EOF
  1. 创建AtlasCluster自定义资源
cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasCluster
metadata:
  name: my-atlas-cluster
spec:
  name: "Test-cluster"
  projectRef:
    name: my-project
  providerSettings:
    instanceSizeName: M10
    providerName: AWS
    regionName: US_EAST_1
EOF

(你必须等到集群准备好了--"状态 "字段显示 "准备好了:真":)

kubectl get atlasclusters my-atlas-cluster -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'  

True
  1. 为将用于登录Atlas集群数据库的密码创建一个秘密
kubectl create secret generic the-user-password \
--from-literal="password=P@@sword%"
  1. 创建AtlasDatabaseUser自定义资源(引用密码Secret)
cat <<EOF | kubectl apply -f -  
apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
  name: my-database-user
spec:
  roles:
    - roleName: "readWriteAnyDatabase"
      databaseName: "admin"
  projectRef:
    name: my-project
  username: theuser
  passwordSecretRef:
    name: the-user-password  
EOF
  1. 很快,Atlas操作员就会创建Secret,其中包含连接到Atlas集群所需的数据。你可以把它装入你的应用程序Pod,并从文件或环境变量中读取连接字符串。
kubectl get secrets/test-atlas-operator-project-test-cluster-theuser \
-o=jsonpath="{.data.connectionString.standardSrv}} | base64 -d  

mongodb+srv://theuser:P%40%40sword%25@test-cluster.peqtm.mongodb.net