Ingress集群内Kubernetes通信

问题描述 投票:1回答:1

我有一个运行在minikube(启用了插件)的nginx入口,带有几个pod和服务,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

但是,当我进入群集时,我希望容器能够使用我的Ingress模板中列出的主机名相互通信。例如,我希望以下方法有效,但它没有:

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

相反,它返回实际的api.info网站的结果,我没有任何从属关系。首先,有人可以确认这是假设工作吗?

谢谢。

nginx kubernetes minikube kube-dns kubernetes-ingress
1个回答
0
投票

首先,.info是一个通用TLD,这使DNS解析混乱。 考虑使用受保护的TLD或您自己注册的TLD,例如api.example.com

您应该使用类似于以下内容的行编辑/etc/hosts<ip_address> api.info

或更改resolv.conf以优先考虑您的内部DNS。

© www.soinside.com 2019 - 2024. All rights reserved.