【发布时间】:2018-11-25 18:40:17
【问题描述】:
在回顾最近的实验时,我回顾了笔记,使用 Kubernetes 重新创建了一个相对简单的设置,用于后端和前端服务设置。在我的场景中,这两个服务都需要公开,而现在我正在使用 NodePort。
大约一周前,这一切都运作良好,但我想我设法把事情搞砸了,这让我发疯了。结果是我似乎无法通过该服务访问我的后端 pod。我按照调试服务文档 (https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service) 进行了操作,事情进展得很快。
这是我当前的 yaml 文件:
apiVersion: v1
kind: Service
metadata:
name: test
spec:
type: NodePort
ports:
- name: default
protocol: TCP
port: 80
targetPort: 8080
selector:
app: test
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
spec:
selector:
matchLabels:
app: test
replicas: 1
template:
metadata:
labels:
app: test
spec:
containers:
- name: test
image: jan/test:v1.0.0
ports:
- containerPort: 8080
protocol: TCP
应用程序启动良好 - 它在日志中报告它已准备好接受请求。 (这是一个 Java/Grizzly 应用程序)。现在这是我尝试过的列表。
- 检查 kubectl 服务:它在那里(在本例中为 172.17.0.4)
- 执行到 pod (alpine)
- ifconfig - 172.17.0.4, 127.0.0.1
- nslookup 测试 10.96.0.10 - 有效 (注意没有名称服务,这将返回 无法解析“(null)”:名称无法解析
- ping 127.0.0.1 - 有效
- wget http://127.0.0.1:8080 - 响应良好
- ping 172.17.0.4 - 有效
- wget http://172.17.0.4:8080 - 立即失败,连接被拒绝
- wget -qO-test - 一段时间后失败,操作超时
- 执行到另一个 (busybox) pod
- ifconfig - 172.17.0.8, 127.0.0.1
- nslookup 测试 - 有效
- ping 到 pod 172.17.0.4 - 有效
- wget http://172.17.0.8:8080 - 立即失败,连接被拒绝
- wget -qO-test - 立即失败,连接被拒绝
最重要的是 - 我认为 wget -qO- {service} 需要开始报告它的 pod,而目前它没有。再一次 - 我浏览了调试服务文档的场景,并且没有问题地完成。
那么,wget -qO- 失败还有什么(其他)问题?
【问题讨论】:
标签: networking kubernetes iptables