在 Kubernetes 集群上安装 Rancher 2.8

在本部分中,您将了解如何使用 Helm CLI 在 Kubernetes 集群上部署 Rancher。

SUSE Rancher 国内服务商,提供最佳实践,欢迎来咨询:W-X:FM0058 ,Q-Q:80815877

先决条件

  • Kubernetes集群
  • 入口控制器
  • CLI工具

Kubernetes集群

设置 Rancher 服务器的本地 Kubernetes 集群。

Rancher 可以安装在任何 Kubernetes 集群上。该集群可以使用上游 Kubernetes,也可以使用 Rancher 的 Kubernetes 发行版之一,也可以是来自 Amazon EKS 等提供商的托管 Kubernetes 集群。

为了帮助设置 Kubernetes 集群,我们提供了以下教程:

  • RKE:有关安装 RKE Kubernetes 集群的教程。
  • K3S:有关安装 K3s Kubernetes 集群的教程。
  • RKE2:有关安装 RKE2 Kubernetes 集群的教程。
  • Amazon EKS:有关如何在 Amazon EKS 上安装 Rancher 的详细信息,包括如何安装 Ingress 控制器以便可以访问 Rancher 服务器。
  • AKS:有关如何使用 Azure Kubernetes 服务安装 Rancher 的详细信息,包括如何安装 Ingress 控制器以便可以访问 Rancher 服务器。
  • GKE:有关如何使用 Google Kubernetes Engine 安装 Rancher 的详细信息,包括如何安装 Ingress 控制器以便可以访问 Rancher 服务器。GKE 在创建 Kubernetes 集群时有两种操作模式:Autopilot 和 Standard 模式。Autopilot 模式的集群配置对编辑 kube-system 命名空间有限制。然而,Rancher 在安装过程中需要在 kube-system 命名空间中创建资源。因此,您将无法在 Autopilot 模式下创建的 GKE 集群上安装 Rancher。

入口控制器

Rancher UI 和 API 通过 Ingress 公开。这意味着您安装 Rancher 的 Kubernetes 集群必须包含 Ingress 控制器。

对于 RKE、RKE2 和 K3s 安装,您无需手动安装 Ingress 控制器,因为默认情况下会安装 Ingress 控制器。

对于默认情况下不包含 Ingress Controller 的发行版(例如 EKS、GKE 或 AKS 等托管 Kubernetes 集群),您必须首先部署 Ingress 控制器。请注意,默认情况下,Rancher Helm 图表不会ingressClassName在入口上设置。因此,您必须将 Ingress 控制器配置为在没有ingressClassName.

上面的Amazon EKS、AKS和GKE教程中包含示例。

CLI工具

设置 Kubernetes 集群需要以下 CLI 工具。请确保这些工具已安装并在您的$PATH.

  • kubectl - Kubernetes 命令行工具。
  • helm - Kubernetes 的包管理。请参考Helm 版本要求选择 Helm 版本来安装 Rancher。请参阅Helm 项目为您的特定平台提供的说明。

安装 Rancher Helm Chart

Rancher 是使用Kubernetes 的Helm包管理器安装的。Helm 图表为 Kubernetes YAML 清单文档提供模板语法。使用 Helm,我们可以创建可配置的部署,而不仅仅是使用静态文件。

设置 Rancher,

  1. 添加 Helm Chart 存储库
  2. 为Rancher创建命名空间
  3. 选择您的 SSL 配置
  4. 安装 cert-manager(除非您携带自己的证书,否则 TLS 将在负载均衡器上终止)
  5. 使用 Helm 和您选择的证书选项安装 Rancher
  6. 验证Rancher服务器是否部署成功
  7. 保存您的选择

SUSE Rancher 国内服务商,提供最佳实践,欢迎来咨询:W-X:FM0058 ,Q-Q:80815877

1. 添加Helm Chart存储库

使用helm repo add命令添加包含要安装 Rancher 的图表的 Helm 图表存储库。有关存储库选择以及最适合您的用例的更多信息,请参阅选择 Rancher 版本。

  • 最新:推荐尝试最新功能
  • helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
  • 稳定:推荐用于生产环境
  • helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
  • Alpha:即将发布的版本的实验预览。
  • helm repo add rancher-alpha https://releases.rancher.com/server-charts/alpha
  • 注意:不支持在 Alpha 之间进行升级、从 Alpha 升级。

2. 为Rancher创建命名空间

我们需要定义一个 Kubernetes 命名空间,其中应安装 Chart 创建的资源。这应该始终是cattle-system:

kubectl create namespace cattle-system

3. 选择您的 SSL配置

Rancher管理服务器默认设计为安全的,并且需要SSL/TLS配置。

备注

如果您想要从外部终止 SSL/TLS,请参阅外部负载均衡器上的 TLS 终止。

对于 Rancher 服务器上用于 TLS 终止的证书来源,建议使用三个选项:

  • Rancher 生成的 TLS 证书:在这种情况下,您需要安装cert-manager到集群中。Rancher 用于cert-manager颁发和维护其证书。Rancher 将生成自己的 CA 证书,并使用该 CA 签署证书。cert-manager然后负责管理该证书。
  • Let's Encrypt: Let's Encrypt 选项还使用cert-manager. 但是,在这种情况下,证书管理器与 Let's Encrypt 的特殊颁发者结合在一起,该颁发者执行获取 Let's Encrypt 颁发的证书所需的所有操作(包括请求和验证)。此配置使用 HTTP 验证 ( HTTP-01),因此负载均衡器必须具有公共 DNS 记录并且可从 Internet 访问。
  • 携带您自己的证书:此选项允许您携带您自己的公共或私人 CA 签名的证书。Rancher 将使用该证书来保护 websocket 和 HTTPS 流量。在这种情况下,您必须将此证书(和关联密钥)上传为 PEM 编码文件,其名称tls.crt为tls.key. 如果您使用私有 CA,则还必须上传该证书。这是因为您的节点可能不信任此私有 CA。Rancher 将获取该 CA 证书,并从中生成一个校验和,各个 Rancher 组件将使用该校验和来验证其与 Rancher 的连接。

配置

舵图选项

需要证书管理器

Rancher 生成的证书(默认)

ingress.tls.source=rancher

需要

让我们加密

ingress.tls.source=letsEncrypt

需要

文件中的证书

ingress.tls.source=secret

不需要

4.安装证书管理器

如果您携带自己的证书文件(选项),或者如果您在外部负载均衡器上ingress.tls.source=secret使用TLS 终止,则应跳过此步骤。

ingress.tls.source=rancher仅当使用 Rancher 生成的 CA 颁发的证书 ( ) 或请求 Let's Encrypt 颁发的证书 ( )时才需要执行此步骤ingress.tls.source=letsEncrypt。

要查看有关如何自定义 cert-manager 安装的选项(包括集群使用 PodSecurityPolicies 的情况),请参阅cert-manager 文档。

# If you have installed the CRDs manually instead of with the `--set installCRDs=true` option added to your Helm install command, you should upgrade your CRD resources before upgrading the Helm chart:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<VERSION>/cert-manager.crds.yaml

# Add the Jetstack Helm repository
helm repo add jetstack https://charts.jetstack.io

# Update your local Helm chart repository cache
helm repo update

# Install the cert-manager Helm chart
helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace

安装 cert-manager 后,您可以通过检查正在运行的 pod 的 cert-manager 命名空间来验证它是否已正确部署:

kubectl get pods --namespace cert-manager

NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-5c6866597-zw7kh               1/1     Running   0          2m
cert-manager-cainjector-577f6d9fd7-tr77l   1/1     Running   0          2m
cert-manager-webhook-787858fcdb-nlzsq      1/1     Running   0          2m

5. 使用 Helm 和您选择的证书选项

安装 Rancher 的确切命令因证书配置而异。

但是,无论证书配置如何,命名空间中 Rancher 安装的名称cattle-system应始终为rancher。

测试和开发:

安装 Rancher 的最后一个命令需要一个将流量转发到 Rancher 的域名。如果您使用 Helm CLI 设置概念验证,则可以在传递选项时使用假域名hostname。假域名的一个例子是<IP_OF_LINUX_NODE>.sslip.io,它会将 Rancher 暴露在其运行的 IP 上。生产安装需要真实的域名。

  • Rancher 生成的证书

默认情况下,Rancher 会生成一个 CA,并用于cert-manager颁发访问 Rancher 服务器接口的证书。

因为rancher是 的默认选项,所以我们在运行命令时ingress.tls.source没有指定。ingress.tls.sourcehelm install

  • 将 设为hostname您指向负载均衡器的 DNS 名称。
  • 将 设为用户bootstrapPassword独有的值admin。
  • 要安装特定的 Rancher 版本,请使用该--version标志,例如:--version 2.7.0
  • 对于 Kubernetes v1.25 或更高版本,使用 Rancher v2.7.2-v2.7.4 时设置global.cattle.psp.enabled为。false对于 Rancher v2.7.5 及更高版本来说,这不是必需的,但如果您选择,您仍然可以手动设置该选项。
helm install rancher rancher-<CHART_REPO>/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin

SUSE Rancher 国内服务商,提供最佳实践,欢迎来咨询:W-X:FM0058 ,Q-Q:80815877

  • 使用Let's Encrypt

此选项用于cert-manager自动请求和续 订Let's Encrypt证书。这是一项免费服务,可为您提供有效的证书,因为 Let's Encrypt 是受信任的 CA。

备注

您需要打开端口 80,因为 HTTP-01 质询只能在端口 80 上完成。

在以下命令中,

  • hostname设置为公共 DNS 记录,
  • 将 设为用户bootstrapPassword独有的值admin。
  • ingress.tls.source被设定为letsEncrypt
  • letsEncrypt.email设置为用于与您的证书进行通信的电子邮件地址(例如,到期通知)
  • 设置letsEncrypt.ingress.class为您的入口控制器,例如traefik、nginx、haproxy等。
  • 对于 Kubernetes v1.25 或更高版本,使用 Rancher v2.7.2-v2.7.4 时设置global.cattle.psp.enabled为。false对于 Rancher v2.7.5 及更高版本来说,这不是必需的,但如果您选择,您仍然可以手动设置该选项。
helm install rancher rancher-<CHART_REPO>/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin \
  --set ingress.tls.source=letsEncrypt \
  --set letsEncrypt.email=me@example.org \
  --set letsEncrypt.ingress.class=nginx

SUSE Rancher 国内服务商,提供最佳实践,欢迎来咨询:W-X:FM0058 ,Q-Q:80815877

  • 使用自己创建的证书

在此选项中,Kubernetes 密钥是根据您自己的证书创建的,供 Rancher 使用。

运行此命令时,该选项必须与服务器证书中的或条目hostname匹配,否则 Ingress 控制器将无法正确配置。Common NameSubject Alternative Names

Subject Alternative Names尽管在技术上需要一个条目,但拥有一个匹配Common Name可以最大限度地提高与旧浏览器和应用程序的兼容性。

备注

  • 设置hostname.
  • 将 设为用户bootstrapPassword独有的值admin。
  • 设置。ingress.tls.source_secret
  • 对于 Kubernetes v1.25 或更高版本,使用 Rancher v2.7.2-v2.7.4 时设置global.cattle.psp.enabled为。false对于 Rancher v2.7.5 及更高版本来说,这不是必需的,但如果您选择,您仍然可以手动设置该选项。
helm install rancher rancher-<CHART_REPO>/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin \
  --set ingress.tls.source=secret

SUSE Rancher 国内服务商,提供最佳实践,欢迎来咨询:W-X:FM0058 ,Q-Q:80815877

如果您要安装 alpha 版本,Helm 需要将选项添加--devel到安装命令中:

helm install rancher rancher-alpha/rancher --devel

等待 Rancher 推出:

kubectl -n cattle-system rollout status deploy/rancher
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
deployment "rancher" successfully rolled out

如果您使用的是私有 CA 签名证书,请添加--set privateCA=true到命令:

helm install rancher rancher-<CHART_REPO>/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org \
  --set bootstrapPassword=admin \
  --set ingress.tls.source=secret \
  --set privateCA=true

Rancher 图表配置有许多选项可用于自定义安装以适合您的特定环境。以下是一些常见的高级场景。

  • HTTP代理
  • 私有容器镜像注册表
  • 外部负载均衡器上的 TLS 终止

请参阅图表选项以获取完整的选项列表。

6.验证Rancher Server是否部署

添加秘密后,检查 Rancher 是否已成功推出:

kubectl -n cattle-system rollout status deploy/rancher
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
deployment "rancher" successfully rolled out

如果您看到以下错误:error: deployment "rancher" exceeded its progress deadline,您可以通过运行以下命令来检查部署的状态:

kubectl -n cattle-system get deploy rancher
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
rancher   3         3         3            3           3m

DESIRED它应该显示和的相同计数AVAILABLE。

7. 保存您的选项

确保保存您--set使用的选项。当您使用 Helm 将 Rancher 升级到新版本时,您将需要使用相同的选项。

完成

就是这样。您应该有一个功能齐全的 Rancher 服务器。

在 Web 浏览器中,转到将流量转发到负载均衡器的 DNS 名称。然后您应该会看到丰富多彩的登录页面。

SUSE Rancher 国内服务商,提供最佳实践,欢迎来咨询:W-X:FM0058 ,Q-Q:80815877

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT干货+136-6258-1235

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值