在 Kubernetes 中访问子域上的服务

在 Kubernetes 中访问子域上的服务

我有以下设置:

  • 私有 OpenStack 云- 仅 Web UI(Horizo​​n)可访问
    (API 受到限制,但我可能可以访问)
  • 我用过核心操作系统设置一个掌握三个节点
  • 资源标准化(OpenStack 的默认设置)
  • 我按照 CoreOS 的入门指南进行操作(即我使用提供的云配置的默认 YAML)GitHub

据我所知,诸如 Web UI(kube-ui)之类的扩展可以作为附加组件添加 - 我已经添加了(仅 kube-ui)。

现在如果我运行诸如 simple-nginx 之类的测试,我会得到以下输出:

创建 Pod:

$ kubectl run my-nginx --image=nginx --replicas=2 --port=80

创建服务:

$ kubectl expose rc my-nginx --port=80 --type=LoadBalancer          
NAME       LABELS         SELECTOR       IP(S)     PORT(S)
my-nginx   run=my-nginx   run=my-nginx             80/TCP

获取服务信息:

$ kubectl describe service my-nginx                                                                                                
Name:           my-nginx
Namespace:      default
Labels:         run=my-nginx
Selector:       run=my-nginx
Type:           LoadBalancer
IP:             10.100.161.90
Port:           <unnamed>   80/TCP
NodePort:       <unnamed>   31170/TCP
Endpoints:      10.244.19.2:80,10.244.44.3:80
Session Affinity:   None
No events.

我可以从节点的每个外部 IP 访问我的服务。

我现在的问题如下:

如何通过子域访问任何已启动的服务以太,因此我该如何设置此配置(例如,我以 domain.com 为例)或者是否可以打印出我必须在哪个节点 IP 上访问我的服务(尽管我只有两个副本(?!))?

为了使我的想法更容易理解,我的想法如下:

  • 给定域:域名.com(指着师父)
  • 启动服务简单-nginx
  • 可以通过以下方式访问服务simple-nginx.domain.com

答案1

这是对该问题提出 5 年后所有看到它的人的答案。

科技越来越进步了,现在我们k8s中的入口:D。

要使用子域,请部署入口控制器,例如nginx 入口控制器

并创建一个入口对象:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
spec:
  rules:
  - host: "simple-nginx.domain.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: simple-nginx
            port:
              number: 80

现在剩下要做的就是创建一个 DNS 记录并将*.domain.com其指向 ADDRESS 列中看到的入口 IP。

$ kubectl get ingress
NAME          CLASS    HOSTS                      ADDRESS           PORTS   AGE
ingress       <none>   simple-nginx.domain.com    xxx.yyy.zzz.kkk   80      2d20h

答案2

你需要做两件事:

  • 在你想要访问服务 VIP(虚拟 IP)的所有节点上运行 kube-proxy
  • 将 /etc/resolv.conf 中的节点的 DNS 指向 kubernetes 集群中运行的 DNS 服务器。

相关内容