我正在尝试使用GKE部署应用程序:我使用此链接https://kubernetes.io/docs/concepts/services-networking/ingress/添加了入口资源
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: app-ip
labels:
app: myapp
part: ingress
spec:
rules:
- http:
paths:
- path: /*
backend:
serviceName: frontapp
servicePort: 3000
- path: /back/*
backend:
serviceName: backapp
servicePort: 9000
并将我的服务公开为NodePort:仅映射到“ /”的服务有效(我同时测试了正面和背面服务)
(映射到此路径不起作用
[IP] /返回/(我的路径)
在本教程中,我发现了这句话:
只需创建一个Ingress控制器即可满足Ingress 该资源将无效。
我的问题是:
1) 入口资源和控制器之间有什么区别?
2)GKE是否默认提供入口控制器或 我应该手动添加它以解决路径问题吗?
3)我的配置还有什么问题
Ps:这是我的一项服务
apiVersion: v1
kind: Service
metadata:
labels:
app: myapp
part: back
name: backapp
namespace: default
spec:
ports:
- port: 9000
protocol: TCP
targetPort: 9000 # Port on the pod with 'back' application
selector:
app: myapp
part: back
type: NodePort
这就是我描述自己的入口时得到的
Annotations:
ingress.kubernetes.io/url-map: k8s-um-default-ingress--17c7235ab3ece101
kubernetes.io/ingress.global-static-ip-name: app-ip
ingress.kubernetes.io/backends: {"k8s-be-31278--17c7235ab3ece101":"HEALTHY","k8s-be-32112--17c7235ab3ece101":"HEALTHY","k8s-be-32287--17c7235ab3ece101":"HEALTHY"}
ingress.kubernetes.io/forwarding-rule: k8s-fw-default-ingress--17c7235ab3ece101
ingress.kubernetes.io/target-proxy: k8s-tp-default-ingress--17c7235ab3ece101
Events: Type Reason Age From Message ---- ------ ---- ----
-------
Warning UrlMap 46m (x5 over 4h) loadbalancer-controller googleapi: Error 412: Invalid fingerprint., conditionNotMet
Normal Service 4m (x22 over 2h) loadbalancer-controller no user specified default backend, using system default
答案 0 :(得分:0)
1)入口是Kubernetes资源,它封装了用于将外部HTTP(S)流量路由到内部服务的规则和配置的集合。 入口控制器负责读取入口资源信息并相应地处理该数据,您需要一个入口控制器来满足入口,仅创建资源将无效。
2)默认情况下,其GLBC是,您可以在不使用入口资源的情况下部署应用程序。 默认情况下,GKE使用GLBC GLBC入口控制器,您不必配置路径,因为路径是在入口资源(您的YAML文件)中配置的。
Ingress已紧密集成到Kubernetes中,这意味着您围绕kubectl的现有工作流程可能会很好地扩展到管理Ingress。请注意,入口控制器通常并不能消除对外部负载平衡器的需求。入口控制器只是在负载平衡器后面增加了一层路由和控制层。
3)根据您的Ingress资源yaml: -将以/ Back /开头的路径的请求路由到backapp服务。 -将所有其他请求路由到frontapp服务。
在检查所获取的Yaml配置和UrlMap后,建议您根据规则添加主机,因为没有主机的IngressRule会获得通配符。