在 Azure Kubernetes Service 上安装 Rancher

本文介绍了如何在微软的 Azure Kubernetes Service (AKS) 上安装 Rancher。

本指南使用命令行工具来配置一个带有 Ingress 的 AKS 集群。如果你更喜欢使用 Azure 门户来配置集群,请参见官方文档

如果你已有一个 AKS Kubernetes 集群,请直接跳到安装 Ingress 的步骤,然后按照此页的说明安装 Rancher Helm Chart。

先决条件

在 Azure Kubernetes Service 上安装 Rancher - 图1警告

部署到 Microsoft Azure 会产生费用。

  • Microsoft Azure 账号:用于创建部署 Rancher 和 Kubernetes 的资源。
  • Microsoft Azure 订阅:如果你没有的话,请访问此链接查看如何创建 Microsoft Azure 订阅。
  • Micsoroft Azure 租户:访问此链接并参考教程以创建 Microsoft Azure 租户。
  • 你的订阅有足够的配额,至少有 2 个 vCPU。有关 Rancher Server 资源要求的详情,请参见此节
  • 在 Azure 中用 Helm 安装 Rancher 时,请使用 L7 负载均衡器来避免网络问题。详情请参见 Azure 负载均衡器限制

1. 准备你的工作站

在工作站上安装以下命令行工具:

2. 创建资源组

安装 CLI 后,你需要用你的 Azure 账户登录:

  1. az login

创建一个 资源组 来保存集群的所有相关资源。使用一个适用于你实际情况的位置:

  1. az group create --name rancher-rg --location eastus

3. 创建 AKS 集群

运行以下命令创建一个 AKS 集群。选择适用于你实际情况的虚拟机大小。如需获得可用的大小和选项,请参见此处。在选择 Kubernetes 版本时,请务必先查阅支持矩阵,以找出已针对你的 Rancher 版本验证的最新 Kubernetes 版本。

在 Azure Kubernetes Service 上安装 Rancher - 图2备注

如果你要从旧的 Kubernetes 版本更新到 Kubernetes v1.22 或更高版本,你还需要更新 ingress-nginx。

  1. az aks create \
  2. --resource-group rancher-rg \
  3. --name rancher-server \
  4. --kubernetes-version <VERSION> \
  5. --node-count 3 \
  6. --node-vm-size Standard_D2_v3

集群部署需要一些时间才能完成。

4. 获取访问凭证

集群部署完成后,获取访问凭证。

  1. az aks get-credentials --resource-group rancher-rg --name rancher-server

此命令把集群的凭证合并到现有的 kubeconfig 中,并允许 kubectl 与集群交互。

5. 安装 Ingress

集群需要一个 Ingress,以从集群外部访问 Rancher。要 Ingress,你需要分配一个公共 IP 地址。请确保你有足够的配额,否则它将无法分配 IP 地址。公共 IP 地址的限制在每个订阅的区域级别生效。

为确保你选择了正确的 Ingress-NGINX Helm Chart,首先在 Kubernetes/ingress-nginx 支持表中找到与你的 Kubernetes 版本兼容的 Ingress-NGINX 版本

然后,运行以下命令列出可用的 Helm Chart:

  1. helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
  2. helm repo update
  3. helm search repo ingress-nginx -l

helm search 命令的输出包含一个 APP VERSION 列。此列下的版本等同于你之前选择的 Ingress-NGINX 版本。使用应用程序版本,选择一个 Chart 版本,该版本打包了与你的 Kubernetes 兼容的应用程序。例如,如果使用的是 Kubernetes v1.24,则可以选择 v4.6.0 Helm Chart,因为 Ingress-NGINX v1.7.0 与该 Chart 打包在一起,而 v1.7.0 与 Kubernetes v1.24 兼容。如有疑问,请选择最新的兼容版本。

了解你需要的 Helm chart 版本后,运行以下命令。它安装一个带有 Kubernetes 负载均衡器服务的 nginx-ingress-controller

  1. helm search repo ingress-nginx -l
  2. helm upgrade --install \
  3. ingress-nginx ingress-nginx/ingress-nginx \
  4. --namespace ingress-nginx \
  5. --set controller.service.type=LoadBalancer \
  6. --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz \
  7. --set controller.service.externalTrafficPolicy=Local \
  8. --version 4.6.0 \
  9. --create-namespace

6. 获取负载均衡器的 IP

运行以下命令获取负载均衡器的 IP 地址:

  1. kubectl get service ingress-nginx-controller --namespace=ingress-nginx

返回的结果应与以下内容类似:

  1. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
  2. AGE
  3. ingress-nginx-controller LoadBalancer 10.0.116.18 40.31.180.83 80:31229/TCP,443:31050/TCP
  4. 67s

保存 EXTERNAL-IP

7. 设置 DNS

到 Rancher Server 的外部流量需要重定向到你创建的负载均衡器。

创建指向你保存的 EXTERNAL-IP 的 DNS。这个 DNS 会用作 Rancher Server 的 URL。

设置 DNS 的有效方法有很多。如需获取帮助,请参见 Azure DNS 文档中心

8. 安装 Rancher Helm Chart

按照本页的说明安装 Rancher Helm Chart。任何 Kubernetes 发行版上安装的 Rancher 的 Helm 说明都是一样的。

安装 Rancher 时,使用上一步获取的 DNS 名称作为 Rancher Server 的 URL。它可以作为 Helm 选项传递进来。例如,如果 DNS 名称是 rancher.my.org,你需要使用 --set hostname=rancher.my.org 选项来运行 Helm 安装命令。

在此设置之上安装 Rancher 时,你还需要将以下值传递到 Rancher Helm 安装命令,以设置与 Rancher 的 Ingress 资源一起使用的 Ingress Controller 的名称:

  1. --set ingress.ingressClassName=nginx

请参阅Helm 安装命令了解你的证书选项。