首先,我不是专家,所以请多多包涵。我设法在家中的vcenter中安装和设置了Rancher(免费获得了裸机安装程序,虽然有点旧,但仍然可以)。我有3个运行良好的节点,我也可以使用它在vmware中配置VM。最重要的是,我还在Rancher中添加了Kubernetes。现在,我的计划是部署应自动获取外部端点(可从Internet访问)和SSL的服务。 我已经从Namecheap mydomain.com购买了它,外加通配符证书。 另外,在我的vcenter中,我正在运行nginx服务器,namecheap dns指向它,但是我认为我应该在Kubernetes中运行它,只是我不想手动管理nginx的配置文件。
什么是最好的方法?我无法理解入口控制器如何工作或如何正确设置它们。我遵循了许多教程,但到目前为止没有成功。 我也和Traefik一起玩,但是没有成功。在外部端点部分,我总是一无所获。
我不需要逐步指南,但是至少有人可以向我指出正确的方向。 我也在考虑使用Let'sEncrypt,但是由于我已经拥有域和ssl证书,因此不确定这是否是一个好主意。
谢谢!
答案 0 :(得分:4)
之所以可能会遇到麻烦,是因为使用BareMetal时,您没有设置外部LoadBalancer。在使用Traefik等功能时,您需要在NodePort或其他端口上公开入口控制器。
如果您使用的是裸机,则有两个进入集群的选项。
MetalLB是一种这样的控制器,它将使用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。此时,您可以开始使用Ingress Controller,方法是部署traefik之类的东西,定义一个服务,然后在Ingress Controller上使用LoadBalancer类型。
对于TLS,假设DNS解析为您使用的入口,则可以自动为您提供cert-manager设置证书。
最后,您使DNS自动进行,请考虑使用external-dns