本地Docker连接到Kubernetes集群

时间:2018-06-28 15:49:33

标签: docker kubernetes

我想将本地运行的Docker容器连接到Kubernetes集群上运行的服务。为此,我通过保留一些静态IP地址公开了一项服务。

我还将这些IP地址保存在/etc/hosts/文件中的本地DNS中:

123.123.123.12 host1
456.456.456.45 host2 

我想将我的容器链接到该容器,以使所有流量都路由到那些地址,以便集群可以处理它。我正在docker容器中使用链接功能,但无法正常工作。

我想直接使用IP连接吗?我该怎么办?

1 个答案:

答案 0 :(得分:1)

无论客户端是否在Docker中,执行此操作都没有区别。但是,如果您拥有service exposed from Kubernetes,则可以通过外部主机上运行的进程或该主机上Docker容器中运行的进程对其建立相同的连接。

说,就像Kubernetes文档中的示例一样,您正在运行一个NodePort服务,该服务可以在群集中每个节点上的端口31496上访问,并且您正尝试从群集外部连接到该端口。也许在问题123.123.123.12中是集群中的某个节点。典型的设置是从环境变量(JavaScript process.env.THE_SERVICE_URL; Ruby ENV['THE_SERVICE_URL']; Python os.environ['THE_SERVICE_URL']; ...)中获取服务的位置。

开发时,可以在本地shell中设置该变量:

export THE_SERVICE_URL=http://123.123.123.12:31496
cd here && ./kubernetes_client_script.py

当您部署应用程序时,可以设置相同的环境变量:

docker run -e THE_SERVICE_URL=http://123.123.123.12:31496 me:k8s-client
相关问题