Couchbase cbbackup从远程服务器失败

时间:2020-07-28 09:09:57

标签: kubernetes couchbase

Couchbase cbbackup从远程服务器失败,该远程服务器与在K8s上运行的Couchbase具有完全连接。

  • Couchbase服务器版本:ouchbase:社区6.0.0
  • 在Kubernetes 1.17上运行的Couchbase。

cbbackup -m full http://{IP}:61006 /backup-1 -u admin -p password -vvv

错误:SASL身份验证套接字错误:192.168.72.10:11210,超时

在下面添加了

cbbackup日志,

mt cbbackup...
mt  source : http://{IP}:61006
mt  sink   : /backup-1
mt source_class: <class 'pump_dcp.DCPStreamSource'>
mt Starting new HTTP connection (1): {IP}
mt "GET /pools/default/buckets HTTP/1.1" 200 19966
mt sink_class: <class 'pump_bfd.BFDSink'>
mt source_buckets: bucket-1
mt bucket: bucket-1
mt  source_nodes: 192.168.72.10:8091
mt  enqueueing node: 192.168.72.10:8091
mt rest_request: <ud>admin</ud>@{IP}:61006/pools/default/buckets/bucket-1/stats/curr_items; reason: total_msgs
w0  node: 192.168.72.10:8091
w0 sink_bucket: bucket-1
w0   DCPStreamSource connecting mc: 192.168.72.10:11210
s0   create_db: /backup-1/2020-07-28T083342Z/2020-07-28T083342Z-full/bucket-bucket-1/node-192.168.72.10%3A8091/data-0000.cbb
s0   connect_db: /backup-1/2020-07-28T083342Z/2020-07-28T083342Z-full/bucket-bucket-1/node-192.168.72.10%3A8091/data-0000.cbb
mt rest_request: <ud>admin</ud>@{IP}:61006/pools/default/buckets/bucket-1/stats/vb_active_resident_items_ratio; reason: total_msgs
w0   pump (http://{IP}:61006(bucket-1@192.168.72.10:8091)->/backup-1(bucket-1@192.168.72.10:8091)) done.
w0   source : http://{IP}:61006(bucket-1@192.168.72.10:8091)
w0   sink   : /backup-1(bucket-1@192.168.72.10:8091)
w0          :                total |       last |    per sec
w0  node: 192.168.72.10:8091, done; rv: (u'error: SASL auth socket error: 192.168.72.10:11210, timed out', None)
(u'error: SASL auth socket error: 192.168.72.10:11210, timed out', None)

在Couchbase论坛中也提出了问题。请参阅here

对此有任何想法吗?我陷入了这个问题。

更新 我无法使用公开的内存缓存端口进行cbbackup,因为在官方document中未添加任何选项。 在Couchbase论坛上发布的This答案提供了一些详细信息。如果是这样,则不可能从远程系统运行成功的cbbackup。但是我不认为Couchbase团队采用这种方式设计。希望有办法实现相同的目标。

  • 备份和还原Couchbase已使用Kubernetes Jobs进行了测试并可以正常工作。但是要寻找远程的Couchbase备份。

2 个答案:

答案 0 :(得分:2)

这里的问题看起来像?,是您在榻榻米服务器/存储桶上配置了SASL身份验证。另外,看起来?Pod IP是192.168.72.10,因此客户端正在尝试从相同的Pod网络进行身份验证,但是您是从不在Kubernetes集群中的另一台计算机发出请求的(我假设)。

您可以尝试从Pod运行备份:

$ kubectl run -i --tty --rm debug --image=couchbase --restart=Never -- /opt/couchbase/bin/cbbackup -m full http://{IP}:61006 /backup-1 -u admin -p password -vvv

不幸的是,kubectl run并没有很多功能,因此如果您想挂载卷,则可能必须创建自己的Kubernetes YAML清单。

apiVersion: v1
kind: Pod
metadata:
  name: couchbase-backup
spec:
  containers:
  - name: couchbase-backup
    image: couchbase
    command: ["/opt/couchbase/bin/cbbackup"]
    args: ["-m", "full", "http://{IP}:61006", "/backup-1", "-u", "admin", "-p", "password", "-vvv"]
    volumeMounts:
    - name: storage
      mountPath: /backup-1
  volumes:
  - name: storage
    ...

✌️☮️

答案 1 :(得分:2)

不幸的是,使用Couchbase 6.0无法从外部网络进行备份。

https://docs.couchbase.com/server/6.0/cli/cbbackup-tool.html#description

cbbackup,cbrestore和cbtransfer工具不与群集外部服务器节点的外部IP地址通信。对来自Couchbase Server群集内节点的数据执行备份,还原或传输操作。它们仅与集群中获得的节点列表中的节点通信。这也意味着,如果使用默认IP地址安装了Couchbase Server,则无法使用外部主机名来访问它。

6.5的文档中没有此警告……我认为这是因为6.5引入了alternate addresses用于从网络外部进行连接。