【发布时间】:2021-04-09 14:43:34
【问题描述】:
我正在尝试让自动备份适用于我的 arangodb 集群部署。 我正在尝试关注documentation,但我想我搞砸了。
这是我的 database-config.yaml:
apiVersion: "database.arangodb.com/v1alpha"
kind: "ArangoDeployment"
metadata:
name: "arangodb-cluster"
spec:
mode: Cluster
agents:
count: 3
args:
- --log.level=debug
dbservers:
count: 3
coordinators:
count: 3
---
apiVersion: "backup.arangodb.com/v1alpha"
kind: "ArangoBackup"
metadata:
name: "arangodb-backup"
namespace: default
spec:
policyName: "arangodb-backup-policy"
deployment:
name: "arangodb-backup-deployment"
upload:
repositoryURL: "https://s3.filebase.com/buffer"
credentialsSecretName: "backup-secret"
---
apiVersion: "backup.arangodb.com/v1alpha"
kind: "ArangoBackupPolicy"
metadata:
name: "arangodb-backup-policy"
spec:
schedule: "*/2 * * * *"
template:
upload:
repositoryURL: "https://s3.filebase.com/myBucket"
credentialsSecretName: "backup-secret"
---
apiVersion: v1
kind: Secret
metadata:
name: backup-secret
data:
token: mybase64EnodedJSONToken
type: Opaque
理想情况下,我会在我的存储桶中找到一些数据,但它是空的。我认为可能是:
- bucket 太小(但这似乎不太现实,因为这是一个只有一个文档和 4 个集合的测试部署,所以它不应该那么大)
- 不支持我正在使用的服务 2.1 我使用的服务配置错误
- 我误解了文档中的某些内容
我解码的 json 令牌看起来像这样(我用 rclones cli 生成它):
{
"Filebase": {
"access_key_id": "myID",
"acl": "private",
"endpoint": "https://s3.filebase.com",
"env_auth": "false",
"provider": "Other",
"secret_access_key": "myAccessKey",
"type": "s3"
}
} 我的编码看起来(有点)像这样(只是把它放在这里,以防我以错误的方式编码 json 令牌):
ewogICAgIkZpbGViYXNlIXXXXXXX...X==
它是:301 字节长
我尝试了什么: 我试图深入了解正在发生的事情,但我缺乏正确执行此操作的经验,我还尝试从文档中添加一些内容但无济于事。
作为最后的通知,存储桶在filebase.com 仪表板上设置为私有,我在那里使用免费层,而 cronjob 计时器上的 2 分钟仅用于测试。
编辑:似乎自定义备份 pod 是 db 的一项专业功能,如果想要备份,则需要为此构建自己的 pod。
【问题讨论】:
-
作为第一步,可能值得检查以确保您已安装备份操作员。我刚刚意识到它与部署操作员不同。在安装了 operator 的命名空间中执行
kubectl get po并确保有一个用于备份的 pod。 -
如果你还没有的话,这似乎是设置它的清单:github.com/arangodb/kube-arangodb/blob/master/manifests/…
标签: kubernetes arangodb database-backups