本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

4.安装 SUSE Rancher Prime

本节介绍如何在高可用性 Kubernetes 安装中为您的隔离环境部署 Rancher。隔离环境可能是指 Rancher 服务器将在离线状态下安装,位于防火墙后面或代理后面。

Rancher 的特权访问

当 Rancher 服务器在 Docker 容器中部署时,会在容器内安装一个本地 Kubernetes 集群供 Rancher 使用。由于 Rancher 的许多功能以部署的形式运行,并且在容器内运行容器需要特权模式,因此您需要使用 --privileged 选项安装 Rancher。

Docker 指令

如果您想继续使用 Docker 命令进行隔离安装,请跳过本页的其余部分,并按照 xref:[此页面的说明] 操作。

Kubernetes 指令

Rancher 建议在 Kubernetes 集群上安装 Rancher。高可用性 Kubernetes 安装由三个节点组成,这些节点在 Kubernetes 集群上运行 Rancher 服务器组件。持久性层(etcd)也在这三个节点上进行复制,以提供冗余和数据重复,以防其中一个节点发生故障。

1.添加 Helm 图表储存库

从可以访问互联网的系统中获取最新的 Helm 图表,并将生成的清单复制到可以访问 Rancher 服务器集群的系统中。

  1. 如果您还没有,请在可以访问互联网的工作站上本地安装 helm。注意:请参考 Helm 版本要求 以选择要安装 Rancher 的 Helm 版本。

  2. 使用 helm repo add 命令添加包含安装 Rancher Prime 的图表的 Helm 图表储存库。

    helm repo add rancher-prime <helm-chart-repo-url>

    To learn more about the Rancher Prime Helm chart repository URL, see our Prime-only documentation. Authentication is required. Use your SUSE Customer Center (SCC) credentials to log in.

  3. 获取 SUSE Rancher Prime 图表。这将下载图表并将其保存在当前目录中,文件格式为 .tgz

    • 要获取最新版本:

      helm fetch rancher-prime/rancher
    • 要获取特定版本:

      1. 检查可用的 Rancher Prime 版本。

        helm search repo --versions rancher-prime
      2. 通过指定 --version 参数获取特定版本:

        helm fetch rancher-prime/rancher --version=<version>

2.选择您的 SSL 配置

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

当 Rancher 安装在隔离的 Kubernetes 集群上时,推荐有两种证书来源选项。

如果您想在外部终止 SSL/TLS,请参见 在外部负载均衡器上进行 TLS 终止

配置 图表选项 说明 需要 cert-manager

Rancher 生成的自签名证书

ingress.tls.source=rancher

使用 Rancher 生成的 CA(自签名)颁发的证书
这是*默认*,在渲染Helm模板时不需要添加。

来自文件的证书

ingress.tls.source=secret

通过创建Kubernetes Secret(s)使用您自己的证书文件。
在渲染Rancher Helm模板时必须传递此选项。

用于隔离安装的Helm Chart选项

在设置Rancher Helm模板时,Helm图表中有几个选项专门为隔离安装设计。

图表选项 图表值 说明

certmanager.version

<version>

根据运行的cert-manager版本配置适当的Rancher TLS发行者。

systemDefaultRegistry

<REGISTRY.YOURDOMAIN.COM:PORT>

配置Rancher服务器在配置集群时始终从您的私有注册表中拉取。

useBundledSystemChart

true

配置Rancher服务器使用打包的Helm系统图表副本。 系统图表存储库包含监控、日志记录、警报和全局DNS等功能所需的所有目录项。这些 Helm图表位于GitHub上,但由于您处于隔离环境中,使用Rancher中捆绑的图表比设置Git镜像要容易得多。

3.获取Cert-Manager图表

根据您在2中做出的选择。选择您的SSL配置,完成以下其中一个程序。

选项A:默认自签名证书

默认情况下,Rancher生成CA并使用cert-manager颁发证书以访问Rancher服务器界面。

对cert-manager的最近更改需要升级。如果您正在升级Rancher并使用版本低于v0.11.0的cert-manager,请查看我们的升级cert-manager文档

1.添加 cert-manager 储存库

从连接到互联网的系统中,将cert-manager储存库添加到Helm:

helm repo add jetstack https://charts.jetstack.io
helm repo update
2.获取cert-manager图表

Helm图表储存库获取最新的cert-manager图表。

helm fetch jetstack/cert-manager --version v1.11.0
3.检索cert-manager的CRD

下载cert-manager所需的CRD文件:

   curl -L -o cert-manager-crd.yaml https://github.com/cert-manager/cert-manager/releases/download/v1.11.0/cert-manager.crds.yaml

4.安装 Rancher

将获取的图表复制到可以访问Rancher服务器集群的系统以完成安装。

1.安装cert-manager

使用安装图表时相同的选项安装cert-manager。请记得将`image.repository`选项设置为从您的私有注册表中拉取镜像。

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

点击展开

如果您使用自签名证书,请安装cert-manager:

  1. 为 cert-manager 创建名称空间。

     kubectl create namespace cert-manager
  2. 创建cert-manager的自定义资源定义(CRD)。

     kubectl apply -f cert-manager-crd.yaml
  3. 安装cert-manager。

     helm install cert-manager ./cert-manager-v1.11.0.tgz \
         --namespace cert-manager \
         --set image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-controller \
         --set webhook.image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-webhook \
         --set cainjector.image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-cainjector \
         --set startupapicheck.image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-ctl

2.安装 Rancher

首先,请参考 添加 TLS secrets 以发布证书文件,以便 Rancher 和入口控制器可以使用它们。

然后,使用kubectl为Rancher创建名称空间:

kubectl create namespace cattle-system

接下来,安装Rancher,声明您选择的选项。使用下面的参考表替换每个占位符。需要配置 Rancher 以使用私有注册表,以便为任何 Rancher 启动的 Kubernetes 集群或 Rancher 工具提供服务。

占位符 说明

<VERSION>

输出 tarball 的版本号。

<RANCHER.YOURDOMAIN.COM>

您指向负载均衡器的 DNS 名称。

<REGISTRY.YOURDOMAIN.COM:PORT>

您私有注册表的 DNS 名称。

<CERTMANAGER_VERSION>

在 k8s 集群上运行的 Cert-manager 版本。

   helm install rancher ./rancher-<VERSION>.tgz \
    --namespace cattle-system \
    --set hostname=<RANCHER.YOURDOMAIN.COM> \
    --set certmanager.version=<CERTMANAGER_VERSION> \
    --set image.registry=<REGISTRY.YOURDOMAIN.COM:PORT> \
    --set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # Set a default private registry to be used in Rancher
    --set useBundledSystemChart=true # Use the packaged Rancher system charts

可选:要安装特定的 Rancher 版本,请设置 image.tag 值,例如:--set image.tag=v2.14.1

选项 B:使用 Kubernetes Secrets 从文件中获取证书

1.创建 Secrets

从您自己的证书创建 Kubernetes secrets 供 Rancher 使用。证书的通用名称需要与下面命令中的 hostname 选项匹配,否则入口控制器将无法为 Rancher 提供站点。

2.安装 Rancher

安装 Rancher,声明您选择的选项。使用下面的参考表替换每个占位符。需要配置 Rancher 以使用私有注册表,以便为任何 Rancher 启动的 Kubernetes 集群或 Rancher 工具提供服务。

占位符 说明

<VERSION>

输出 tarball 的版本号。

<RANCHER.YOURDOMAIN.COM>

您指向负载均衡器的 DNS 名称。

<REGISTRY.YOURDOMAIN.COM:PORT>

您私有注册表的 DNS 名称。

   helm install rancher ./rancher-<VERSION>.tgz \
    --namespace cattle-system \
    --set hostname=<RANCHER.YOURDOMAIN.COM> \
    --set image.registry=<REGISTRY.YOURDOMAIN.COM:PORT> \
    --set ingress.tls.source=secret \
    --set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # Set a default private registry to be used in Rancher
    --set useBundledSystemChart=true # Use the packaged Rancher system charts

如果您使用的是私有 CA 签名的证书,请在 --set ingress.tls.source=secret 后添加 --set privateCA=true

   helm install rancher ./rancher-<VERSION>.tgz \
    --namespace cattle-system \
    --set hostname=<RANCHER.YOURDOMAIN.COM> \
    --set image.registry=<REGISTRY.YOURDOMAIN.COM:PORT> \
    --set ingress.tls.source=secret \
    --set privateCA=true \
    --set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # Set a default private registry to be used in Rancher
    --set useBundledSystemChart=true # Use the packaged Rancher system charts

安装完成。