【问题标题】:Connect to kubernetes-aerospike mesh cluster from golang从 golang 连接到 kubernetes-aerospike 网格集群
【发布时间】:2018-04-24 01:10:11
【问题描述】:

我是 Kubernetes 新手。我成功地为 aerospike-kubernetes 创建了一个无头服务。我登录到 docker 容器并验证网格包含所有副本。我也使用过https://github.com/aerospike/aerospike-kubernetes/blob/master/aerospike-statefulset.yaml

现在,由于它的无头服务 clusterIP 是“无”,我正在编写一个 golang 程序来连接到 aerospike。我对连接到 aerospike 的 IP 地址应该包含什么感到困惑。我应该用什么代替 xxx-xxx-xxx-xxx ?如何生成内部 IP 以便连接到整个网格?

client, err := as.NewClient("xxx-xxx-xxx-xxx", 3000)
if err != nil {
    log.Fatal(err)
}

此 golang 项目将部署为 pod,因此内部 IP 就足够了。

【问题讨论】:

  • kubectl 是如何描述服务 的?端点 ips 将是容器 ips,并且应该作为您的客户端的种子节点。 pods 命令应该提供相同的信息。 kubectl 获取 pod --output=wide

标签: go kubernetes aerospike


【解决方案1】:

无头服务集群IP为“无”

这仅仅意味着我们不使用负载均衡器/反向代理模式,而是为服务端点使用 DNS 循环模式。

默认情况下,Aerospike 集群的可见性仅限于 Kubernetes 环境中。您可以使用 kube-dns 生成的服务名称进行连接。地址将采用以下形式:..svc.cluster.local。换句话说:aerospike.aerospike-cluster-1.svc.cluster.local 如果您将其保留为默认值。

【讨论】:

  • 感谢您的回复。它成功了。但是 canal 有一个问题,所以我用法兰绒重新安装了所有主节点和节点,它工作正常。不知道为什么它不适用于运河。
猜你喜欢
  • 2019-06-10
  • 2020-12-14
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-08
  • 2020-06-24
  • 2020-08-15
相关资源
最近更新 更多