创建入口时,不会生成任何地址,当从GKE仪表板查看时,它始终处于 Creating ingress
状态 . 描述入口并没有显示任何事件,我在GKE仪表板上看不到任何线索 .
有没有人有类似的问题或有关如何调试的任何建议?
我的deployment.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: mobile-gateway-ingress
spec:
backend:
serviceName: mobile-gateway-service
servicePort: 80
---
apiVersion: v1
kind: Service
metadata:
name: mobile-gateway-service
spec:
ports:
- protocol: TCP
port: 80
targetPort: 8080
selector:
app: mobile-gateway
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mobile-gateway-deployment
labels:
app: mobile-gateway
spec:
selector:
matchLabels:
app: mobile-gateway
replicas: 2
template:
metadata:
labels:
app: mobile-gateway
spec:
containers:
- name: mobile-gateway
image: eu.gcr.io/my-project/mobile-gateway:latest
ports:
- containerPort: 8080
描述入口显示没有事件:
mobile-gateway ➤ kubectl describe ingress mobile-gateway-ingress git:master*
Name: mobile-gateway-ingress
Namespace: default
Address:
Default backend: mobile-gateway-service:80 (10.4.1.3:8080,10.4.2.3:8080)
Rules:
Host Path Backends
---- ---- --------
* * mobile-gateway-service:80 (10.4.1.3:8080,10.4.2.3:8080)
Annotations:
kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"extensions/v1beta1","kind":"Ingress","metadata":{"annotations":{},"name":"mobile-gateway-ingress","namespace":"default"},"spec":{"backend":{"serviceName":"mobile-gateway-service","servicePort":80}}}
Events: <none>
hello ➤
使用简单的LoadBalancer服务,可以获得IP地址 . 问题仅在于入口资源 .
2 回答
在这种情况下的问题是我在创建集群时没有包含插件
HttpLoadBalancing
!我的错,但是肯定会有一个事件告诉我入口资源中的这个错误 .奇怪的是,当我创建一个新的群集来跟随教程cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer使用默认插件包括
HttpLoadBalancing
时,我发现了同样的问题 . 也许我没等多久?无论如何,现在我已经加入了插件 .要完成接受的答案,值得注意的是,可以在现有群集(来自Google控制台)上激活插件 .
但是,它是 will restart 你的集群 with downtime (在我的情况下,它在几乎空的集群上花了几分钟) . 确保在您的情况下是可接受的,并进行测试 .