我正试图在我的Kubernetes集群中安装一个服务网格,为此,我想完成以下工作:
为此,我在应用程序部署中将以下配置添加到容器规范中:
# 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上),以一种可以从其他荚访问特定节点(当前节点)的方式?
发布于 2018-05-07 19:51:13
你可以把你的吊舱放在主机网络空间里。这样,您就不需要任何服务,您的Pod就可以在每个节点的PodSpec中声明的端口上访问。
可以通过将服务绑定到127.0.0.1而不是0.0.0.0来避免外部可达性。
如果您想尝试一下,可以在主机网络空间中通过将以下内容添加到PodSpec of DaemonSet来运行端口:
hostNetwork: true请注意,使用此解决方案,您将需要使用主机的IP地址来连接到您的吊舱。
为了在hostNetworked荚中获得内部DNS名称解析,还需要设置如下DNS策略:
dnsPolicy: ClusterFirstWithHostNet这将确保您的荚将使用内部DNS服务器进行名称解析。
https://stackoverflow.com/questions/50216813
复制相似问题