首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >公开DaemonSet服务,供同一节点上的豆荚使用

问公开DaemonSet服务,供同一节点上的豆荚使用
EN

Stack Overflow用户
提问于 2018-05-07 14:39:06
回答 1查看 4.6K关注 0票数 5

我正试图在我的Kubernetes集群中安装一个服务网格,为此,我想完成以下工作:

  • 服务网格荚以守护进程集的形式运行,每个节点上有一个副本。
  • 服务网格无法从集群外部直接访问。
  • 应用程序荚使用同一节点上的服务网格荚作为所有请求的http代理。

为此,我在应用程序部署中将以下配置添加到容器规范中:

代码语言:javascript
复制
# deployment.spec.template.spec.containers[0]
  env:
  - name: NODE_NAME
    valueFrom:
      fieldRef:
        fieldPath: spec.nodeName
  - name: HTTP_PROXY
    value: http://$(NODE_NAME):4140

然而,我未能正确地公开服务网格;我尝试过使用type: ClusterIP和type: LoadBalancer服务,但对于前者,我无法连接,而对于后者,我公开了服务网格,这是我不想做的。我也尝试过使用NodePort,但我甚至还没有找到一个有效的配置(而且似乎有一些人认为如果可能的话,应该避免NodePort.)。

我应该如何在端口4140-4142和9990上公开服务网格(最好是在端口4140-4142和9990上),以一种可以从其他荚访问特定节点(当前节点)的方式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-07 19:51:13

你可以把你的吊舱放在主机网络空间里。这样,您就不需要任何服务,您的Pod就可以在每个节点的PodSpec中声明的端口上访问。

可以通过将服务绑定到127.0.0.1而不是0.0.0.0来避免外部可达性。

如果您想尝试一下,可以在主机网络空间中通过将以下内容添加到PodSpec of DaemonSet来运行端口:

代码语言:javascript
复制
hostNetwork: true

请注意,使用此解决方案,您将需要使用主机的IP地址来连接到您的吊舱。

为了在hostNetworked荚中获得内部DNS名称解析,还需要设置如下DNS策略:

代码语言:javascript
复制
dnsPolicy: ClusterFirstWithHostNet

这将确保您的荚将使用内部DNS服务器进行名称解析。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50216813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档