无法通过K8s上的URL访问StreamSets

时间:2020-04-30 14:35:59

标签: kubernetes streamsets service-node-port-range

我正在使用ansible脚本在k8s主节点上部署流集。我正在检查是否可以通过 http://127.0.0.1访问{{streamsets_nodePort}} 其中streamsets_nodePort: 30029来访问流集仪表板。默认端口是30024,已分配给其他服务,因此我更改了端口。

服务已启动,并且窗格正在运行。

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

service/streamsets-service NodePort 10.104.162.67 <none> 18630:30029/TCP 24m

何时看到我可以看到的日志, Running on URI : 'http://streamsets-0.streamsets-service.streamsets-ns.svc.cluster.local:18630' 2020-04-30 13:45:58,149 [user:] [pipeline:] [runner:] [thread:main] [stage:] INFO WebServerTask - Running on URI : 'http://streamsets-0.streamsets-service.streamsets-ns.svc.cluster.local:18630'

以下是我的service.yml

apiVersion: v1 kind: Service metadata: name: streamsets-service labels: name: streamsets spec: type: NodePort ports: - port: {{streamsets_port}} targetPort: 18630 nodePort: {{streamsets_nodePort}} selector: role: streamsets

这些是分配的端口详细信息:

streamsets_port: 8630

streamsets_nodePort: 30029

streamsets_targetPort: 18630

在执行下面的代码块时

`- name: Check if Streamsets is accessible.`
  `uri:`
    `url: http://localhost:{{streamsets_nodePort}}`
    `method: GET`
    `status_code: 200`
  `register: streamsets_url_status`

- debug:`
    `var: streamsets_url_status.msg`

执行此块时得到的输出-

fatal: [127.0.0.1]: FAILED! => {"changed": false, "content": "", "elapsed": 30, "msg": "Status code was -1 and not [200]: Connection failure: timed out", "redirected": false, "status": -1, "url": "http://localhost:30029"}

有人可以帮助我了解问题所在吗?

1 个答案:

答案 0 :(得分:2)

也许我的理解不正确,但是为什么服务会在127.0.0.1的本地IP上响应?

您正在创建一个NodePort映射,该映射将自动创建一个ClusterIP-您可以在服务列表中看到这一点:10.104.162.67 将该IP与您已经制定的“端口”规范(在本例中为8630)结合起来,即可用来访问您随服务公开的端口的应用程序。

或者,如果您想直接访问您创建的NodePort,则将点击运行Pod的节点的直接内部IP。执行kubectl get nodes -o wide并记下您感兴趣的节点的内部IP地址,然后对该IP地址与您为该服务指定的nodePort结合进行调用(在这种情况下为30029)。

根据您正在SSH /执行的层(即Pod,节点,conatiner等),127.0.0.1的分辨率可能会完全不同-您执行过的容器不会不能将127.0.0.1解析为正在运行的主机的地址,而是解析为正在运行的主机的地址。

相关问题