繁体   English   中英

Kubernetes 宁静测试入口不适用于本地主机

[英]Kubernetes Serenety Tests Ingress does not work with localhost

我目前正在进行本地 e2e 测试。

设置

  • 我的 Windows 机器
  • 工作 Kubernetes 集群
  • 部署的服务
  • 等/主机条目
  • Selenium 使用 Cucumber 进行测试

为了清楚起见并且因为我们将使用不同的阶段,我们希望在我们所有的 e2e 项目中将重定向 url 结尾从“测试”更改为“本地主机”。

主机文件条目

当前的

[MY IP 地址] e2e.myproject.testing

成为

[MY IP 地址] 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”替换它,它就不起作用。 我收到连接错误。

理论:在主机文件中使用“localhost”以外的任何东西作为重定向uri,入口指向我机器的 ip。 但是,如果我使用 localhost ,则入口或部署指向它们正在运行的虚拟机的 ip。

任何人都可以验证并知道解决方案吗? 也可能解决我们遇到的一些相关问题^^'

为了澄清我正在发布社区 Wiki 答案。

要解决该问题,您使用internal而不是localhost

正如您在评论部分所写:

似乎 Docker 使用“内部”作为本地内容的顶级域命名,而不是本地主机。 所以我们认为我们遵循该解决方法。

本文档中,您可以在 Windows 的 Docker Desktop 中找到有关网络功能的信息。

另请参阅有关服务和 Pod 的 DNS 的文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM