本地领事加入K8s领事Mac

问题描述 投票:0回答:1

因此,我目前正在本地Kubernetes集群(在docker上运行)上运行来自头盔的稳定/领事图表。

  $ helm install -n wet-fish --namespace consul stable/consul

这将创建两个服务

==> v1/Service
NAME                TYPE       CLUSTER-IP      EXTERNAL-IP  PORT(S)                                                                           AGE
wet-fish-consul     ClusterIP  None            <none>       8500/TCP,8400/TCP,8301/TCP,8301/UDP,8302/TCP,8302/UDP,8300/TCP,8600/TCP,8600/UDP  0s
wet-fish-consul-ui  NodePort   10.110.229.223  <none>       8500:30276/TCP     

所以这意味着我可以运行localhost:30276并查看领事ui。

现在我正在本地计算机上运行

  $ consul agent -dev -config-dir=./consul.d -node=machine
  $ consul join 127.0.0.1:30276

这只会导致:

Error joining address '127.0.0.1:30276': Unexpected response code: 500 (1 error occurred:
        * Failed to join 127.0.0.1: received invalid msgType (72), expected pushPullMsg (6) from=127.0.0.1:30276

)
Failed to join any nodes.

2020/01/17 15:17:35 [WARN] agent: (LAN) couldn't join: 0 Err: 1 error occurred:
        * Failed to join 127.0.0.1: received invalid msgType (72), expected pushPullMsg (6) from=127.0.0.1:30276

    2020/01/17 15:17:35 [ERR] http: Request PUT /v1/agent/join/127.0.0.1:30276, error: 1 error occurred:
        * Failed to join 127.0.0.1: received invalid msgType (72), expected pushPullMsg (6) from=127.0.0.1:30276

 from=127.0.0.1:59693

必须有一种方法可以运行可以连接到k8s领事服务器的本地领事代理...

这是在Mac上,因此联网效果不​​佳。...

docker kubernetes kubernetes-helm consul
1个回答
2
投票

这里可能有两个问题,第一个是领事代理-dev以dev模式启动代理。默认情况下,开发人员模式将同时启动服务器和代理。这可能是错误原因的一部分。

另一个问题可能是由于本地主机,在Kubernetes中运行的服务器将尝试对本地代理进行运行状况检查。它需要能够ping通本地代理,因此,即使您在第一步中成功加入,它也可能无法通过运行状况检查。

我同意在Mac上联网并非易事,您可能要做的一件事就是设置本地代理(非kube)的广告地址。 Docker for mac的主机名docker.for.mac.localhost是从容器到本地计算机的可路由ip。启动本地代理时,如果将发布地址设置为该主机的ip值,则Kubernetes Consul服务器应该能够路由到本地运行的代理。

可能的解决方法:1.确保本地代理正在客户端模式下启动(手动配置不是-dev)2.将advertise advertise地址设置为可从Kubernetes docker.for.mac.localhost

路由的IP地址。

给我一个喊叫,如果那对你不起作用,我自己使用了这样的设置,9/10就是Docker与本地计算机之间的网络。

亲切的问候,

Nic

© www.soinside.com 2019 - 2024. All rights reserved.