我在网上搜索了很长时间。但是没用。请帮助或尝试给出一些想法来实现这一目标。
服务定义:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "eureka1",
"namespace": "default",
"selfLink": "/api/v1/namespaces/default/services/eureka1",
"uid": "aed393f1-d127-11e8-8f19-fa163e4dc428",
"resourceVersion": "7432445",
"creationTimestamp": "2018-10-16T09:41:40Z",
"labels": {
"k8s-app": "eureka1"
}
},
"spec": {
"ports": [
{
"name": "tcp-38761-8761-6fjms",
"protocol": "TCP",
"port": 80,
"targetPort": 80,
"nodePort": 8761
}
],
"selector": {
"k8s-app": "eureka1"
},
"clusterIP": "10.254.65.233",
"type": "NodePort",
"sessionAffinity": "None",
"externalTrafficPolicy": "Cluster"
},
"status": {
"loadBalancer": {}
}
}
kubectl描述服务eureka1:
Name: eureka1
Namespace: default
Labels: k8s-app=eureka1
Annotations: <none>
Selector: k8s-app=eureka1
Type: NodePort
IP: 10.254.65.233
Port: tcp-38761-8761-6fjms 80/TCP
TargetPort: 80/TCP
NodePort: tcp-38761-8761-6fjms 8761/TCP
Endpoints: 172.101.51.8:80
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
kubectl得到ep:
NAME ENDPOINTS
eureka1 172.101.51.8:80
eureka2 172.101.52.8:80
如果我在eureka1应用程序telnet中访问10.254.65.233 80
Trying 10.254.65.233...
telnet: connect to address 10.254.65.233: Connection timed out
但是我可以ping 10.254.65.233
尝试使用其他服务IP而不是选择器,并且可以telnet。
kube-proxy模式为ipvs
谢谢
答案 0 :(得分:0)
如果未将网络正确配置为“发夹式”流量,通常在kube-proxy
以iptables
模式运行并且Pods与网桥网络连接时,可能会发生这种情况。 Kubelet
公开了一个hairpin-mode
标志,该标志允许服务的端点在尝试访问自己的服务VIP时对其自身进行负载平衡。 hairpin-mode
标志必须设置为hairpin-veth
或promiscuous-bridge
。