Docker 本地领事加入K8s领事Mac

Docker 本地领事加入K8s领事Mac,docker,kubernetes,kubernetes-helm,consul,Docker,Kubernetes,Kubernetes Helm,Consul,因此,我目前正在本地Kubernetes集群(docker上运行)上运行来自helm的stable/Concur图表 $ helm install -n wet-fish --namespace consul stable/consul 这将创建两个服务 ==> v1/Service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)

因此,我目前正在本地Kubernetes集群(docker上运行)上运行来自helm的stable/Concur图表

  $ 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     
这只会导致:

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.

必须有一种方法让本地的consul代理运行,可以连接到k8s consul服务器


这是在Mac上的,所以网络没有那么好….

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

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

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

潜在修复: 1.确保本地代理以客户端模式启动(手动配置not-dev) 2.将播发地址设置为可从Kubernetes
docker.for.mac.localhost路由的ip地址

给我一个大喊,如果这对你不起作用,我自己也使用过这样的设置,9/10它是Docker和本地机器之间的网络

亲切问候,


Nic

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

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

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

潜在修复: 1.确保本地代理以客户端模式启动(手动配置not-dev) 2.将播发地址设置为可从Kubernetes
docker.for.mac.localhost路由的ip地址

给我一个大喊,如果这对你不起作用,我自己也使用过这样的设置,9/10它是Docker和本地机器之间的网络

亲切问候,


Nic

我使用了Consor提供的helm模板-我将客户端设置为位于完全不同的端口上(每个端口号+1000)。然后我只使用了
/etc/hosts
文件中设置的
kubernetes.docker.internal
,没有指定端口,它加入了<代码>加入已完成。已与1个初始代理同步
-但是我在日志中看到了这一点
2020/01/20 10:44:45[警告]管理器:没有可用的服务器2020/01/20 10:44:45[错误]代理:无法同步远程状态:没有已知的领事服务器
ahhh-因此我转发了端口
8301我使用了领事的helm模板-我将客户端设置在完全不同的端口上(每个端口号+1000)。然后我只使用了
/etc/hosts
文件中设置的
kubernetes.docker.internal
,没有指定端口,它加入了<代码>加入已完成。与1个初始代理同步-但是我在日志中得到了这一点
2020/01/20 10:44:45[WARN]管理器:没有可用的服务器2020/01/20 10:44:45[ERR]代理:无法同步远程状态:没有已知的领事服务器
ahhh-因此我将端口转发到
8301
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