我在GKE上运行Kubernetes,这之前是有效的,但大约2天前情况发生了变化。我不认为我对我的配置有任何改变。我的服务似乎不再起作用了。我的服务都不能相互通信。当SSHing进入正在运行的pod时,我不能通过它们的服务名来ping它们,但也不能通过它们的内部IP地址来ping它们。负载均衡的外部IP不可访问。下面是我如何定义部署的一个示例:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
labels:
ksonnet.io/component: app-name
name: app-name
spec:
replicas: 1
template:
metadata:
labels:
app: app-name这里是服务:
apiVersion: v1
kind: Service
metadata:
labels:
ksonnet.io/component: app-name
name: app-name
spec:
loadBalancerIP: x.x.x.x
ports:
- port: 4999
targetPort: 5000
selector:
app: app-name
type: LoadBalancer我是Kubernetes和networking的新手,我不知道该去哪里看,也不知道如何调试这个问题。
编辑:
下面是相关的kubectl get services -n test
dashboard ClusterIP 10.47.242.176 <none> 5000/TCP 1h
app-name LoadBalancer 10.47.246.63 x.xxx.xx.xx 4999:31439/TCP 1h然后是kubectl describe service app-name -n test
Name: app-name
Namespace: test
Labels: app.kubernetes.io/deploy-manager=ksonnet
ksonnet.io/component=app-name
Annotations: ksonnet.io/managed: {pristine...}
Selector: app=app-name
Type: LoadBalancer
IP: 10.47.246.63
IP: xx.xxx.xx.x
LoadBalancer Ingress: xx.xxx.xx.x
Port: <unset> 4999/TCP
TargetPort: 5000/TCP
NodePort: <unset> 31439/TCP
Endpoints: 10.44.1.141:5000
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>编辑2:我在默认端口上尝试了curl命令,它超时了:
curl: (7) Failed to connect to app-name port 80: Connection timed out当在完整端点上尝试它时,它得到了一个连接被拒绝:
curl: (7) Failed to connect to app-name port 4999: Connection refused在查看部署时,我得到了以下pod模板:
Pod Template:
Labels: app=app-name
Containers:
model-manager:
Image: gcr.io/ns-delay/app-name:0.1
Port: 5000/TCP
Host Port: 0/TCP发布于 2018-12-07 18:51:49
在我看来,服务中的选择器与部署中的标签不匹配,请更改为
metadata: labels: app: app-name
在您的部署中,它应该可以工作。
https://stackoverflow.com/questions/53666173
复制相似问题