我正在尝试使用连体来自托管一个简单的FaaS平台,这个平台来自于一个在线的Linux服务器。我已经成功地安装了小库贝,并使用共轭算子安装/配置了级联。
在链接指南中的默认选择之后,我已经将kourier设置为网络层,并选择了Magic (sslip.io)设置。在运行minikube tunnel之后,我可以成功地提供像helloworld-python这样的演示应用程序。
但是,根据KNative,我的“外部IP”是一个私有ip:
kubectl --namespace knative-serving get service kourier
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kourier LoadBalancer 10.100.195.53 10.100.195.53 80:31140/TCP,443:31175/TCP 15h(注意,IP以10.开头,此IP不是机器外部的。)
因此,应用程序返回包含这个私有IP:http://helloworld-python.default.10.100.195.53.sslip.io的sslip.io地址。因此,我可以从主机服务器查询此服务(例如,通过curl),但不能从任何其他机器访问该服务。同样,如果我试图配置任何“事件”服务,KNative会生成带有私有IP地址的web挂钩,这显然无法工作,因为像GitHub这样的外部服务并不能解决它们。
那么,在这种情况下,为什么K困返回私有IP呢?KNative的安装似乎没有给出任何迹象表明情况会是这样,这表明
kubectl --namespace knative-serving get service kourier可能会返回一个CNAME或IP地址,我们应该“为以后的DNS配置注意这一点”(除非使用Magic )。它应该归还一个私人IP吗?
作为一个侧注/背景上下文,我的服务器有一个固定的IP地址,我使用卡迪 (在容器中与minikube位于同一个码头网络中)向服务提供https域名。另外,如果我只是按照标准迷你导轨作为NodePort或LoadBalancer来创建服务,那么我可以轻松地获取kubectl get svc显示的端口,并通过指向迷你库容器上的上述端口,在caddy中公开该服务,类似于Caddyfile中的如下所示:
minikube.app.mydomain.com {
reverse_proxy minikube:32637 {
header_up Host {host}
}
}这只是为了确认,在香草迷你库贝,我没有问题的入口配置。KNative显然有一个额外的网络层,它通过它为应用程序生成URL,但这已经失败了。我不能就这样用私有IP地址KNative返回来替换“`minikube:32637”)
发布于 2022-09-04 13:44:17
本机使用HTTP Host报头在多个服务之间共享一个IP地址(类似于您对caddy.所做的操作)。
如果您想使用caddy来路由这些请求,则需要使用Host重写指令头。您可以使用替换表单和/或更改本机域前缀,以使这更容易。
https://stackoverflow.com/questions/73597233
复制相似问题