首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从云函数通过DNS名称访问K8s服务

从云函数通过DNS名称访问K8s服务
EN

Stack Overflow用户
提问于 2019-11-28 23:30:03
回答 1查看 169关注 0票数 0

我有一个正在运行的K8s集群,其中包含一些服务。集群服务中的HTTP的BEcause可以通过使用它们的名称作为K8s (例如http://foo-bar-svc)的请求来与每个人交谈。这很棒,因为我不需要使用IP地址,我假设每次重新部署pod时都会更改IP地址。

现在,我希望Cloud函数能够向其中一个服务发送请求。

我已经按照this指南成功创建了VPC连接器。从我的云函数中,我可以向我的K8s集群中的服务发出HTTP请求,但前提是我必须使用显式的IP地址。

如何改用K8s域名系统可以解析的URLS之一?

EN

回答 1

Stack Overflow用户

发布于 2019-11-29 00:54:33

公开具有传入主机请求的k8s服务的最佳方法是入口。您可以定义与您的服务的Ingress ressource链接,例如:

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: simple-fanout-example
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - path: /foo
        backend:
          serviceName: service1
          servicePort: 4200
      - path: /bar
        backend:
          serviceName: service2
          servicePort: 8080

在此示例中,我们定义了一个要解析的主机foo.bar.com,并依赖于我们重新路由到后面的服务的路径/foo或/bar。当然,您可以将其替换为前缀"/*“,以便将所有内容重路由到一个特定的服务路径。

请参阅文档:https://kubernetes.io/docs/concepts/services-networking/ingress/

但是使用这种配置,您需要有一个负载均衡器和一个DNS条目的别名:https://cloud.google.com/kubernetes-engine/docs/concepts/ingress?hl=en

为了更具弹性,您可以添加一个入口控制器(nginx,traefik...):https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/

因此,模式将是:

DNS服务器<->客户端解析DNS -> LB ->入口控制器->服务-> Pod ->容器。

我希望它能帮上忙。

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

https://stackoverflow.com/questions/59092103

复制
相关文章

相似问题

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