当前位置: 首页 > 知识库问答 >
问题:

入口集群内Kubernetes通信

姜松
2023-03-14

我有一个运行在minikube(已启用加载项)中的nginx ingress,它有几个吊舱和服务,ingress具有以下配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx
spec:
  rules:
  - host: api.info
    http:
      paths:
      - backend:
          serviceName: api-service
          servicePort: 80
  - host: web.info
    http:
      paths:
      - backend:
          serviceName: web-service
          servicePort: 80

当我在集群之外时,以下各项工作正常:

curl --header 'Host: api.info' $(minikube ip)/health

但是,当我在集群内时,我希望容器能够使用我的入口模板中列出的主机名相互通信。例如,我希望以下方法可以工作,但事实并非如此:

$ kubectl exec -it web-6c656c58d5-lpxsk /bin/bash
root@web-6c656c58d5-lpxsk:/web# curl api.info/health

相反,它返回实际api的结果。信息网站,我没有隶属关系。首先,有人能确认这是可行的吗?

非常感谢。

共有1个答案

马绪
2023-03-14

首先,<代码>。info是一个通用TLD,这会使DNS解析变得混乱
考虑使用受保护的TLD或您自己注册的TLD,例如api。实例com

您应该使用类似于以下内容的行编辑您的主机:

或更改解决方案。conf以确定内部DNS的优先级。

 类似资料:
  • 我有一个复合服务S.c,它使用两个原子服务S.a和S.b,其中所有三个服务都在Kubernetes集群中运行。更好的模式是什么 1)将Sa、Sb创建为无头服务,并让Sc通过NGINX等外部负载均衡器与它们集成(使用DNS解析器来维护更新的后端pod) 2) 使用clusterIP创建Sa、Sb,并让Sc通过群集DNS(skyDNS加载项)访问/解析它们。这将在内部利用基于IP表的负载平衡来实现PO

  • 在我有一个vm(centos 7.4,主机名kube-2.novalocal,ip

  • 我使用的是infra team(不是mini kube)提供的kubernetes集群,我已经创建了带有所有配置的traefik入口控制器,入口容器,我们的应用程序正在集群中运行。现在我想使用域名或IP地址访问应用程序,为此,我创建了一个入口资源,如下所示 这里我没有得到的是主机名,因为应用程序在集群中运行,这个主机名应该是集群主节点名吗?实际prod环境中的主机名或ip地址应该是什么。 注意:我

  • 我目前的k8s设置面临一个问题。在生产中,我启动了我们每个服务的三个副本并将它们放在一个pod中。当pod相互通信时,我们希望pod以循环方式与pod中的每个容器通信。不幸的是,由于TLS保持活动,pod之间的连接永远不会终止——我们不想专门更改该部分——但我们确实希望pod中的每个容器都能正常通信。这就是我们现在所拥有的: 如果API试图与pod OSS通信,它将仅与第一个容器通信。我希望API

  • 我不知道如何在Kubernetes集群(不是minikube)上设置入口控制器。我遵循的每一个nginx入口设置都产生了一个错误,控制器设置不正确。基本上,我想要一个与minikube插件等效的命令来启用入口。谢谢 编辑1- 我正在遵循中提到的安装步骤https://kubernetes.github.io/ingress-nginx/deploy/我已经尝试了baremetal、cloud和其他

  • 404 GKE入口错误。我在Google Kubernetes集群上。 创建了一个部署 Kubectl创建部署我的部署--image=nginx kubectl公开部署my-部署--name=my-svc--type=NodePort--port=80 入口描述 这会自动创建一个负载平衡器,IP为34.95.98.151 添加了一个条目到我的Windows主机文件位于“C:\Windows\Sys