首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当没有外部IP但有ingressgateway时,如何为KNative配置DNS?

当没有外部IP但有ingressgateway时,如何为KNative配置DNS?
EN

Stack Overflow用户
提问于 2021-05-30 21:50:08
回答 2查看 386关注 0票数 1

病案医生描述了以下内容:

若要为本机配置DNS,请从建立网络中获取外部IP或CNAME,并按照以下方式配置它

  • 如果网络层生成外部IP地址,则为域配置通配符A记录: # Here knative.example.com is the domain suffix for your cluster *.knative.example.com == A 35.233.41.212
  • 如果网络层生成CNAME,则为域配置CNAME记录: # Here knative.example.com is the domain suffix for your cluster *.knative.example.com == CNAME a317a278525d111e89f272a164fd35fb-1510370581.eu-central-1.elb.amazonaws.com

但是,我的环境没有外部负载均衡器,因此没有外部IP:

代码语言:javascript
复制
$ kubectl --namespace istio-system get service istio-ingressgateway
NAME                   TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                      AGE
istio-ingressgateway   NodePort   10.110.132.172   <none>        15021:31278/TCP,80:32725/TCP,443:30557/TCP,15443:32309/TCP   8h

我确实配置了一个ingresgateway:

代码语言:javascript
复制
$ kubectl get po -l istio=ingressgateway -n istio-system \
     -o jsonpath='{.items[*].status.hostIP}'
10.1.0.193 10.1.0.132 10.1.0.174

我可以简单地按以下方式设置DNS吗?

代码语言:javascript
复制
*.knative.example.com     [some TTL]   IN   A    10.1.0.193
*.knative.example.com     [some TTL]   IN   A    10.1.0.132
*.knative.example.com     [some TTL]   IN   A    10.1.0.174
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-08 03:30:04

看起来这里使用的是hostPort网络;如果是这样的话,Kubernetes将将主机IP地址的端口80和443映射到Istio的特使端口。本周,只要您的ingressgateway荚保持在同一台计算机上(例如,如果您使用守护进程并在集群中有3个节点,则将所有三个节点IP放在DNS中)即可工作。这里有几个地方会出现故障,Kubernetes LoadBalancer服务会运行得更好:

  • 如果其中一台主机失败,1/N客户端将尝试错误的IP地址,并可能出错或超时很长时间,然后重试。您需要将主机从DNS中取出,才能完成此工作。
  • 如果您拥有的主机比ingressgateway荚多,那么每次重新安排其中的一个(部署更新、主机内核升级等),您就会像上面这样出现中断。如果主机少于5-7,使用DaemonSet可以避免这种情况,但是较大的记录集可能会导致其他问题。
  • 您不能使用HorizontalPodAutoscaler (HPA)来调整ingressgateway荚的大小(请参见上面的不匹配结果)。

如果可能的话,您可以将MetalLB视为上述任何一个问题的谎言成本软件负载均衡器。如果上述任何问题都不是主要问题,nodePort服务就会比LoadBalancer服务简单一些。

票数 1
EN

Stack Overflow用户

发布于 2021-05-31 18:53:29

按照以下方式设置DNS,到目前为止,对我来说还可以:

代码语言:javascript
复制
*.knative.example.com     [some TTL]   IN   A    10.1.0.193
*.knative.example.com     [some TTL]   IN   A    10.1.0.132
*.knative.example.com     [some TTL]   IN   A    10.1.0.174
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67766104

复制
相关文章

相似问题

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