Kubernetes 入口控制器中的主机获取到默认后端的路由
我设置了一个入口控制器,一个带有节点端口的服务,设置了运行状况路由,并验证了我的服务是否正在运行,但我的请求仍然被路由到默认后端,而不是入口控制器。我不知道为什么,也不知道如何调试这个 我已经检查过了:Kubernetes 入口控制器中的主机获取到默认后端的路由,kubernetes,google-compute-engine,Kubernetes,Google Compute Engine,我设置了一个入口控制器,一个带有节点端口的服务,设置了运行状况路由,并验证了我的服务是否正在运行,但我的请求仍然被路由到默认后端,而不是入口控制器。我不知道为什么,也不知道如何调试这个 我已经检查过了: 我的豆荚是健康的(并且有健康路线) 我有一个节点端口 服务的描述中没有错误 我的服务从另一个吊舱开始工作 当我卷曲我的URL时,我得到以下信息: $ curl image-pin.thejsj.com -v * Rebuilt URL to: image-pin.thejsj.com/ *
描述中没有错误
$ curl image-pin.thejsj.com -v
* Rebuilt URL to: image-pin.thejsj.com/
* Trying 35.186.225.114...
* Connected to image-pin.thejsj.com (35.186.225.114) port 80 (#0)
> GET / HTTP/1.1
> Host: image-pin.thejsj.com
> User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
> Accept: */*
> Referer:
>
< HTTP/1.1 404 Not Found
< Date: Mon, 19 Jun 2017 05:06:09 GMT
< Content-Length: 21
< Content-Type: text/plain; charset=utf-8
< Via: 1.1 google
<
* Connection #0 to host image-pin.thejsj.com left intact
default backend - 404
服务:
部署:
当前状态:
入口控制器:
每2.0秒:kubectl描述ingress main Ingres Jorges-MacBook-Pro-2。当地时间:2017年6月18日22:01:35
名称:主入口
名称空间:默认值
地址:35.186.225.114
默认后端:默认http后端:80(10.0.0.6:8080)
规则:
主机路径后端
---- ---- --------
image-pin.thejsj.com
/*imagepin:80()
注释:
转发规则:k8s fw默认主入口--02988768080308CD
目标代理:k8s tp默认主入口--02988768080308CD
url映射:k8s um默认主入口--02988768080308CD
后端:{“k8s-be-31582--02988768680308cd:“健康”,“k8s-be-32222--029887680308CD:“健康”}
活动:
子对象路径类型原因消息中的FirstSeen LastSeen计数
--------- -------- ----- ---- ------------- -------- ------ -------
3m 3m 1负载平衡器控制器正常创建ip:35.186.225.114
3m 3m 2负载平衡器控制器正常服务无用户指定的默认bac
kend,使用系统默认值
服务
$kubectl描述服务映像PIN
姓名:imagepin
名称空间:默认值
标签:
注释:kubectl.kubernetes.io/last applicated configuration={“apiVersion”:“v1”,“种类”:“服务”,“元数据”:{“注释”:{},“名称”:“imagepin”,“命名空间”:“默认”},“规范”:{“端口”:[{“节点端口”:32222,“端口”:80,。。。
选择器:app=imagepin
类型:节点端口
IP:10.3.241.98
端口:80/TCP
节点端口:32222/TCP
终点:10.0.2.6:80
会话关联:无
活动:
尝试按如下方式发送您的curl请求:
curl入口ip/-H“主机:映像pin.thejsj.com”
这可能对您有用。通过转到GCP UI并删除所有未使用的后端解决了此问题。但不确定这两者之间的关系……这不会有任何区别。这只是执行相同操作的不同方式。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: "main-ingress"
labels:
# Timestamp used in order to force reload of the secret
last_updated: "1497848257"
spec:
rules:
- host: image-pin.thejsj.com
http:
paths:
- path: /*
backend:
serviceName: imagepin
servicePort: 80
apiVersion: v1
kind: Service
metadata:
name: imagepin
spec:
selector:
app: imagepin
type: NodePort
ports:
- protocol: "TCP"
port: 80
nodePort: 32222
targetPort: 80
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: imagepin
spec:
replicas: 1
template:
metadata:
labels:
app: imagepin
spec:
containers:
- name: imagepin
image: quay.io/hiphipjorge/imagepin_server:latest
args:
- "npm"
- "start"
ports:
- containerPort: 80
env: ...
readinessProbe:
httpGet:
path: /
port: 80
livenessProbe:
httpGet:
path: /
port: 80
Every 2.0s: kubectl describe ingress main-ingress Jorges-MacBook-Pro-2.local: Sun Jun 18 22:01:35 2017
Name: main-ingress
Namespace: default
Address: 35.186.225.114
Default backend: default-http-backend:80 (10.0.0.6:8080)
Rules:
Host Path Backends
---- ---- --------
image-pin.thejsj.com
/* imagepin:80 (<none>)
Annotations:
forwarding-rule: k8s-fw-default-main-ingress--02988768680308cd
target-proxy: k8s-tp-default-main-ingress--02988768680308cd
url-map: k8s-um-default-main-ingress--02988768680308cd
backends: {"k8s-be-31582--02988768680308cd":"HEALTHY","k8s-be-32222--02988768680308cd":"HEALTHY"}
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
3m 3m 1 loadbalancer-controller Normal CREATE ip: 35.186.225.114
3m 3m 2 loadbalancer-controller Normal Service no user specified default bac
kend, using system default
$ kubectl describe service imagepin
Name: imagepin
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"imagepin","namespace":"default"},"spec":{"ports":[{"nodePort":32222,"port":80,...
Selector: app=imagepin
Type: NodePort
IP: 10.3.241.98
Port: <unset> 80/TCP
NodePort: <unset> 32222/TCP
Endpoints: 10.0.2.6:80
Session Affinity: None
Events: <none>