nginx - 使用 DNS 设置 Rancher + Kubernetes 的最佳方法是什么

标签 nginx dns kubernetes reverse-proxy rancher

首先,我不是专家,所以请多多包涵。我设法在家里的 vcenter 中安装和设置了 Rancher(免费获得了裸机设置,有点旧,但仍然可以)。我有 3 个运行良好的节点,我还可以使用它在 vmware 中配置虚拟机。最重要的是,我还在 Rancher 中添加了 Kubernetes。现在,我的计划是部署应该自动获取外部端点(可从互联网访问)和 SSL 的服务。 我已经从 Namecheap mydomain.com 购买了它的通配符证书。 此外,在我的 vcenter 中我有一个 nginx 服务器正在运行,并且 namecheap dns 指向它,但我认为我应该在 Kubernetes 中运行它,只是我不想手动管理 nginx 的配置文件。

什么是最好的方法?我不明白入口 Controller 是如何工作的或如何正确设置它们。我遵循了许多教程,但到目前为止没有成功。 我也玩过 Traefik,但没有成功。我在外部端点部分总是一无所获。

我不需要关于如何操作的分步指南,但至少请有人为我指明正确的方向。 我也在考虑使用 Let'sEncrypt,但不确定这是否是个好主意,因为我已经拥有我的域和 ssl 证书。

谢谢!

最佳答案

您遇到困难的原因可能是因为在使用 BareMetal 时,您没有配置外部 LoadBalancer。使用 Traefik 之类的东西时,您需要在 NodePort 或其他东西上公开入口 Controller 。

如果您使用的是裸机,则可以通过多种方式进入集群。

MetalLB就是这样一个 Controller ,它将使用 layer2 或 BGP 配置来通告您的 Services在外部。使用 metallb,您将能够定义类型为 LoadBalancer 的服务,如下所示:

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376
  type: LoadBalancer

这将在 metallb 中为您配置一个 LoadBalancer。此时,您可以开始使用入口 Controller ,方法是部署类似 traefik 的东西,定义服务,然后在入口 Controller 上使用 LoadBalancer 类型。

对于 TLS,您可以拥有 cert-manager假设您的 DNS 解析为您使用的入口,则会自动为您提供证书。

最后,你自动化 DNS,考虑 external-dns

关于nginx - 使用 DNS 设置 Rancher + Kubernetes 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51498672/

相关文章:

redirect - Nginx + Php-fpm 的延迟问题

kubernetes - 获取 Pod 处于挂起状态的平均时间

database - 将数据库作为 Docker 容器运行还是在裸机服务器上运行?

Kubernetes 安全 : How to check the token of service account?

nginx - 为什么 Nginx 会从默认目录而不是新目录正确地提供文件?

css - Senaite LIMS (Plone 4.3.18) css 无法在启用 https 的 Nginx 上工作

regex - 如何在 nginx "if"正则表达式中使用变量

windows - 通过组策略添加管理员

web - 确定更常见输入哪个域(WWW)

google-chrome - 如何在 chrome 打包应用程序上查找 mDNS 实例名称?