Kubernetes Serenety 测试 Ingress 不适用于本地主机
Kubernetes Serenety Tests Ingress does not work with localhost
我目前正在进行本地端到端测试。
设置:
- 我的Windows机器
- 工作 Kubernetes 集群
- 部署的服务
- etc/hosts 个条目
- Selenium 测试黄瓜
为了清楚起见,并且因为我们将使用不同的阶段,我们希望在我们所有的 e2e 项目中将重定向 url 结尾从“testing”更改为“localhost”。
主机文件条目
当前
[MY IP ADDRESS] e2e.myproject.testing
成为
[MY IP ADDRESS] e2e.myproject.localhost
那个
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
labels:
app: my-webclient
name: my-webclient
namespace: somenamespace
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "100m"
nginx.ingress.kubernetes.io/app-root: "/app/"
spec:
rules:
- host: e2e.myproject.localhost
http:
paths:
- backend:
serviceName: my-myproject
servicePort: 8080
pathType: ImplementationSpecific
status:
loadBalancer:
ingress:
- hostname: localhost
有趣的事实:
如果我 运行 我的测试在 url 和部署文件中带有后缀“testing”、“foobar”、“deadbeef”,一切正常。如果我用“本地主机”替换它,它就不起作用。我收到连接错误。
理论:
在主机文件中使用“localhost”以外的任何东西作为重定向 uris,入口指向我机器的 ip。但是,如果我使用本地主机,则入口或部署指向虚拟机的 ip,它们 运行ning in.
任何人都可以验证并知道解决方案吗?或许还能解决我们的一些相关问题^^'
为了澄清,我发布了社区 Wiki 答案。
为了解决该问题,您使用了 internal
而不是 localhost
。
正如您在评论部分所写:
It seems Docker uses "internal" as they top level domain-naming for local stuff, instead of localhost. So we thought we follow that workaround.
在 this documentation 中,可以在 Docker Desktop for Windows 中找到有关网络功能的信息。
另请参阅 this documentation 关于服务的 DNS 和 Pods。
我目前正在进行本地端到端测试。
设置:
- 我的Windows机器
- 工作 Kubernetes 集群
- 部署的服务
- etc/hosts 个条目
- Selenium 测试黄瓜
为了清楚起见,并且因为我们将使用不同的阶段,我们希望在我们所有的 e2e 项目中将重定向 url 结尾从“testing”更改为“localhost”。
主机文件条目
当前
[MY IP ADDRESS] e2e.myproject.testing
成为
[MY IP ADDRESS] e2e.myproject.localhost
那个
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
labels:
app: my-webclient
name: my-webclient
namespace: somenamespace
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "100m"
nginx.ingress.kubernetes.io/app-root: "/app/"
spec:
rules:
- host: e2e.myproject.localhost
http:
paths:
- backend:
serviceName: my-myproject
servicePort: 8080
pathType: ImplementationSpecific
status:
loadBalancer:
ingress:
- hostname: localhost
有趣的事实: 如果我 运行 我的测试在 url 和部署文件中带有后缀“testing”、“foobar”、“deadbeef”,一切正常。如果我用“本地主机”替换它,它就不起作用。我收到连接错误。
理论: 在主机文件中使用“localhost”以外的任何东西作为重定向 uris,入口指向我机器的 ip。但是,如果我使用本地主机,则入口或部署指向虚拟机的 ip,它们 运行ning in.
任何人都可以验证并知道解决方案吗?或许还能解决我们的一些相关问题^^'
为了澄清,我发布了社区 Wiki 答案。
为了解决该问题,您使用了 internal
而不是 localhost
。
正如您在评论部分所写:
It seems Docker uses "internal" as they top level domain-naming for local stuff, instead of localhost. So we thought we follow that workaround.
在 this documentation 中,可以在 Docker Desktop for Windows 中找到有关网络功能的信息。
另请参阅 this documentation 关于服务的 DNS 和 Pods。