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

Cri*_*ian 1 dns reverse-proxy nginx kubernetes rancher

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

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

我不需要逐步指南,但至少有人可以向我指出正确的方向。我也在考虑使用Let'sEncrypt,但是由于我已经拥有我的域和ssl证书,因此不确定这是否是一个好主意。

谢谢!

jax*_*orm 7

您可能会苦苦挣扎的原因是,使用BareMetal时,您没有设置外部LoadBalancer。当使用Traefik之类的东西时,您需要在NodePort或其他端口上公开入口控制器。

如果您使用的是裸机,则有两个进入集群的选项。

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

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376
  type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)

这将为您提供metallb的LoadBalancer。此时,您可以开始使用Ingress Controller,方法是部署traefik之类的东西,定义一个服务,然后在Ingress Controller上使用LoadBalancer类型。

对于TLS,假设DNS解析为您使用的入口,则可以自动为您提供证书管理器配置证书。

最后,您是自动DNS,请考虑使用外部DNS