首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将pilot实例配置为同时查询k8s和consul?

是否可以将pilot实例配置为同时查询k8s和consul?
EN

Stack Overflow用户
提问于 2018-05-21 05:24:11
回答 1查看 187关注 0票数 0

我们在k8s和非K8中运行服务。非K8S服务在领事馆注册。我们正在考虑在堆栈中添加istio,理想情况下,我们希望k8s服务调用非K8S服务。因此,我对此有几个问题

1)单个Pilot实例是否支持同时查询k8s和consul?

2)可以配置istio来支持这种环境吗?

我尝试阅读istio文档,但找不到是否可以将Pilot配置为同时查询consul和k8s。文档/博客的参考链接也会很有帮助。提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-05-21 20:03:29

从kubernetesv1.6开始,kube- DNS 支持配置带有外部解析器的custom dns zones (例如,.consul.local),并支持外部DNS服务器为“其他区域”服务请求。

要使用此功能,应正确配置两件事:

  1. 将自定义区域添加到kube-dns ConfigMap
  2. 将pod dnsPolicy设置为ClusterFirst值

(在链接文档的“Pod的DNS策略”一节中搜索详细信息)

当dnsPolicy设置为“ClusterFirst”时,DNS查询首先被发送到kube-dns中的DNS缓存层。从这里开始,检查请求的后缀,然后将其转发到适当的DNS。在这种情况下,带有集群后缀(例如,“.cluster.local”)的名称被发送到kube-dns。带有存根域名后缀(例如:“.acme.local”)的名称将被发送到配置的自定义解析程序。最后,与这些后缀中的任何一个都不匹配的请求将转发到上游DNS。

以下是为区域.consul.local和自定义上游服务添加自定义映射的示例。

代码语言:javascript
复制
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 ):

代码语言:javascript
复制
kubectl create -f kube-dns-consul-stubdomain.yml

这是使用dnsPolicy配置pod的示例

代码语言:javascript
复制
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区域功能的详细信息:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50439512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档