我们在k8s和非K8中运行服务。非K8S服务在领事馆注册。我们正在考虑在堆栈中添加istio,理想情况下,我们希望k8s服务调用非K8S服务。因此,我对此有几个问题
1)单个Pilot实例是否支持同时查询k8s和consul?
2)可以配置istio来支持这种环境吗?
我尝试阅读istio文档,但找不到是否可以将Pilot配置为同时查询consul和k8s。文档/博客的参考链接也会很有帮助。提前感谢!
发布于 2018-05-21 20:03:29
从kubernetesv1.6开始,kube- DNS 支持配置带有外部解析器的custom dns zones (例如,.consul.local),并支持外部DNS服务器为“其他区域”服务请求。
要使用此功能,应正确配置两件事:
(在链接文档的“Pod的DNS策略”一节中搜索详细信息)
当dnsPolicy设置为“ClusterFirst”时,DNS查询首先被发送到kube-dns中的DNS缓存层。从这里开始,检查请求的后缀,然后将其转发到适当的DNS。在这种情况下,带有集群后缀(例如,“.cluster.local”)的名称被发送到kube-dns。带有存根域名后缀(例如:“.acme.local”)的名称将被发送到配置的自定义解析程序。最后,与这些后缀中的任何一个都不匹配的请求将转发到上游DNS。
以下是为区域.consul.local和自定义上游服务添加自定义映射的示例。
apiVersion: v1
kind: ConfigMap
metadata:
name: kube-dns
namespace: kube-system
data:
stubDomains: |
{“consul.local”: [“10.150.0.1”]}
upstreamNameservers: |
["8.8.8.8", "8.8.4.4"]要应用此配置,请将其保存到文件kube-dns-consul-stubdomain.yml并运行命令(根据需要调整区域名称和服务器IP ):
kubectl create -f kube-dns-consul-stubdomain.yml这是使用dnsPolicy配置pod的示例
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- image: busybox
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
name: busybox
restartPolicy: Always
hostNetwork: true
dnsPolicy: ClusterFirst您可以发现以下资源有助于了解专用DNS区域功能的详细信息:
https://stackoverflow.com/questions/50439512
复制相似问题