Add v2.14 preview docs (#2212)

This commit is contained in:
Lucas Saintarbor
2026-03-05 12:30:57 -08:00
committed by GitHub
parent 4a0d71b3f3
commit 2dcfa6f6b8
874 changed files with 92618 additions and 0 deletions
@@ -0,0 +1,31 @@
---
title: 集群配置
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/reference-guides/cluster-configuration"/>
</head>
使用 Rancher 配置 Kubernetes 集群后,你仍然可以编辑集群的选项和设置。
有关编辑集群成员资格的信息,请转至[此页面](../../how-to-guides/new-user-guides/manage-clusters/access-clusters/add-users-to-clusters.md)。
## 集群配置参考
集群配置选项取决于 Kubernetes 集群的类型:
- [RKE2 集群配置](rancher-server-configuration/rke2-cluster-configuration.md)
- [K3s 集群配置](rancher-server-configuration/k3s-cluster-configuration.md)
- [EKS 集群配置](rancher-server-configuration/eks-cluster-configuration.md)
- [GKE 集群配置](rancher-server-configuration/gke-cluster-configuration/gke-cluster-configuration.md)
- [AKS 集群配置](rancher-server-configuration/aks-cluster-configuration.md)
## 不同类型集群的管理功能
对于已有集群而言,可提供的选项和设置取决于你配置集群的方法。
下表总结了每一种类型的集群和对应的可编辑的选项和设置:
import ClusterCapabilitiesTable from '../../shared-files/_cluster-capabilities-table.md';
<ClusterCapabilitiesTable />
@@ -0,0 +1,9 @@
---
title: 下游集群配置
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/reference-guides/cluster-configuration/downstream-cluster-configuration"/>
</head>
以下文档将讨论[主机配置](machine-configuration/machine-configuration.md)。
@@ -0,0 +1,80 @@
---
title: EC2 主机配置参考
---
有关 EC2 和节点的更多详细信息,请参阅 [EC2 管理控制台](https://aws.amazon.com/ec2)的官方文档。
## Machine Pools
### 区域
构建集群的地理[区域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html)。
### 地区
[地区](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones),一个区域内用于构建集群的隔离位置。
### 实例类型
[实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)用于配置集群,能确定硬件特性。
### 根磁盘大小
配置[根设备](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/RootDeviceStorage.html)的大小(以 GB 为单位)。
### VPC/子网
[VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) 或特定的[子网](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html)(VPC 中的一个 IP 范围),用于添加你的资源。
### IAM 实例配置文件名称
示例配置文件的名称,用于将 IAM 角色传递给 EC2 实例。
## 高级选项
### AMI ID
用于集群中节点的 [Amazon Machine ImageAMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)。
### 用于 AMI 的 SSH 用户名
用于连接到你启动的实例的用户名。有关选定 AMI 的默认用户名,请参阅[此处](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connection-prereqs.html)。对于未列出的 AMI,请咨询 AMI 提供商。
### 安全组
选择默认安全组或配置安全组。
请参考[使用主机驱动时的 Amazon EC2 安全组](../../../../getting-started/installation-and-upgrade/installation-requirements/port-requirements.md#rancher-aws-ec2-安全组),了解 `rancher-nodes` 安全组中创建的规则。
### EBS 根卷类型
用于根设备的 [EBS 卷类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html)。
### 加密 EBS 卷
启用 [Amazon EBS 加密](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)。
### 请求 Spot 实例
开启[请求 Spot 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html)选项,并指定你愿意支付的最高实例价格(每小时)。
### 仅使用私有地址
启用仅使用[私人地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html)的选项。
### EBS 优化实例
使用 [EBS 优化实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html)。
### 允许访问 EC2 元数据
启用对 [EC2 元数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)的访问。
### 为元数据使用 Token
使用 [Instance Metadata Service Version 2 (IMDSv2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html),即基于令牌访问元数据的方法。
### 添加标签
使用[标签](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)添加元数据,从而对资源进行分类。
@@ -0,0 +1,122 @@
---
title: Azure 主机配置
---
有关 Azure 的更多信息,请参阅官方 [Azure 文档](https://docs.microsoft.com/en-us/azure/?product=featured)。
## Machine Pools
### 环境
Microsoft 提供了多个[](https://docs.microsoft.com/en-us/cli/azure/cloud?view=azure-cli-latest)来满足地区法律的要求:
- AzurePublicCloud
- AzureGermanCloud
- AzureChinaCloud
- AzureUSGovernmentCloud
### 位置
配置集群和节点的[位置](https://docs.microsoft.com/en-us/azure/virtual-machines/regions)。
### 资源组
资源组是一个容器,其中包含 Azure 解决方案的相关资源。资源组可以包括解决方案的所有资源,或者仅包括你希望作为一个组来管理的资源。你可以根据组织的需求来决定如何将资源分配给资源组。通常情况下,你可以将生命周期相同的资源添加到同一个资源组,以便轻松地按组进行部署、更新和删除。
你可以使用现有资源组,也可以输入资源组的名称,然后系统将为你创建一个资源组。
有关管理资源组的信息,请参阅 [Azure 文档](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal)。
### 可用性集(非托管)
要添加 VM 的现有[可用性集](https://docs.microsoft.com/en-us/azure/virtual-machines/availability-set-overview)的名称或 ID。
### 镜像
作为 ARM 资源标识符提供的操作系统镜像的名称。需要使用托管磁盘。
### 虚拟机大小
为节点池中的每个 VM 选择一个大小。有关每个 VM 大小的详细信息,请参阅[此页面](https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/)。
## 高级选项
### 容错域数量
容错域定义了共享公共电源和网络交换机的虚拟机组。如果可用性集已创建,将忽略容错域数量。
有关容错域的更多信息,请参阅[此处](https://docs.microsoft.com/en-us/azure/virtual-machines/availability-set-overview#how-do-availability-sets-work)。
### 更新域数量
更新域表示可以同时重新启动的虚拟机组和底层物理硬件。如果可用性集已创建,将忽略更新域数量。
有关更新域的更多信息,请参阅[此处](https://docs.microsoft.com/en-us/azure/virtual-machines/availability-set-overview#how-do-availability-sets-work)。
### 购买计划
Azure 市场中的某些 VM 镜像需要购买计划。如果适用,请为你选择的镜像选择格式为 `publisher:product:plan` 的购买计划。
### 子网
创建新 VNet 或引用现有 VNet 时的子网名称。
默认值:`docker-machine`
### 子网前缀
创建 CIDR 格式的新 VNet 时要使用的子网 IP 地址前缀。
默认值:`192.168.0.0/16`
### 虚拟网络
要使用或创建的[虚拟网络](https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-overview)(如果不存在)。格式为 `[resourcegroup:]name`
### 公共 IP 选项
#### 没有公共 IP
不要分配公共 IP 地址。
#### 静态公共 IP
分配静态公共 IP 地址。
### 使用私有 IP
使用静态私有 IP 地址。
### 私有 IP 地址
配置要使用的静态私有 IP 地址。
### 网络安全组
要使用的[网络安全组(NSG](https://docs.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview)。使用此模板的所有节点都将使用配置的网络安全组。如果没有配置网络安全组,则为每个节点创建一个新的网络安全组。
### DNS 标签
公共 IP 地址的唯一 DNS 名称标签。
### 储存类型
用于 VM 的[存储账号](https://docs.microsoft.com/en-us/azure/storage/common/storage-account-overview)类型。可选项包括 Standard LRS、Standard ZRS、Standard GRS、Standard RAGRS 和 Premium LRS。
### 使用托管磁盘
[Azure 托管磁盘](https://docs.microsoft.com/en-us/azure/virtual-machines/managed-disks-overview)是由 Azure 管理并与 Azure Virtual Machines 一起使用的块级存储卷。托管磁盘旨在实现 99.999% 的高可用性。托管磁盘通过提供三个数据副本来实现高可用性和高持续性。
### 托管磁盘大小
每个节点的磁盘大小(以 GB 为单位)。
### SSH 用户名
用于 SSH 连接到节点的用户名。
### 开放端口
打开指定端口上的入站流量。如果你使用现有的网络安全组,将忽略开放端口。
默认值:`2379/tcp, 2380/tcp, 6443/tcp, 9796/tcp, 10250/tcp, 10251/tcp, 10252/tcp, 10256/tcp``8472/udp, 4789/udp`
@@ -0,0 +1,35 @@
---
title: DigitalOcean 主机配置
---
有关 DigitalOcean、Droplet 的更多详细信息,请参阅[官方文档](https://docs.digitalocean.com/products/compute/)。
## Machine Pools
### 区域
配置创建 Droplet 的[区域](https://docs.digitalocean.com/glossary/region/)。
### 大小
配置 Droplet 的[大小](https://docs.digitalocean.com/products/droplets/resources/choose-plan/)。
### 操作系统镜像
配置用于创建 Droplet 的操作系统[镜像](https://docs.digitalocean.com/products/images/)。
### Monitoring
启用 DigitalOcean 代理以进行额外的[监控](https://docs.digitalocean.com/products/monitoring/)。
### IPv6
为 Droplet 启用 IPv6。
### 私有网络
为 Droplet 启用私有网络。
### Droplet 标签
将标签(tag, label)应用于 Droplet。标签只能包含字母、数字、冒号、破折号和下划线。例如,`my_server`
@@ -0,0 +1,9 @@
---
title: 主机配置
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/reference-guides/cluster-configuration/downstream-cluster-configuration/machine-configuration"/>
</head>
主机配置指的是如何将资源分配给虚拟机。请参阅 [Amazon EC2](amazon-ec2.md)、[DigitalOcean](digitalocean.md) 和 [Azure](azure.md) 的文档以了解更多信息。
@@ -0,0 +1,47 @@
---
title: EC2 节点模板配置
---
有关 EC2 和节点的更多详细信息,请参阅 [EC2 管理控制台](https://aws.amazon.com/ec2)的官方文档。
## 区域
在**区域**字段中,选择创建云凭证时使用的同一区域。
## 云凭证
你的 AWS 账户访问信息,存储在[云凭证](../../../user-settings/manage-cloud-credentials.md)中。
请参阅 [Amazon 文档:创建访问密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey)来创建访问密钥和密文密钥。
请参阅 [Amazon 文档:创建 IAM 策略(控制台)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)来创建 IAM 策略。
请参阅 [Amazon 文档:为用户添加权限(控制台)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)了解如何绑定 IAM。
参阅下面的三个示例 JSON 策略:
- [IAM 策略示例](../../../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/create-an-amazon-ec2-cluster.md#iam-策略示例)
- [带有 PassRole 的 IAM 策略示例](../../../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/create-an-amazon-ec2-cluster.md#带有-passrole-的-iam-策略示例)(如果要使用 [Kubernetes 云提供商](../../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/set-up-cloud-providers.md),或将 IAM 配置文件传递给实例,则需要)
- [允许用户加密 EBS 卷的 IAM 策略示例](../../../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/create-an-amazon-ec2-cluster.md#允许加密-ebs-卷的-iam-策略示例)
## 验证和配置节点
为集群选择可用区和网络设置。
## 安全组
选择默认安全组或配置安全组。
请参考[使用主机驱动时的 Amazon EC2 安全组](../../../../getting-started/installation-and-upgrade/installation-requirements/port-requirements.md#rancher-aws-ec2-安全组),了解 `rancher-nodes` 安全组中创建的规则。
如果你自行为 EC2 实例提供安全组,Rancher 不会对其进行修改。因此,你需要让你的安全组允许 [Rancher 配置实例所需的端口](../../../../getting-started/installation-and-upgrade/installation-requirements/port-requirements.md#rke2-上-rancher-server-节点的端口)。有关使用安全组控制 EC2 实例的入站和出站流量的更多信息,请参阅[这里](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#WorkingWithSecurityGroups)。
## 实例选项
配置要创建的实例。确保为 AMI 配置正确的 **SSH 用户**。所选的区域可能不支持默认实例类型。在这种情况下,你必须选择一个确实存在的实例类型。否则将出现错误,表示请求的配置不受支持。
如果需要传递 **IAM 示例配置名称**(不是 ARN),例如要使用 [Kubernetes 云提供商](../../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/set-up-cloud-providers.md)时,策略则需要其他权限。有关示例策略,请参阅[带有 PassRole 的 IAM 策略示例](../../../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/create-an-amazon-ec2-cluster.md#带有-passrole-的-iam-策略示例)。
## 引擎选项
在节点模板的**引擎选项**中,你可以配置容器 daemon。你可能需要指定容器版本或容器镜像仓库 Mirror。
@@ -0,0 +1,33 @@
---
title: Azure 节点模板配置
---
有关 Azure 的更多信息,请参阅官方 [Azure 文档](https://docs.microsoft.com/en-us/azure/?product=featured)。
账户访问信息存储在云凭证中。云凭证存储在 Kubernetes 密文中。多个节点模板可以使用相同的云凭证。你可以使用现有的云凭证或创建新的凭证。
- **Placement** 设置托管集群的地理区域以及其他位置元数据。
- **Network** 配置集群中使用的网络。
- **Instance** 自定义你的 VM 配置。
:::note
如果在与 VM 不同的资源组中使用 VNet,则 VNet 名称需要以资源组名称作为前缀。例如,`<resource group>:<vnet>`
:::
如果你使用 Docker[Docker daemon](https://docs.docker.com/engine/docker-overview/#the-docker-daemon) 配置选项包括:
- **标签**:有关标签的信息,请参阅 [Docker 对象标签文档](https://docs.docker.com/config/labels-custom-metadata/)。
- **Docker 引擎安装 URL**:确定要在实例上安装的 Docker 版本。
:::note
如果要配置 Red Hat Enterprise Linux (RHEL) 或 CentOS 节点,请将 **Docker Install URL** 字段保留为默认值,或选择 **none**。由于 Docker 已经安装在这些节点上,因此将绕过 Docker 安装检查。
如果没有将 **Docker Install URL** 设置为默认值或 **none**,你可能会看到错误消息:`Error creating machine: RHEL ssh command error: command: sudo -E yum install -y curl err: exit status 1 output: Updating Subscription Management repositories`
:::
- **镜像仓库 mirror**Docker daemon 使用的 Docker 镜像仓库镜像。
- **其他高级选项**:参见 [Docker daemon 选项参考](https://docs.docker.com/engine/reference/commandline/dockerd/)。
@@ -0,0 +1,18 @@
---
title: DigitalOcean 节点模板配置
---
账户访问信息存储在云凭证中。云凭证存储在 Kubernetes 密文中。多个节点模板可以使用相同的云凭证。你可以使用现有的云凭证或创建新的凭证。
## Droplet 选项
**Droplet 选项**用于配置集群的地理区域和规范。
## Docker Daemon
如果你使用 Docker[Docker daemon](https://docs.docker.com/engine/docker-overview/#the-docker-daemon) 配置选项包括:
- **标签**:有关标签的信息,请参阅 [Docker 对象标签文档](https://docs.docker.com/config/labels-custom-metadata/)。
- **Docker 引擎安装 URL**:确定要在实例上安装的 Docker 版本。
- **镜像仓库 mirror**Docker daemon 使用的 Docker 镜像仓库镜像。
- **其他高级选项**:参见 [Docker daemon 选项参考](https://docs.docker.com/engine/reference/commandline/dockerd/)。
@@ -0,0 +1,9 @@
---
title: 节点模板配置
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/reference-guides/cluster-configuration/downstream-cluster-configuration/node-template-configuration"/>
</head>
要了解节点模板配置,请参阅[EC2 节点模板配置](amazon-ec2.md)、[DigitalOcean 节点模板配置](digitalocean.md)、[Azure 节点模板配置](azure.md)、[vSphere 节点模板配置](vsphere.md)和 [Nutanix 节点模板配置](nutanix.md)。
@@ -0,0 +1,66 @@
---
title: Nutanix 节点模板配置
---
## 账号访问
| 参数 | 必填 | 描述 | 默认 |
|:-----------------------------|:--------:|:-----------------------------------------------------------------|:-----
| 管理端点 | ✓ | Prism Central 的主机名/IP 地址 |
| 用户名 | ✓ | Prism Central 用户的用户名 |
| 密码 | ✓ | Prism Central 用户的密码 |
| 允许不安全的通信 | | 设置为 true 以允许与 Prism Central 进行不安全的 SSL 通信 | False |
## 调度
选择虚拟机要调度到哪个 Nutanix 集群。
| 参数 | 必填 | 描述 |
|:----------|:--------:|:----------------------------------------------------------------------------
| 集群 | ✓ | 部署虚拟机的 Nutanix 集群的名称(区分大小写) |
## 实例选项
在**实例参数**中,配置此模板创建的 VM 的 vCPU 数量、内存和磁盘大小。
| 参数 | 必填 | 描述 | 默认 |
|:---------------------|:--------:|:--------------------------------------------------------------------------------------------|:-------
| CPU | | 分配给 VM 的 vCPU 数量(核心) | 2 |
| 内存 | | 分配给 VM 的 RAM 量 (MB) | 2 GB |
| Template Image | ✓ | 要作为虚拟机主磁盘进行克隆的磁盘镜像模板的名称(必须支持 cloud-init |
| 虚拟机磁盘大小 | | 虚拟机主磁盘的新大小(以 GiB 为单位) |
| 其他磁盘大小 | | 要添加到虚拟机的其他磁盘的大小(以 GiB 为单位) |
| 储存容器 | | 要配置其他磁盘的存储容器 _UUID_ |
| Cloud Config YAML | | 要提供给虚拟机的 cloud-init(将使用 Rancher root 用户修补) |
| 网络 | ✓ | 要附加到虚拟机的网络的名称 |
| 虚拟机类别 | | 要应用于虚拟机的类别名称 |
虚拟机支持通过 [Config Drive v2 datasource](https://cloudinit.readthedocs.io/en/latest/reference/datasources/configdrive.html) 来支持 [cloud-init](https://cloudinit.readthedocs.io/en/latest/) 的任何现代 Linux 操作系统。
## 网络
节点模板允许你为虚拟机配置多个网络。在**网络**字段中,你可以单击**添加**,然后在 AOS 中添加任何可用的网络。
## 虚拟机类别
类别用于将实体分组成键值对。通常会根据某些标准为虚拟机分配一个类别。然后,你可以将策略绑定到分配(分组)了特定类别值的实体。
## cloud-init
[Cloud-init](https://cloudinit.readthedocs.io/en/latest/) 允许你在首次启动时应用配置,从而初始化节点。这可能涉及创建用户或授权 SSH 密钥之类的操作。
要使用 cloud-init 初始化,请将使用有效 YAML 语法的 cloud config 粘贴到 **Cloud Config YAML** 字段中。要获取支持的 cloud config 指令的注释示例集,请参阅 [cloud-init 文档](https://cloudinit.readthedocs.io/en/latest/topics/examples.html)。
不建议使用基于 cloud-init 的网络配置,仅支持使用用户数据 `runcmd`,不支持 NoCloud 或其他网络配置数据源。
建议使用 Nutanix IP Address ManagementIPAM) 或其他 DHCP 服务。
## 引擎选项
在节点模板的**引擎选项**中,你可以配置容器 daemon。你可能需要指定容器版本或容器镜像仓库 Mirror。
:::note
如果要配置 Red Hat Enterprise Linux (RHEL) 或 CentOS 节点,请将 **Docker Install URL** 字段保留为默认值,或选择 **none**。由于 Docker 已经安装在这些节点上,因此将绕过 Docker 安装检查。
如果没有将 **Docker Install URL** 设置为默认值或 **none**,你可能会看到错误消息:`Error creating machine: RHEL ssh command error: command: sudo -E yum install -y curl err: exit status 1 output: Updating Subscription Management repositories`
:::
@@ -0,0 +1,95 @@
---
title: vSphere 节点模板配置
---
## 账号访问
| 参数 | 必填 | 描述 |
|:----------------------|:--------:|:-----|
| 云凭证 | * | 你的 vSphere 账号访问信息,存储在[云凭证](../../../user-settings/manage-cloud-credentials.md)中。 |
你的云凭证具有以下字段:
| 凭证字段 | 描述 |
|-----------------|--------------|
| vCenter 或 ESXi Server | 输入 vCenter 或 ESXi 主机名/IP。ESXi 是你创建和运行虚拟机和虚拟设备的虚拟化平台。你可以通过 vCenter Server 服务来管理网络中连接的多个主机并池化主机资源。 |
| 端口 | 可选:配置 vCenter 或 ESXi Server 的端口。 |
| 用户名和密码 | 你的 vSphere 登录用户名和密码。 |
## 调度
选择虚拟机要调度到哪个虚拟机监控程序。
**调度**中的字段应使用 vSphere 中可用的数据中心和其他计划选项自动填充。
| 字段 | 必填 | 解释 |
|---------|---------------|-----------|
| 数据中心 | * | 选择要调度 VM 的数据中心的名称/路径。 |
| 资源池 | | 要在其中调度 VM 的资源池名称。资源池可对独立主机或集群的可用 CPU 和内存资源进行分区,也可以嵌套使用。如果是独立 ESXi,请留空。如果未指定,则使用默认资源池。 |
| 数据存储 | * | 如果你有数据存储集群,则可以打开**数据存储**字段。此字段允许你选择要将 VM 调度到哪个数据存储集群。如果该字段未打开,你可以选择单个磁盘。 |
| 文件夹 | | 数据中心中用于创建 VM 的文件夹的名称。必须已经存在。此下拉菜单中的 VM 文件夹直接对应于 vSphere 中的 VM 文件夹。在 vSphere 配置文件中,文件夹名称应以 `vm/` 开头。 |
| 主机 | | 用于调度 VM 的主机系统的 IP。如果是独立 ESXi 或具有 DRS(分布式资源调度器)的集群,将此字段留空。如果指定,将使用主机系统的池,而忽略**资源池**参数。 |
## 实例选项
在**实例参数**中,配置此模板创建的 VM 的 vCPU 数量、内存和磁盘大小。
| 参数 | 必填 | 描述 |
|:----------------|:--------:|:-----------|
| CPU | * | 要分配给 VM 的 vCPU 数量。 |
| 内存 | * | 要分配给 VM 的内存量。 |
| 磁盘 | * | 要挂载到 VM 的磁盘大小(以 MB 为单位)。 |
| 创建方法 | * | 在节点上设置操作系统的方法。可以使用 ISO 或 VM 模板安装操作系统。根据创建方法,你还必须指定 VM 模板、内容库、现有 VM 或 ISO。有关创建方法的详细信息,请参阅 [VM 创建方法](#vm-创建方法)。 |
| Cloud Init | | `cloud-config.yml` 文件的 URL 或用于配置 VM 的 URL。此文件允许进一步定制操作系统,例如网络配置、DNS 服务器或系统守护程序。操作系统必须支持 `cloud-init`。 |
| 网络 | | 要挂载 VM 的网络的名称。 |
| guestinfo 配置参数 | | VM 的其他配置参数。这些参数对应 vSphere 控制台中的[高级设置](https://kb.vmware.com/s/article/1016098)。示例用例包括提供 RancherOS [guestinfo](https://rancher.com/docs/os/v1.x/en/installation/cloud/vmware-esxi/#vmware-guestinfo) 参数,或为 VM 启用磁盘 UUID (`disk.EnableUUID=TRUE`)。 |
### VM 创建方法
在**创建方法**字段中,配置用于在 vSphere 中配置 VM 的方法。可用的选项包括创建从 RancherOS ISO 启动的 VM,或通过从现有虚拟机或 [VM 模板](https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.vm_admin.doc/GUID-F7BF0E6B-7C4F-4E46-8BBF-76229AEA7220.html)克隆来创建 VM。
现有 VM 或模板可以使用任何现代 Linux 操作系统,该操作系统配置为使用 [NoCloud 数据源](https://canonical-cloud-init.readthedocs-hosted.com/en/latest/reference/datasources/nocloud.html)来支持 [cloud-init](https://cloudinit.readthedocs.io/en/latest/)。
选择创建 VM 的方式:
- **使用模板部署:数据中心**:选择存在于所选数据中心的 VM 模板。
- **使用模板部署:内容库**:首先选择包含你的模板的[内容库](https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.vm_admin.doc/GUID-254B2CE8-20A8-43F0-90E8-3F6776C2C896.html),然后从填充列表**库模板**中选择模板。
- **克隆现有的虚拟机**:在**虚拟机**字段中选择一个现有虚拟机,新虚拟机将克隆自该虚拟机。
- **使用 boot2docker ISO 安装**:确保 **OS ISO URL** 字段包含 RancherOS 的 VMware ISO 版本的 URL (`rancheros-vmware.iso`)。请注意,运行 Rancher Server 节点必须能访问该 URL。
## 网络
节点模板允许你为虚拟机配置多个网络。在**网络**字段中,你可以单击**添加网络**来添加 vSphere 中可用的任何网络。
## 节点标签和自定义属性
标签用于向 vSphere 对象清单中的对象添加元数据,以便对对象进行排序和搜索。
你的所有 vSphere 标签都将显示为节点模板中可供选择的选项。
在自定义属性中,Rancher 会让你选择你已经在 vSphere 中设置的所有自定义属性。自定义属性是键,你可以为每个属性输入值。
:::note
自定义属性是一项旧版功能,最终将从 vSphere 中删除。
:::
## cloud-init
[Cloud-init](https://cloudinit.readthedocs.io/en/latest/) 允许你在首次启动时应用配置,从而初始化节点。这可能涉及创建用户、授权 SSH 密钥或设置网络之类的操作。
要使用 cloud-init 初始化,请使用有效的 YAML 语法创建一个 cloud config 文件,并将文件内容粘贴到 **Cloud Init** 字段中。要获取支持的 cloud config 指令的注释示例集,请参阅 [cloud-init 文档](https://cloudinit.readthedocs.io/en/latest/topics/examples.html)。
请注意,使用 ISO 创建方法时不支持 cloud-init。
## 引擎选项
在节点模板的**引擎选项**中,你可以配置容器 daemon。你可能需要指定容器版本或容器镜像仓库 Mirror。
:::note
如果要配置 Red Hat Enterprise Linux (RHEL) 或 CentOS 节点,请将 **Docker Install URL** 字段保留为默认值,或选择 **none**。由于 Docker 已经安装在这些节点上,因此将绕过 Docker 安装检查。
如果没有将 **Docker Install URL** 设置为默认值或 **none**,你可能会看到错误消息:`Error creating machine: RHEL ssh command error: command: sudo -E yum install -y curl err: exit status 1 output: Updating Subscription Management repositories`
:::
@@ -0,0 +1,224 @@
---
title: AKS 集群配置参考
---
## Rancher 2.6 变更
- 支持添加多个节点池
- 支持私有集群
- 启用自动缩放节点池
- 在云凭证中配置 AKS 权限
## RBAC
在 Rancher UI 中配置 AKS 集群时,无法禁用 RBAC。如果在 AKS 中为集群禁用了 RBAC,则无法在 Rancher 中注册或导入集群。
Rancher 可以使用与其他集群一样的方式为 AKS 集群配置成员角色。有关详细信息,请参阅 [RBAC](../../../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/manage-role-based-access-control-rbac.md)。
## 云凭证
:::note
本节中的配置信息假设你已经为 Rancher 设置了服务主体。有关如何设置服务主体的分步说明,请参阅[本节](../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/aks.md#microsoft-azure-中的先决条件)。
:::
### 订阅 ID
要获取订阅 ID,请单击左侧导航栏中的 **All Services**。然后单击 **Subscriptions**。转到要与 Kubernetes 集群关联的订阅的名称,然后复制 **Subscription ID**
### 客户端 ID
要获取客户端 ID,请转到 Azure 门户,然后单击 **Azure Active Directory**,单击 **App registrations**,然后单击服务主体的名称。客户端 ID 在 app registration 详细信息页面上列为 **Application (client) ID**
### 客户端密码
在创建客户端密码值后,你无法再获取它的值。因此如果你还没有客户端密码值,则需要创建一个新的客户端密码。
要获取新的客户端密码,请转到 Azure 门户,然后单击 **Azure Active Directory**,单击 **App registrations**,然后单击服务主体的名称。
然后点击 **Certificates & secrets** 并点击 **New client secret**。单击 **Add**。然后复制新客户端密码的 **Value**
### 环境
Microsoft 提供了多个[](https://docs.microsoft.com/en-us/cli/azure/cloud?view=azure-cli-latest)来满足地区法律的要求:
- AzurePublicCloud
- AzureGermanCloud
- AzureChinaCloud
- AzureUSGovernmentCloud
## 账号访问
在本部分中,你需要选择现有的 Azure 云凭证或创建一个新凭证。
有关配置 Azure 云凭证的帮助,请参阅[本部分](#云凭证)。
## 集群位置
配置集群和节点位置。有关 AKS 可用区的详细信息,请参阅 [AKS 文档](https://docs.microsoft.com/en-us/azure/aks/availability-zones)。
高可用性位置包括多个可用区。
## 集群选项
### Kubernetes 版本
可用的 Kubernetes 版本是从 Azure API 动态获取的。
### 集群资源组
资源组是一个容器,其中包含 Azure 解决方案的相关资源。资源组可以包括解决方案的所有资源,或者仅包括你希望作为一个组来管理的资源。你可以根据组织的需求来决定如何将资源分配给资源组。通常情况下,你可以将生命周期相同的资源添加到同一个资源组,以便轻松地按组进行部署、更新和删除。
你可以使用现有资源组,也可以输入资源组的名称,然后系统将为你创建一个资源组。
使用包含现有 AKS 集群的资源组将会创建一个新资源组。Azure AKS 仅允许每个资源组对应一个 AKS 集群。
有关管理资源组的信息,请参阅 [Azure 文档](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal)。
### Linux 管理员用户名
用于创建到 Linux 节点的 SSH 连接的用户名。
AKS 节点的默认用户名是 `azureuser`
### SSH 公钥
用于创建到 Linux 节点的 SSH 连接的密钥。
### Tags
如果你的组织使用标签(Tag)来管理多个 Azure 服务的资源,那么集群标签则非常有用。这些标签不适用于集群内的资源。
## 网络选项
### 负载均衡器 SKU
Azure 负载均衡器支持 standard 和 basic SKUstock keeping units)。
有关 standard 负载均衡器和 basic 负载均衡器的对比,请参阅官方 [Azure 文档](https://docs.microsoft.com/en-us/azure/load-balancer/skus#skus)。Microsoft 建议使用 standard 负载均衡器。
如果你选择了一个或多个可用区,或者你有多个节点池,则需要 Standard 负载均衡器。
### 网络策略
默认情况下,AKS 集群中的所有 Pod 都可以无限制地发送和接收流量。为了提高安全性,你可以定义控制流量的规则。Kubernetes 中的网络策略功能允许你定义集群中 pod 之间的入口和出口流量规则。
Azure 提供了两种实现网络策略的方法。创建 AKS 集群时会选择网络策略选项。创建集群后无法更改策略选项:
- Azure 自己的实现,称为 Azure 网络策略。Azure 网络策略需要 Azure CNI。
- Calico Network Policies,一个由 [Tigera](https://www.tigera.io/) 创立的开源网络和网络安全解决方案。
你也可以选择不使用网络策略。
有关 Azure 和 Calico 网络策略及其功能之间的差异,请参阅 [AKS 文档](https://docs.microsoft.com/en-us/azure/aks/use-network-policies#differences-between-azure-and-calico-policies-and-their-capabilities)。
### DNS 前缀
为集群的 Kubernetes API server FQDN 输入唯一的 DNS 前缀。
### 网络插件
有两个网络插件,分别是 kubenet 和 Azure CNI。
[kubenet](https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/#kubenet) Kubernetes 插件是 AKS 创建的集群的默认配置。使用 kubenet 时,集群中的每个节点都会收到一个可路由的 IP 地址。Pod 使用 NAT 与 AKS 集群外部的其他资源进行通信。这种方法减少了需要在网络空间中保留以供 Pod 使用的 IP 地址数量。
如果使用 Azure CNI(高级)网络插件,Pod 可以使用完整的虚拟网络连接,并且可以从连接的网络中通过 pod 的私有 IP 地址直接访问。这个插件需要更多的 IP 地址空间。
有关 kubenet 和 Azure CNI 之间差异的详细信息,请参阅 [AKS 文档](https://docs.microsoft.com/en-us/azure/aks/concepts-network#compare-network-models)。
### HTTP 应用路由
启用后,HTTP 应用路由附加组件可以更轻松地访问部署到 AKS 集群的应用。它部署了两个组件,分别是 [Kubernetes Ingress controller](https://kubernetes.io/docs/concepts/services-networking/ingress/) 和 [External-DNS](https://github.com/kubernetes-incubator/external-dns) controller。
有关详细信息,请参阅 [AKS 文档](https://docs.microsoft.com/en-us/azure/aks/http-application-routing)。
### 设置授权 IP 范围
你可以使用[授权的 IP 地址范围](https://docs.microsoft.com/en-us/azure/aks/api-server-authorized-ip-ranges#overview-of-api-server-authorized-ip-ranges)来保护对 Kubernetes API server 的访问。
Kubernetes API server 公开 Kubernetes API。该组件提供管理工具(例如 kubectl)的交互。AKS 提供带有专用 API server 的单租户集群 controlplane。默认情况下,API server 分配了一个公共 IP 地址,你应该使用基于 Kubernetes 或 Azure 的 RBAC 来控制对 API server 的访问。
要保护对其他可公开的 AKS controlplane 和 API server 的访问,你可以启用并使用授权的 IP 范围。这些授权的 IP 范围只允许定义的 IP 地址范围与 API server 通信。
但是,即使你使用了授权的 IP 地址范围,你仍应使用 Kubernetes RBAC 或 Azure RBAC 来授权用户及其请求的操作。
### 容器监控
容器监控使用 Metrics API 从 Kubernetes 中可用的控制器、节点和容器中收集内存和处理器指标,从而为你可视化性能数据。容器日志也能被收集。启用监控后,系统会通过 Linux 的 Log Analytics 代理的容器化版本自动为你收集指标和日志。指标会被写入指标存储,而日志数据会被写入与你的 [Log Analytics](https://docs.microsoft.com/en-us/azure/azure-monitor/logs/log-query-overview) 工作区关联的日志存储。
### Log Analytics 工作区资源组
[资源组](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/overview#resource-groups)包含 Log Analytics 工作区。你必须至少创建一个工作区才能使用 Azure Monitor Logs。
### Log Analytics 工作区名称
Azure Monitor Logs 收集的数据存储在一个或多个 [Log Analytics 工作区中](https://docs.microsoft.com/en-us/azure/azure-monitor/logs/design-logs-deployment)。工作区定义了数据的地理位置、访问权限(定义了哪些用户可以访问数据)以及配置设置(定价层和数据保留等)。
你必须至少创建一个工作区才能使用 Azure Monitor Logs。一个工作区可能就足以满足你的所有监控数据。你也可以根据需求创建多个工作区。例如,你可能有一个工作区用于生产数据,另一个工作区用于测试。
有关 Azure Monitor Logs 的详细信息,请参阅 [Azure 文档](https://docs.microsoft.com/en-us/azure/azure-monitor/logs/data-platform-logs)。
### 支持私有 Kubernetes 服务
通常情况下,无论集群是否为私有,AKS worker 节点都不会获得公共 IP。在私有集群中,controlplane 没有公共端点。
Rancher 可以通过以下两种方式之一连接到私有 AKS 集群。
第一种方法是确保 Rancher 运行在与 AKS 节点相同的 [NAT](https://docs.microsoft.com/en-us/azure/virtual-network/nat-overview) 上。
第二种方法是运行命令向 Rancher 注册集群。配置集群后,你可以在任何能连接到集群的 Kubernetes API 的地方运行显示的命令。配置启用了私有 API 端点的 AKS 集群时,此命令将显示在弹出窗口中。
:::note
注册现有 AKS 集群时,集群可能需要一些时间(可能是数小时)才会出现在 `Cluster To register` 下拉列表中。不同区域的结果可能不同。
:::
有关连接到 AKS 专用集群的详细信息,请参阅 [AKS 文档](https://docs.microsoft.com/en-us/azure/aks/private-clusters#options-for-connecting-to-the-private-cluster)。
## 节点池
### 模式
在 Azure 界面中,用户能够指定主要节点池(Primary Node Pool)依赖于 `system`(通常用于 controlplane)还是 `user`Rancher 最常用的)。
你可以指定主要节点池(Primary Node Pool)的模式、操作系统、数量和大小。
`system` 节点池总是需要运行节点,因此它们不能缩容到一个节点以下。至少需要一个 `system` 节点池。
对于后续的节点池,Rancher UI 强制使用默认的 `user``user` 节点池允许缩容到零节点。`user` 节点池不运行 Kubernetes controlplane 的任何部分。
AKS 不会公开运行 Kubernetes controlplane 组件的节点。
### 可用区
[可用区](https://docs.microsoft.com/en-us/azure/availability-zones/az-overview)是区域内的唯一物理位置。每个可用区由一个或多个配备独立电源、冷却系统和网络的数据中心组成。
并非所有区域都支持可用区。有关具有可用区的 Azure 区域列表,请参阅 [Azure 文档](https://docs.microsoft.com/en-us/azure/availability-zones/az-region#azure-regions-with-availability-zones)。
### 虚拟机大小
为节点池中的每个 VM 选择一个大小。有关每个 VM 大小的详细信息,请参阅[此页面](https://azure.microsoft.com/en-us/pricing/details/virtual-machines/linux/)。
### 操作系统磁盘类型
节点池中的节点可以使用托管磁盘或临时磁盘。
[临时 OS 磁盘](https://docs.microsoft.com/en-us/azure/virtual-machines/ephemeral-os-disks)在本地虚拟机存储上创建,并不会保存到远程 Azure 存储。临时 OS 磁盘适用于无状态工作负载,其中的应用可以容忍单个 VM 故障,但更容易受 VM 部署时间或重置单个虚拟机实例镜像的影响。使用临时 OS 磁盘,你可以体验更低的 OS 磁盘读/写延迟和更快的 VM 重置镜像过程。
[Azure 托管磁盘](https://docs.microsoft.com/en-us/azure/virtual-machines/managed-disks-overview)是由 Azure 管理并与 Azure Virtual Machines 一起使用的块级存储卷。托管磁盘旨在实现 99.999% 的高可用性。托管磁盘通过提供三个数据副本来实现高可用性和高持续性。
### 操作系统磁盘大小
每个节点的磁盘大小(以 GB 为单位)。
### 节点数
节点池中的节点数。[Azure 订阅](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits)可能会限制最大节点数。
### 每个节点的最大 Pod 数量
每个节点的最大 Pod 数量默认为 110,最大为 250。
### 启用自动扩缩容
启用自动扩缩容后,你需要输入最小和最大节点数。
启用 Auto Scaling 后,你将无法手动对节点池进行扩缩容。扩缩容由 AKS autoscaler 控制。
@@ -0,0 +1,149 @@
---
title: EKS 集群配置参考
---
## 账号访问
使用获取的信息为 IAM 策略填写每个下拉列表和字段:
| 设置 | 描述 |
| ---------- | -------------------------------------------------------------------------------------------------------------------- |
| 区域 | 从下拉列表中选择构建集群的地理区域。 |
| 云凭证 | 选择为 IAM 策略创建的云凭证。有关在 Rancher 中创建云凭证的更多信息,请参阅[此页面](../../user-settings/manage-cloud-credentials.md)。 |
## 服务角色
选择一个[服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。
| 服务角色 | 描述 |
-------------|---------------------------
| StandardRancher 生成的服务角色 | 如果选择此角色,Rancher 会自动添加一个服务角色以供集群使用。 |
| 自定义:从现有的服务角色中选择 | 如果选择此角色,Rancher 将允许你从已在 AWS 中创建的服务角色中进行选择。有关在 AWS 中创建自定义服务角色的更多信息,请参阅 [Amazon 文档](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)。 |
## 密文加密
可选:要加密密文,请选择或输入在 [AWS 密钥管理服务 (KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 中创建的密钥。
## API Server 端点访问
配置公共/私有 API 访问是一个高级用例。有关详细信息,请参阅 [EKS 集群端点访问控制文档](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)。
## 专用 API 端点
如果你在创建集群时启用了私有 API 端点访问,并禁用了公共 API 端点访问,那么你必须进行额外的步骤才能使 Rancher 成功连接到集群。在这种情况下,一个弹窗将会显示,其中包含需要在要注册到 Rancher 的集群上运行的命令。配置集群后,你可以在任何能连接到集群的 Kubernetes API 的地方运行显示的命令。
以下两种方法能避免这个额外的手动步骤:
- 在创建集群时,创建具有私有和公共 API 端点访问权限的集群。在集群创建并处于 active 状态后,你可以禁用公共访问,Rancher 将能继续与 EKS 集群通信。
- 确保 Rancher 与 EKS 集群共享同一个子网。然后,你可以使用安全组使 Rancher 能够与集群的 API 端点进行通信。在这种情况下,你不需要运行注册集群的命令,Rancher 就能够与你的集群通信。有关配置安全组的更多信息,请参阅[安全组文档](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。
## 公共访问端点
你也可以选择通过显式 CIDR 块来限制对公共端点的访问。
如果你限制对特定 CIDR 块的访问,那么建议你也启用私有访问,以避免丢失与集群的网络通信。
启用私有访问需要满足以下条件之一:
- Rancher 的 IP 必须是允许的 CIDR 块的一部分。
- 应该启用了私有访问。此外,Rancher 必须和集群共享同一个子网,并对集群有网络访问权限。你可以通过安全组来进行配置。
有关对集群端点的公共和私有访问的更多信息,请参阅 [Amazon EKS 文档](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html)。
## 子网
| 选项 | 描述 |
| ------- | ------------ |
| StandardRancher 生成的 VPC 和子网 | 在配置集群时,Rancher 会生成一个具有 3 个公有子网的新 VPC。 |
| 自定义:从现有的 VPC 和子网中选择 | 在配置集群时,Rancher 将你的 controlplane 和节点配置为使用你已经[在 AWS 中创建](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)的 VPC 和子网。 |
有关更多信息,请参阅 AWS 文档以了解[集群 VPC 注意事项](https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html)。根据你在上一步中的选择,按照以下说明进行操作。
- [什么是 Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)
- [VPC 和子网](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
## 安全组
Amazon 文档:
- [集群安全组注意事项](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)
- [VPC 的安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)
- [创建安全组](https://docs.aws.amazon.com/vpc/latest/userguide/getting-started-ipv4.html#getting-started-create-security-group)
## Logging
将 controlplane 日志配置为发送到 Amazon CloudWatch。如果你将集群日志发送到 CloudWatch Logs,你需要按照 standard CloudWatch Logs 支付数据引入和存储费用。
每个日志类型均对应一个 Kubernetes controlplane 组件。有关这些组件的更多信息,请参阅 Kubernetes 文档中的 [Kubernetes 组件](https://kubernetes.io/docs/concepts/overview/components/)。
有关 EKS controlplane 日志管理的更多信息,请参阅[官方文档](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html)。
## 托管节点组
Amazon EKS 托管的节点组自动为 Amazon EKS Kubernetes 集群的节点(Amazon EC2 实例)进行预置和生命周期管理。
有关节点组如何工作以及如何配置的更多信息,请参阅 [EKS 文档](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html)。
### 使用你自己的启动模板
你可以提供启动模板 ID 和版本,以便轻松配置节点组中的 EC2 实例。如果你提供了启动模板,则以下设置都无法在 Rancher 中进行配置。因此,如果你使用启动模板,则需要在启动模板中指定以下列表中的所有必须和所需的设置。另请注意,如果提供了启动模板 ID 和版本,则只能更新模板版本。如果要使用新模板 ID,则需要创建新的托管节点组。
| 选项 | 描述 | 必填/选填 |
| ------ | ----------- | ----------------- |
| 实例类型 | 为要配置的实例选择[硬件规格](https://aws.amazon.com/ec2/instance-types/)。 | 必填 |
| 镜像 ID | 为节点指定自定义 AMI。与 EKS 一起使用的自定义 AMI 必须[正确配置](https://aws.amazon.com/premiumsupport/knowledge-center/eks-custom-linux-ami/)。 | 选填 |
| 节点卷大小 | 启动模板必须指定具有所需大小的 EBS 卷。 | 必填 |
| SSH 密钥 | 要添加到实例以对节点进行 SSH 访问的密钥。 | 选填 |
| 用户数据 | [MIME 多部分格式](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html#launch-template-user-data)的 Cloud init 脚本。 | 选填 |
| 实例资源标签 | 标记节点组中的每个 EC2 实例。 | 选填 |
### Rancher 管理的启动模板
如果你不指定启动模板,你将能够在 Rancher UI 中配置上述选项,并且可以在创建后更新所有这些选项。为了利用所有这些选项,Rancher 将为你创建和管理启动模板。Rancher 中的所有集群都将有一个 Rancher 管理的启动模板。此外,每个没有指定启动模板的托管节点组都将具有一个管理的启动模板版本。此启动模板的名称将具有 “rancher-managed-lt-” 前缀,后面是集群的显示名称。此外,Rancher 管理的启动模板将使用 “rancher-managed-template” 键和 “do-not-modify-or-delete” 值来进行标记,以将其识别为 Rancher 管理的启动模板。请注意,不要修改或删除此启动模板,或将此启动模板与其他集群或托管节点组一起使用。因为这可能会使你的节点组“降级”并需要销毁和重新创建。
### 自定义 AMI
如果你在启动模板或 Rancher 中指定了自定义 AMI,则必须[正确配置](https://aws.amazon.com/premiumsupport/knowledge-center/eks-custom-linux-ami/)镜像,并且必须提供用户数据以[引导节点](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html#launch-template-custom-ami)。这是一个高级用例,因此你必须要了解其要求。
如果你指定了不包含自定义 AMI 的启动模板,则 Amazon 将为 Kubernetes 版本和所选区域使用 [EKS 优化的 AMI](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html)。你还可以为能从中受益的工作负载选择[启用 GPU 的实例](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html#gpu-ami)。
:::note
如果你在下拉菜单或启动模板中提供了自定义 AMI,则会忽略 Rancher 中设置的启用 GPU 的实例。
:::
### Spot 实例
Spot 实例现在[受 EKS 支持](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types-spot)。如果你指定了启动模板,Amazon 建议不要在模板中提供实例类型。相反,Amazon 建议提供多种实例类型。如果你为节点组启用了“请求 Spot 实例”复选框,那么你将有机会提供多种实例类型。
:::note
在这种情况下,你在实例类型下拉列表中所选的选项都将被忽略,你必须在“Spot 实例类型”中至少指定一种实例类型。此外,与 EKS 一起使用的启动模板无法请求 Spot 实例。请求 Spot 实例必须是 EKS 配置的一部分。
:::
### 节点组设置
以下设置也是可配置的。在创建节点组后,除“节点组名称”外的所有选项都是可编辑的。
| 选项 | 描述 |
| ------- | ------------ |
| 节点组名称 | 节点组的名称。 |
| 期望 ASG 大小 | 期望的实例数量。 |
| 最大 ASG 大小 | 最大的实例数量。在安装 [Cluster Autoscaler](https://docs.aws.amazon.com/eks/latest/userguide/cluster-autoscaler.html) 之前,此设置不会生效。 |
| 最小 ASG 大小 | 最小的实例数量。在安装 [Cluster Autoscaler](https://docs.aws.amazon.com/eks/latest/userguide/cluster-autoscaler.html) 之前,此设置不会生效。 |
| Labels | 应用于管理的节点组中节点的 Kubernetes 标签。 |
| Tags | 管理的节点组的标签,这些标签不会传播到任何相关资源。 |
## 配置刷新间隔
`eks-refresh-cron` 设置已弃用。它已迁移到 `eks-refresh` 设置,这是一个表示秒的整数。
默认值为 300 秒。
你可以通过运行 `kubectl edit setting eks-refresh` 来更改同步间隔。
如果之前设置了 `eks-refresh-cron` 设置,迁移将自动进行。
刷新窗口越短,争用条件发生的可能性就越小。但这确实增加了遇到 AWS API 可能存在的请求限制的可能性。
@@ -0,0 +1,324 @@
---
title: GKE 集群配置参考
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/reference-guides/cluster-configuration/rancher-server-configuration/gke-cluster-configuration"/>
</head>
## Rancher 2.6 变更
- 支持额外的配置选项:
- 项目网络隔离
- 网络标签
## 集群位置
| 值 | 描述 |
|--------|--------------|
| 位置类型 | 地区 (zone) 或区域 (region)。借助 GKE,你可以根据工作负载的可用性要求和预算创建一个量身定制的集群。默认情况下,集群的节点在单个计算区域中运行。选择多个区域时,集群的节点将跨越多个计算区域,而 controlplane 则只位于单个区域中。区域集群也增加了 controlplane 的可用性。有关选择集群可用性类型的帮助,请参阅[这些文档](https://cloud.google.com/kubernetes-engine/docs/best-practices/scalability#choosing_a_regional_or_zonal_control_plane)。 |
| 地区 | 计算引擎中的每个区域都包含多地区。有关可用区域和可用区的更多信息,请参阅[这些文档](https://cloud.google.com/compute/docs/regions-zones#available)。 |
| 其他地区 | 对于地区性集群,你可以选择其他地区来创建[多地区集群](https://cloud.google.com/kubernetes-engine/docs/concepts/types-of-clusters#multi-zonal_clusters)。 |
| 区域 | 对于[区域性集群](https://cloud.google.com/kubernetes-engine/docs/concepts/types-of-clusters#regional_clusters),你可以选择一个区域。有关可用区域和可用区的更多信息,请参阅[本节](https://cloud.google.com/compute/docs/regions-zones#available)。地区名称的前面部分是区域的名称。 |
## 集群选项
### Kubernetes 版本
_可变:是_
有关 GKE Kubernetes 版本的更多信息,请参阅[这些文档](https://cloud.google.com/kubernetes-engine/versioning)。
### 容器地址范围
_可变:否_
集群中 Pod 的 IP 地址范围。必须是有效的 CIDR 范围,例如 10.42.0.0/16。如果未指定,则会自动从 10.0.0.0/8 中选择一个随机范围,并排除已分配给 VM、其他集群或路由的范围。自动选择的范围可能与预留的 IP 地址、动态路由或与集群对等的 VPC 中的路由发生冲突。
### 网络
_可变:否_
集群连接的 Compute Engine 网络。将使用此网络创建路由和防火墙。如果使用[共享 VPC](https://cloud.google.com/vpc/docs/shared-vpc),与你的项目共享的 VPC 网络将显示在此处。你将可以在此字段中进行选择。有关详细信息,请参阅[此页面](https://cloud.google.com/vpc/docs/vpc#vpc_networks_and_subnets)。
### 节点子网/子网
_可变:否_
集群连接到的 Compute Engine 子网。该子网必须属于**网络**字段中指定的网络。选择一个现有的子网,或选择“自动创建子网”来自动创建一个子网。如果不使用现有网络,则需要使用**子网名称**来生成一个。如果使用[共享 VPC](https://cloud.google.com/vpc/docs/shared-vpc),与你的项目共享的 VPC 子网将显示在此处。如果使用共享 VPC 网络,则无法选择“自动创建子网”。如需更多信息,请参阅[此页面](https://cloud.google.com/vpc/docs/vpc#vpc_networks_and_subnets)。
### 子网名称
_可变:否_
使用提供的名称自动创建子网。如果为**节点子网**或**子网**选择了“自动创建子网”,则为必填。有关子网的更多信息,请参阅[此页面](https://cloud.google.com/vpc/docs/vpc#vpc_networks_and_subnets)。
### IP 别名
_可变:否_
启用[别名 IP](https://cloud.google.com/vpc/docs/alias-ip)。这将启用 VPC 原生流量路由。如果使用[共享 VPC](https://cloud.google.com/vpc/docs/shared-vpc),则为必填。
### 网络策略
_可变:是_
在集群上启用的网络策略。网络策略定义了集群中 pod 和 service 之间可以发生的通信级别。有关详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/how-to/network-policy)。
### 项目网络隔离
_可变:是_
选择启用或禁用项目间通信。请注意,如果启用**项目网络隔离**,则将自动启用**网络策略**和**网络策略配置**,反之则不然。
### 节点 IPv4 CIDR 块
_可变:否_
此集群中实例 IP 的 IP 地址范围。如果为**节点子网**或**子网**选择了“自动创建子网”,则可以进行设置。必须是有效的 CIDR 范围,例如 10.96.0.0/14。有关如何确定 IP 地址范围的详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/concepts/alias-ips#cluster_sizing)。
### 集群次要范围名称
_可变:否_
Pod IP 地址的现有次要范围的名称。如果选中,将自动填充**集群 Pod 地址范围**。如果使用共享 VPC 网络,则为必填。
### 集群 Pod 地址范围
_可变:否_
分配给集群中 pod 的 IP 地址范围。必须是有效的 CIDR 范围,例如 10.96.0.0/11。如果未提供,将自动创建。如果使用共享 VPC 网络,则必须提供。有关如何确定 pod 的 IP 地址范围的更多信息,请参阅[本节](https://cloud.google.com/kubernetes-engine/docs/concepts/alias-ips#cluster_sizing_secondary_range_pods)。
### Service 次要范围名称
_可变:否_
Service IP 地址的现有次要范围的名称。如果选中,将自动填充 **Service 地址范围**。如果使用共享 VPC 网络,则为必填。
### Service 地址范围
_可变:否_
分配给集群中 Service 的地址范围。必须是有效的 CIDR 范围,例如 10.94.0.0/18。如果未提供,将自动创建。如果使用共享 VPC 网络,则必须提供。有关如何确定 Service 的 IP 地址范围的详细信息,请参阅[本节](https://cloud.google.com/kubernetes-engine/docs/concepts/alias-ips#cluster_sizing_secondary_range_svcs)。
### 私有集群
_可变:否_
:::caution
私有集群需要在 Rancher 之外进行额外的规划和配置。请参阅[私有集群指南](gke-private-clusters.md)。
:::
仅分配节点内部 IP 地址。除非在 GCP 中执行了额外的联网步骤,否则私有集群节点无法访问公共互联网。
### 启用私有端点
:::caution
私有集群需要在 Rancher 之外进行额外的规划和配置。请参阅[私有集群指南](gke-private-clusters.md)。
:::
_可变:否_
锁定对 controlplane 端点的外部访问。仅当**私有集群**也被选中时可用。如果选中,并且 Rancher 无法直接访问集群所在的虚拟私有云网络,Rancher 将提供在集群上运行的注册命令,以使 Rancher 能够连接到集群。
### 主 IPV4 CIDR 块
_可变:否_
controlplane VPC 的 IP 范围。
### 主授权网络
_可变:是_
启用 controlplane 授权网络,以阻止不受信任的非 GCP 源 IP 通过 HTTPS 访问 Kubernetes master。如果选择,则可以添加额外的授权网络。如果集群是使用公共端点创建的,则此选项可用于将公共端点的访问锁定到特定网络(例如运行 Rancher 服务的网络)。如果集群只有一个私有端点,则需要此设置。
## 其他选项
### 集群插件
其他 Kubernetes 集群组件。有关详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.AddonsConfig)。
#### 水平 Pod 自动缩放
_可变:是_
Horizontal Pod Autoscaler 通过自动增加或减少 Pod 的数量来调整 Kubernetes 工作负载,从而响应工作负载的 CPU 或内存消耗,以及 Kubernetes 内部报告的自定义指标或集群外部设置的指标。详情请参见[本页面](https://cloud.google.com/kubernetes-engine/docs/concepts/horizontalpodautoscaler)。
#### HTTP (L7) 负载均衡
_可变:是_
HTTP (L7) 负载均衡将 HTTP 和 HTTPS 流量分配到托管在 GKE 上的后端。有关详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer)。
#### 网络策略配置(仅限 master)
_可变:是_
NetworkPolicy 的配置。仅跟踪 master 节点上是否启用了插件,不跟踪是否为节点启用了网络策略。
### 集群特征(Alpha 功能)
_可变:否_
打开集群的所有 Kubernetes alpha API 组和功能。启用后,集群无法升级,并且会在 30 天后自动删除。由于 GKE SLA 未支持 alpha 集群,因此不建议将 Alpha 集群用于生产环境。有关详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/concepts/alpha-clusters)。
### Logging 服务
_可变:是_
集群用于写入日志的日志管理服务。要么使用 [Cloud Logging](https://cloud.google.com/logging),要么不使用日志管理服务(不会从集群中导出日志)。
### 监控服务
_可变:是_
集群用于写入指标的监控服务。要么使用 [Cloud Monitoring](https://cloud.google.com/monitoring),要么不使用集群监控服务(不会从集群中导出指标)。
### 维护窗口
_可变:是_
设置时长 4 小时的维护窗口的开始时间。使用 HH:MM 格式在 UTC 时区中指定时间。有关详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions)。
## 节点池
在此部分中,输入描述节点池中每个节点的配置的详细信息。
### Kubernetes 版本
_可变:是_
节点池中每个节点的 Kubernetes 版本。有关 GKE Kubernetes 版本的更多信息,请参阅[这些文档](https://cloud.google.com/kubernetes-engine/versioning)。
### 镜像类型
_可变:是_
节点操作系统镜像。有关 GKE 为每个操作系统提供的节点镜像选项,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/concepts/node-images#available_node_images)。
:::note
默认选项是 “Container-Optimized OS with Docker”。GCP Container-Optimized OS 上的只读文件系统与 Rancher 中的 [legacy logging](https://github.com/rancher/rancher-docs/tree/main/archived_docs/en/version-2.0-2.4/pages-for-subheaders/cluster-logging.md) 实现不兼容。如果你需要使用旧版日志管理功能,请选择 “Ubuntu with Docker” 或 “Ubuntu with Containerd”。[current logging feature](../../../../integrations-in-rancher/logging/logging.md) 与 Container-Optimized OS 镜像兼容。
:::
:::note
如果节点池镜像类型选择 “Windows Long Term Service Channel” 或 “Windows Semi-Annual Channel”,还必须至少添加一个 Container-Optimized OS 或 Ubuntu 节点池。
:::
### 主机类型
_可变:否_
节点实例可用的虚拟化硬件资源。有关 Google Cloud 主机类型的详细信息,请参阅[此页面](https://cloud.google.com/compute/docs/machine-types#machine_types)。
### 根磁盘类型
_可变:否_
标准永久性磁盘由标准磁盘驱动器 (HDD) 支持,而 SSD 永久性磁盘由固态硬盘 (SSD) 支持。有关详细信息,请参阅[本节](https://cloud.google.com/compute/docs/disks)。
### 本地 SSD 磁盘
_可变:否_
配置每个节点的本地 SSD 磁盘存储(以 GB 为单位)。本地 SSD 物理连接到托管你的 VM 实例的服务器。与标准永久性磁盘或 SSD 永久性磁盘相比,本地 SSD 具有更高的吞吐量和更低的延迟。存储在本地 SSD 上的数据只会保留到实例停止或删除。有关详细信息,请参阅[本节](https://cloud.google.com/compute/docs/disks#localssds)。
### 抢占式节点(beta
_可变:否_
抢占式节点也称为抢占式虚拟机。通常是最长持续 24 小时的 Compute Engine 虚拟机实例,不提供可用性保证。详情请参见[本页面](https://cloud.google.com/kubernetes-engine/docs/how-to/preemptible-vms)。
### 污点
_可变:否_
将污点应用于节点时,仅允许容忍该污点的 Pod 在该节点上运行。在 GKE 集群中,你可以将污点应用到节点池,这会将污点应用到池中的所有节点。
### 节点标签
_可变:否_
你可以将标签应用到节点池,这会将标签应用到池中的所有节点。
无效标签会阻止升级,或阻止 Rancher 启动。有关标签语法的详细信息,请参阅 [Kubernetes 文档](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set)。
### 网络标签
_可变:否_
你可以将网络标签添加到节点池以制定防火墙规则和子网之间的路由。标签将应用于池中的所有节点。
有关标签语法和要求的详细信息,请参阅 [Kubernetes 文档](https://cloud.google.com/vpc/docs/add-remove-network-tags)。
## 组详细信息
在此部分中,输入描述节点池的详细信息。
### 名称
_可变:否_
输入节点池的名称。
### 初始节点数
_可变:是_
节点池中初始节点数的整数。
### 每个节点的最大 Pod 数量
_可变:否_
GKE 的硬性限制是每个节点 110 个 Pod。有关 Kubernetes 限制的更多信息,请参阅[本节](https://cloud.google.com/kubernetes-engine/docs/best-practices/scalability#dimension_limits)。
### 自动缩放
_可变:是_
节点池自动缩放会根据工作负载的需求动态创建或删除节点。详情请参见[本页面](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-autoscaler)。
### 自动修复
_可变:是_
GKE 的节点自动修复功能可帮助你将集群中的节点保持在健康的运行状态。启用后,GKE 会定期检查集群中每个节点的运行状况。如果某个节点在较长时间段内连续未通过健康检查,GKE 会为该节点启动修复过程。有关详细信息,请参阅[自动修复节点](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-repair)。
### 自动升级
_可变:是_
启用后,当你的 controlplane [按照你的需求更新](https://cloud.google.com/kubernetes-engine/upgrades#automatic_cp_upgrades)时,自动升级功能会使集群中的节点与集群 controlplane(master)版本保持同步。有关自动升级节点的更多信息,参见[此页面。](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-upgrades)
### 访问范围
_可变:否_
设置访问范围是为你的节点指定权限的旧版方法。
- **允许默认访问**:新集群的默认访问是 [Compute Engine 默认 ServiceAccount](https://cloud.google.com/compute/docs/access/service-accounts?hl=en_US#default_service_account)。
- **允许完全访问所有 Cloud API**:通常,你只需设置云平台访问范围来允许完全访问所有 Cloud API,然后仅授予 ServiceAccount 相关的 IAM 角色。授予虚拟机实例的访问范围和授予 ServiceAccount 的 IAM 角色的组合决定了 ServiceAccount 对该实例的访问量。
- **为每个 API 设置访问权限**:或者,你可以设置服务将调用的特定 API 方法的访问范围。
有关详细信息,请参阅[为 VM 启用 ServiceAccount](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances)。
### 配置刷新间隔
刷新间隔可以通过 “gke-refresh” 来配置,它是一个代表秒的整数。
默认值为 300 秒。
你可以通过运行 `kubectl edit setting gke-refresh` 来更改同步间隔。
刷新窗口越短,争用条件发生的可能性就越小。但这确实增加了遇到 GCP API 可能存在的请求限制的可能性。
@@ -0,0 +1,49 @@
---
title: 私有集群
---
在 GKE 中,[私有集群](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept)是一种集群,其节点仅通过分配内部 IP 地址与入站和出站流量相隔离。GKE 中的私有集群可以选择将 controlplane 端点作为公开访问的地址或作为私有地址。这与其他 Kubernetes 提供商不同,后者可能将具有私有 controlplane 端点的集群称为“私有集群”,但仍允许进出节点的流量。基于你的组织的网络和安全要求,你可能想创建一个有私有节点的集群,其中有或没有公共 controlplane 端点。从 Rancher 配置的 GKE 集群可以通过在**集群选项**中选择**私有集群**(在**显示高级选项**下)来使用隔离的节点。通过选择**启用私有端点**,可以选择将 controlplane 端点设为私有。
## 私有节点
由于私有集群中的节点只有内部 IP 地址,它们将无法安装 cluster agentRancher 将无法完全管理集群。这可以通过几种方式来处理。
### Cloud NAT
:::caution
Cloud NAT 将[产生费用](https://cloud.google.com/nat/pricing)。
:::
如果限制外出的互联网访问对你的组织来说不是一个问题,可以使用 Google 的 [Cloud NAT](https://cloud.google.com/nat/docs/using-nat) 服务来允许私有网络中的节点访问互联网,使它们能够从 Dockerhub 下载所需的镜像并与 Rancher management server 通信。这是最简单的解决方案。
### 私有镜像仓库
:::caution
此方案不受官方支持。如果 Cloud NAT 服务不足以满足你的需求,则可以参考此方案。
:::
如果要求限制节点的传入和传出流量,请按照离线安装说明,在集群所在的 VPC 上设置一个私有容器[镜像仓库](../../../../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/air-gapped-helm-cli-install.md),从而允许集群节点访问和下载运行 cluster agent 所需的镜像。如果 controlplane 端点也是私有的,Rancher 将需要[直接访问](#直接访问)它。
## 私有 controlplane 端点
如果集群暴露了公共端点,Rancher 将能够访问集群,且无需执行额外的步骤。但是,如果集群没有公共端点,则必须确保 Rancher 可以访问集群。
### Cloud NAT
:::caution
Cloud NAT 将[产生费用](https://cloud.google.com/nat/pricing)。
:::
如上所述,如果不考虑限制对节点的传出互联网访问,则可以使用 Google 的 [Cloud NAT](https://cloud.google.com/nat/docs/using-nat) 服务来允许节点访问互联网。当集群进行配置时,Rancher 将提供一个在集群上运行的注册命令。下载新集群的 [kubeconfig](https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl) 并在集群上运行提供的 kubectl 命令。如果要通过获取集群访问权来运行此命令,你可以创建临时节点或使用 VPC 中的现有节点,或者登录到某个集群节点或使用某个集群节点创建 SSH 隧道。
### 直接访问
如果 Rancher server 与集群的 controlplane 运行在同一 VPC 上,它将直接访问 controlplane 的私有端点。集群节点将需要访问[私有镜像仓库](#私有镜像仓库)以下载上述的镜像。
你还可以使用 Google 的服务(例如 [Cloud VPN](https://cloud.google.com/network-connectivity/docs/vpn/concepts/overview) 或 [Cloud Interconnect VLAN](https://cloud.google.com/network-connectivity/docs/interconnect))来促进组织网络与 Google VPC 之间的连接。
@@ -0,0 +1,151 @@
---
title: K3s 集群配置参考
---
本文介绍 Rancher 中可用于新的或现有的 K3s Kubernetes 集群的配置选项。
## 概述
你可以通过以下两种方式之一来配置 Kubernetes 选项:
- [Rancher UI](#rancher-ui-中的配置选项):使用 Rancher UI 来选择设置 Kubernetes 集群时常用的自定义选项。
- [集群配置文件](#集群配置文件):高级用户可以创建一个 K3s 配置文件,而不是使用 Rancher UI 来为集群选择 Kubernetes 选项。配置文件允许你设置 K3s 安装中可用的任何[选项](https://rancher.com/docs/k3s/latest/en/installation/install-options/)。
## Rancher UI 中的配置选项
:::tip
一些高级配置选项没有在 Rancher UI 表单中开放,但你可以通过在 YAML 中编辑 K3s 集群配置文件来启用这些选项。有关 YAML 中 K3s 集群的可配置选项的完整参考,请参阅 [K3s 文档](https://rancher.com/docs/k3s/latest/en/installation/install-options/)。
:::
### 基本信息
#### Kubernetes 版本
这指的是集群节点上安装的 Kubernetes 版本。Rancher 基于 [hyperkube](https://github.com/rancher/hyperkube) 打包了自己的 Kubernetes 版本。
有关更多详细信息,请参阅[升级 Kubernetes](../../../getting-started/installation-and-upgrade/upgrade-and-roll-back-kubernetes.md)。
#### 加密密文
启用或禁用密文加密的选项。启用后,密文将使用 AES-CBC 密钥进行加密。如果禁用,则在再次启用加密之前无法读取任何以前的密文。有关详细信息,请参阅 [K3s 文档](https://rancher.com/docs/k3s/latest/en/advanced/#secrets-encryption-config-experimental)。
#### 项目网络隔离
如果你的网络提供商允许项目网络隔离,你可以选择启用或禁用项目间的通信。
#### SELinux
启用或禁用 [SELinux](https://rancher.com/docs/k3s/latest/en/advanced/#selinux-support) 支持的选项。
#### CoreDNS
默认情况下,[CoreDNS](https://coredns.io/) 会安装为默认 DNS 提供程序。如果未安装 CoreDNS,则必须自己安装备用 DNS 提供程序。有关详细信息,请参阅 [K3s 文档](https://rancher.com/docs/k3s/latest/en/networking/#coredns)。
#### Klipper Service LB
启用或禁用 [Klipper](https://github.com/rancher/klipper-lb) 服务负载均衡器的选项。有关详细信息,请参阅 [K3s 文档](https://rancher.com/docs/k3s/latest/en/networking/#service-load-balancer)。
#### Traefik Ingress
启用或禁用 [Traefik](https://traefik.io/) HTTP 反向代理和负载均衡器的选项。有关更多详细信息和配置选项,请参阅 [K3s 文档](https://rancher.com/docs/k3s/latest/en/networking/#traefik-ingress-controller)。
#### Local Storage
在节点上启用或禁用 [Local Storage](https://rancher.com/docs/k3s/latest/en/storage/) 的选项。
#### Metrics Server
启用或禁用 [metrics server](https://github.com/kubernetes-incubator/metrics-server) 的选项。如果启用,请确保为入站 TCP 流量打开 10250 端口。
### 附加配置
集群启动时将应用的其他 Kubernetes 清单,会作为[附加组件](https://kubernetes.io/docs/concepts/cluster-administration/addons/)来管理。有关详细信息,请参阅 [K3s 文档](https://rancher.com/docs/k3s/latest/en/helm/#automatically-deploying-manifests-and-helm-charts)。
### Agent 环境变量
为 [K3s agent](https://rancher.com/docs/k3s/latest/en/architecture/) 设置环境变量的选项。你可以使用键值对设置环境变量。有关详细信息,请参阅 [K3s 文档](https://rancher.com/docs/k3s/latest/en/installation/install-options/agent-config/)。
### etcd
#### 自动快照
启用或禁用定期 etcd 快照的选项。如果启用,用户可以配置快照的频率。有关详细信息,请参阅 [K3s 文档](https://docs.k3s.io/cli/etcd-snapshot#creating-snapshots)。
#### 指标
选择向公众公开或仅在集群内公开 etcd 指标的选项。
### 网络
#### 集群 CIDR
用于 pod IP 的 IPv4/IPv6 网络 CIDR(默认:10.42.0.0/16)。
#### Service CIDR
用于 Service IP 的 IPv4/IPv6 网络 CIDR(默认:10.43.0.0/16)。
#### 集群 DNS
用于 coredns 服务的 IPv4 集群 IP。应该在你的 service-cidr 范围内(默认:10.43.0.10)。
#### 集群域名
选择集群的域。默认值为 `cluster.local`
#### NodePort 服务端口范围
更改可用于 [NodePort 服务](https://kubernetes.io/docs/concepts/services-networking/service/#nodeport)的端口范围的选项。默认值为 `30000-32767`
#### 截断主机名
将主机名截断为 15 个或更少字符。该字段只能在集群初始创建时设置。创建集群后,你无法再启用或禁用 15 个字符的限制。
此设置仅影响配置了机器的集群。由于自定义集群在创建节点时设置主机名(发生在 Rancher 之外),因此该字段不限制自定义集群的主机名长度。
截断集群中的主机名可提高与基于 Windows 的系统的兼容性。虽然 Kubernetes 允许最长的主机名长度为 63 个字符,但使用 NetBIOS 的系统将主机名限制为 15 个字符之内。
#### TLS 可选名称
在服务器 TLS 证书上添加其他主机名或 IPv4/IPv6 地址作为 Subject Alternative Name。
#### 授权集群端点
授权集群端点(ACE)可用于直接访问 Kubernetes API server,而无需通过 Rancher 进行通信。
有关授权集群端点的工作原理以及使用的原因,请参阅[架构介绍](../../../reference-guides/rancher-manager-architecture/communicating-with-downstream-user-clusters.md#4-授权集群端点)。
我们建议使用具有授权集群端点的负载均衡器。有关详细信息,请参阅[推荐的架构](../../rancher-manager-architecture/architecture-recommendations.md#授权集群端点架构)。
### 镜像仓库
选择要从中拉取 Rancher 镜像的镜像仓库。有关更多详细信息和配置选项,请参阅 [K3s 文档](https://rancher.com/docs/k3s/latest/en/installation/private-registry/)。
### 升级策略
#### controlplane 并发
选择可以同时升级多少个节点。可以是固定数字或百分比。
#### Worker 并发
选择可以同时升级多少个节点。可以是固定数字或百分比。
#### 清空节点(controlplane
在升级之前从节点中删除所有 pod 的选项。
#### 清空节点(worker 节点)
在升级之前从节点中删除所有 pod 的选项。
### 高级配置
为不同节点设置 kubelet 选项。有关可用选项,请参阅 [Kubernetes 文档](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/)。
## 集群配置文件
高级用户可以创建一个 K3s 配置文件,而不是使用 Rancher UI 表单来为集群选择 Kubernetes 选项。配置文件允许你设置 K3s 安装中可用的任何[选项](https://rancher.com/docs/k3s/latest/en/installation/install-options/)。
要直接从 Rancher UI 编辑 K3s 配置文件,单击**以 YAML 文件编辑**。
@@ -0,0 +1,15 @@
---
title: Rancher Server 配置
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/reference-guides/cluster-configuration/rancher-server-configuration"/>
</head>
- [RKE2 集群配置](rke2-cluster-configuration.md)
- [K3s 集群配置](k3s-cluster-configuration.md)
- [EKS 集群配置](eks-cluster-configuration.md)
- [AKS 集群配置](aks-cluster-configuration.md)
- [GKE 集群配置](gke-cluster-configuration/gke-cluster-configuration.md)
- [使用现有节点](use-existing-nodes/use-existing-nodes.md)
- [同步集群](sync-clusters.md)
@@ -0,0 +1,357 @@
---
title: RKE 集群配置参考
---
<EOLRKE1Warning />
Rancher 安装 Kubernetes 时,它使用 [RKE](../../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/launch-kubernetes-with-rancher.md) 或 [RKE2](https://docs.rke2.io/) 作为 Kubernetes 发行版。
本文介绍 Rancher 中可用于新的或现有的 RKE Kubernetes 集群的配置选项。
## 概述
你可以通过以下两种方式之一来配置 Kubernetes 选项:
- [Rancher UI](#rancher-ui-中的配置选项):使用 Rancher UI 来选择设置 Kubernetes 集群时常用的自定义选项。
- [集群配置文件](#rke-集群配置文件参考):高级用户可以创建一个 RKE 配置文件,而不是使用 Rancher UI 来为集群选择 Kubernetes 选项。配置文件可以让你使用 YAML 来指定 RKE 安装中可用的任何选项(除了 system_images 配置)。
RKE 集群配置选项嵌套在 `rancher_kubernetes_engine_config` 参数下。有关详细信息,请参阅[集群配置文件](#rke-集群配置文件参考)。
在 [RKE 启动的集群](../../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/launch-kubernetes-with-rancher.md)中,你可以编辑任何后续剩余的选项。
有关 RKE 配置文件语法的示例,请参阅 [RKE 文档](https://rancher.com/docs/rke/latest/en/example-yamls/)。
Rancher UI 中的表单不包括配置 RKE 的所有高级选项。有关 YAML 中 RKE Kubernetes 集群的可配置选项的完整参考,请参阅 [RKE 文档](https://rancher.com/docs/rke/latest/en/config-options/)。
## 在 Rancher UI 中使用表单编辑集群
要编辑你的集群:
1. 在左上角,单击 **☰ > 集群管理**。
1. 转到要配置的集群,然后单击 **⋮ > 编辑配置**。
## 使用 YAML 编辑集群
高级用户可以创建一个 RKE 配置文件,而不是使用 Rancher UI 来为集群选择 Kubernetes 选项。配置文件可以让你使用 YAML 来指定 RKE 安装中可用的任何选项(除了 system_images 配置)。
RKE 集群(也称为 RKE1 集群)的编辑方式与 RKE2 和 K3s 集群不同。
要直接从 Rancher UI 编辑 RKE 配置文件:
1. 点击 **☰ > 集群管理**。
1. 转到要配置的 RKE 集群。单击并单击 **⋮ > 编辑配置**。你将会转到 RKE 配置表单。请注意,由于集群配置在 Rancher 2.6 中发生了变更,**⋮ > 以 YAML 文件编辑**可用于配置 RKE2 集群,但不能用于编辑 RKE1 配置。
1. 在配置表单中,向下滚动并单击**以 YAML 文件编辑**。
1. 编辑 `rancher_kubernetes_engine_config` 参数下的 RKE 选项。
## Rancher UI 中的配置选项
:::tip
一些高级配置选项没有在 Rancher UI 表单中开放,但你可以通过在 YAML 中编辑 RKE 集群配置文件来启用这些选项。有关 YAML 中 RKE Kubernetes 集群的可配置选项的完整参考,请参阅 [RKE 文档](https://rancher.com/docs/rke/latest/en/config-options/)。
:::
### Kubernetes 版本
这指的是集群节点上安装的 Kubernetes 版本。Rancher 基于 [hyperkube](https://github.com/rancher/hyperkube) 打包了自己的 Kubernetes 版本。
有关更多详细信息,请参阅[升级 Kubernetes](../../../getting-started/installation-and-upgrade/upgrade-and-roll-back-kubernetes.md)。
### 网络提供商
这指的是集群使用的[网络提供商](https://kubernetes.io/docs/concepts/cluster-administration/networking/)。有关不同网络提供商的更多详细信息,请查看我们的[网络常见问题解答](../../../faq/container-network-interface-providers.md)。
:::caution
启动集群后,你无法更改网络提供商。由于 Kubernetes 不允许在网络提供商之间切换,因此,请谨慎选择要使用的网络提供商。使用网络提供商创建集群后,如果你需要更改网络提供商,你将需要拆除整个集群以及其中的所有应用。
:::
Rancher 与以下开箱即用的网络提供商兼容:
- [Canal](https://github.com/projectcalico/canal)
- [Flannel](https://github.com/coreos/flannel#flannel)
- [Calico](https://docs.projectcalico.org/v3.11/introduction/)
- [Weave](https://github.com/weaveworks/weave)
:::note Weave 注意事项:
选择 Weave 作为网络提供商时,Rancher 将通过生成随机密码来自动启用加密。如果你想手动指定密码,请参阅使用[配置文件](#rke-集群配置文件参考)和 [Weave 网络插件选项](https://rancher.com/docs/rke/latest/en/config-options/add-ons/network-plugins/#weave-network-plug-in-options)来配置集群。
:::
### 项目网络隔离
如果你的网络提供商允许项目网络隔离,你可以选择启用或禁用项目间的通信。
如果你使用支持执行 Kubernetes 网络策略的 RKE 网络插件(例如 Canal 或 Cisco ACI 插件),则可以使用项目网络隔离。
### Kubernetes 云提供商
你可以配置 [Kubernetes 云提供商](../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/set-up-cloud-providers.md)。如果你想在 Kubernetes 中使用动态配置的[卷和存储](../../../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/create-kubernetes-persistent-storage.md),你通常需要选择特定的云提供商。例如,如果你想使用 Amazon EBS,则需要选择 `aws` 云提供商。
:::note
如果你要使用的云提供商未作为选项列出,你需要使用[配置文件选项](#rke-集群配置文件参考)来配置云提供商。请参考 [RKE 云提供商文档](https://rancher.com/docs/rke/latest/en/config-options/cloud-providers/)来了解如何配置云提供商。
:::
### 私有镜像仓库
集群级别的私有镜像仓库配置仅能用于配置集群。
在 Rancher 中设置私有镜像仓库的主要方法有两种:通过[全局默认镜像仓库](../../../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/global-default-private-registry.md)中的**设置**选项卡设置全局默认镜像仓库,以及在集群级别设置的高级选项中设置私有镜像仓库。全局默认镜像仓库可以用于离线设置,不需要凭证的镜像仓库。而集群级私有镜像仓库用于所有需要凭证的私有镜像仓库。
如果你的私有镜像仓库需要凭证,为了将凭证传递给 Rancher,你需要编辑每个需要从仓库中拉取镜像的集群的集群选项。
私有镜像仓库的配置选项能让 Rancher 知道要从哪里拉取用于集群的[系统镜像](https://rancher.com/docs/rke/latest/en/config-options/system-images/)或[附加组件镜像](https://rancher.com/docs/rke/latest/en/config-options/add-ons/)。
- **系统镜像**是维护 Kubernetes 集群所需的组件。
- **附加组件**用于部署多个集群组件,包括网络插件、ingress controller、DNS 提供商或 metrics server。
有关为集群配置期间应用的组件设置私有镜像仓库的更多信息,请参阅[私有镜像仓库的 RKE 文档](https://rancher.com/docs/rke/latest/en/config-options/private-registries/)。
Rancher v2.6 引入了[为 RKE 集群配置 ECR 镜像仓库](https://rancher.com/docs/rke/latest/en/config-options/private-registries/#amazon-elastic-container-registry-ecr-private-registry-setup)的功能。
### 授权集群端点
授权集群端点(ACE)可用于直接访问 Kubernetes API server,而无需通过 Rancher 进行通信。
:::note
授权集群端点仅适用于 Rancher 启动的 Kubernetes 集群,即只适用于 Rancher [使用 RKE](../../../reference-guides/rancher-manager-architecture/communicating-with-downstream-user-clusters.md#配置-kubernetes-集群的工具) 来配置的集群。它不适用于托管在 Kubernetes 提供商中的集群,例如 Amazon 的 EKS。
:::
在 Rancher 启动的 Kubernetes 集群中,它默认启用,使用具有 `controlplane` 角色的节点的 IP 和默认的 Kubernetes 自签名证书。
有关授权集群端点的工作原理以及使用的原因,请参阅[架构介绍](../../../reference-guides/rancher-manager-architecture/communicating-with-downstream-user-clusters.md#4-授权集群端点)。
我们建议使用具有授权集群端点的负载均衡器。有关详细信息,请参阅[推荐的架构](../../rancher-manager-architecture/architecture-recommendations.md#授权集群端点架构)。
### 节点池
有关使用 Rancher UI 在 RKE 集群中设置节点池的信息,请参阅[此页面](../../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/use-new-nodes-in-an-infra-provider.md)。
### NGINX Ingress
如果你想使用高可用性配置来发布应用,并且你使用没有原生负载均衡功能的云提供商来托管主机,请启用此选项以在集群中使用 NGINX Ingress。
### Metrics Server 监控
这是启用或禁用 [Metrics Server](https://rancher.com/docs/rke/latest/en/config-options/add-ons/metrics-server/) 的选项。
每个能够使用 RKE 启动集群的云提供商都可以收集指标并监控你的集群节点。如果启用此选项,你可以从你的云提供商门户查看你的节点指标。
### 节点上的 Docker 版本
表示是否允许节点运行 Rancher 不正式支持的 Docker 版本。
如果你选择使用支持的 Docker 版本,Rancher 会禁止 pod 运行在安装了不支持的 Docker 版本的节点上。
如需了解各个 Rancher 版本通过了哪些 Docker 版本测试,请参见[支持和维护条款](https://rancher.com/support-maintenance-terms/)。
### Docker 根目录
如果要添加到集群的节点为 Docker 配置了非默认 Docker 根目录(默认为 `/var/lib/docker`),请在此选项中指定正确的 Docker 根目录。
### 默认 Pod 安全策略
如果你启用了 **Pod 安全策略支持**,请使用此下拉菜单选择应用于集群的 pod 安全策略。
### 节点端口范围
更改可用于 [NodePort 服务](https://kubernetes.io/docs/concepts/services-networking/service/#nodeport)的端口范围的选项。默认为 `30000-32767`
### 定期 etcd 快照
启用或禁用[定期 etcd 快照](https://rancher.com/docs/rke/latest/en/etcd-snapshots/#etcd-recurring-snapshots)的选项。
### Agent 环境变量
为 [rancher agent](../../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/about-rancher-agents.md) 设置环境变量的选项。你可以使用键值对设置环境变量。如果 Rancher Agent 需要使用代理与 Rancher Server 通信,则可以使用 Agent 环境变量设置 `HTTP_PROXY``HTTPS_PROXY``NO_PROXY` 环境变量。
### 更新 ingress-nginx
使用 Kubernetes 1.16 之前版本创建的集群将具有 `OnDelete``ingress-nginx` `updateStrategy`。使用 Kubernetes 1.16 或更高版本创建的集群将具有 `RollingUpdate`
如果 `ingress-nginx``updateStrategy``OnDelete`,则需要删除这些 pod 以获得 deployment 正确的版本。
### Cluster Agent 配置和 Fleet Agent 配置
你可以为 Cluster Agent 和集群的 Fleet Agent 配置调度字段和资源限制。你可以使用这些字段来自定义容忍度、亲和性规则和资源要求。其他容忍度会被尾附到默认容忍度和 Control Plane 节点污点的列表中。如果你定义了自定义亲和性规则,它们将覆盖全局默认亲和性设置。定义资源要求会在以前没有的地方设置请求或限制。
:::note
有了这个选项,你可以覆盖或删除运行集群所需的规则。我们强烈建议你不要删除或覆盖这些规则和其他亲和性规则,因为这可能会导致不必要的影响:
- `affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution` 用于 `cattle-cluster-agent`
- `cluster-agent-default-affinity` 用于 `cattle-cluster-agent`
- `fleet-agent-default-affinity` 用于 `fleet-agent`
:::
如果将 Rancher 降级到 v2.7.4 或更低版本,你的更改将丢失,而且 Agent 将在没有你的自定义设置的情况下重新部署。重新部署时,Fleet Agent 将回退到使用内置默认值。如果降级期间 Fleet 版本没有更改,则不会立即重新部署。
## RKE 集群配置文件参考
高级用户可以创建一个 RKE 配置文件,而不是使用 Rancher UI 来为集群选择 Kubernetes 选项。配置文件可以让你在 RKE 安装中设置任何[可用选项](https://rancher.com/docs/rke/latest/en/config-options/)`system_images` 配置除外)。使用 Rancher UI 或 API 创建集群时,不支持 `system_images` 选项。
有关 YAML 中 RKE Kubernetes 集群的可配置选项的完整参考,请参阅 [RKE 文档](https://rancher.com/docs/rke/latest/en/config-options/)。
### Rancher 中的配置文件结构
RKERancher Kubernetes Engine)是 Rancher 用来配置 Kubernetes 集群的工具。过去,Rancher 的集群配置文件与 [RKE 配置文件](https://rancher.com/docs/rke/latest/en/example-yamls/)的结构是一致的。但由于 Rancher 文件结构发生了变化,因此在 Rancher 中,RKE 集群配置项与非 RKE 配置项是分开的。所以,你的集群配置需要嵌套在集群配置文件中的 `rancher_kubernetes_engine_config` 参数下。使用早期版本的 Rancher 创建的集群配置文件需要针对这种格式进行更新。以下是一个集群配置文件示例:
<details id="v2.3.0-cluster-config-file">
<summary>集群配置文件示例</summary>
```yaml
#
# Cluster Config
#
docker_root_dir: /var/lib/docker
enable_cluster_alerting: false
enable_cluster_monitoring: false
enable_network_policy: false
local_cluster_auth_endpoint:
enabled: true
#
# Rancher Config
#
rancher_kubernetes_engine_config: # Your RKE template config goes here.
addon_job_timeout: 30
authentication:
strategy: x509
ignore_docker_version: true
#
# # 目前仅支持 Nginx ingress provider
# # 要禁用 Ingress controller,设置 `provider: none`
# # 要在指定节点上禁用 Ingress,使用 node_selector,例如:
# provider: nginx
# node_selector:
# app: ingress
#
ingress:
provider: nginx
kubernetes_version: v1.15.3-rancher3-1
monitoring:
provider: metrics-server
#
# If you are using calico on AWS
#
# network:
# plugin: calico
# calico_network_provider:
# cloud_provider: aws
#
# # To specify flannel interface
#
# network:
# plugin: flannel
# flannel_network_provider:
# iface: eth1
#
# # To specify flannel interface for canal plugin
#
# network:
# plugin: canal
# canal_network_provider:
# iface: eth1
#
network:
options:
flannel_backend_type: vxlan
plugin: canal
#
# services:
# kube-api:
# service_cluster_ip_range: 10.43.0.0/16
# kube-controller:
# cluster_cidr: 10.42.0.0/16
# service_cluster_ip_range: 10.43.0.0/16
# kubelet:
# cluster_domain: cluster.local
# cluster_dns_server: 10.43.0.10
#
services:
etcd:
backup_config:
enabled: true
interval_hours: 12
retention: 6
safe_timestamp: false
creation: 12h
extra_args:
election-timeout: 5000
heartbeat-interval: 500
gid: 0
retention: 72h
snapshot: false
uid: 0
kube_api:
always_pull_images: false
pod_security_policy: false
service_node_port_range: 30000-32767
ssh_agent_auth: false
windows_prefered_cluster: false
```
</details>
### 默认 DNS 提供商
下表显示了默认部署的 DNS 提供商。有关如何配置不同 DNS 提供商的更多信息,请参阅 [DNS 提供商相关的 RKE 文档](https://rancher.com/docs/rke/latest/en/config-options/add-ons/dns/)。CoreDNS 只能在 Kubernetes v1.12.0 及更高版本上使用。
| Rancher 版本 | Kubernetes 版本 | 默认 DNS 提供商 |
|-------------|--------------------|----------------------|
| v2.2.5 及更高版本 | v1.14.0 及更高版本 | CoreDNS |
| v2.2.5 及更高版本 | v1.13.x 及更低版本 | kube-dns |
| v2.2.4 及更低版本 | 任意 | kube-dns |
## YAML 中的 Rancher 特定参数
除了 RKE 配置文件选项外,还有可以在配置文件 (YAML) 中配置的 Rancher 特定设置如下。
### docker_root_dir
请参阅 [Docker 根目录](#docker-根目录)。
### enable_cluster_monitoring
启用或禁用[集群监控](../../../integrations-in-rancher/monitoring-and-alerting/monitoring-and-alerting.md)的选项。
### enable_network_policy
启用或禁用项目网络隔离的选项。
如果你使用支持执行 Kubernetes 网络策略的 RKE 网络插件(例如 Canal 或 Cisco ACI 插件),则可以使用项目网络隔离。
### local_cluster_auth_endpoint
请参阅[授权集群端点](#授权集群端点)。
示例:
```yaml
local_cluster_auth_endpoint:
enabled: true
fqdn: "FQDN"
ca_certs: |-
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
```
### 自定义网络插件
你可以使用 RKE 的[用户定义的附加组件功能](https://rancher.com/docs/rke/latest/en/config-options/add-ons/user-defined-add-ons/)来添加自定义网络插件。部署 Kubernetes 集群之后,你可以定义要部署的任何附加组件。
有两种方法可以指定附加组件:
- [内嵌附加组件](https://rancher.com/docs/rke/latest/en/config-options/add-ons/user-defined-add-ons/#in-line-add-ons)
- [为附加组件引用 YAML 文件](https://rancher.com/docs/rke/latest/en/config-options/add-ons/user-defined-add-ons/#referencing-yaml-files-for-add-ons)
有关如何通过编辑 `cluster.yml` 来配置自定义网络插件的示例,请参阅 [RKE 文档](https://rancher.com/docs/rke/latest/en/config-options/add-ons/network-plugins/custom-network-plugin-example)。
@@ -0,0 +1,356 @@
---
title: RKE2 集群配置参考
---
本文介绍 Rancher 中可用于新的或现有的 RKE2 Kubernetes 集群的配置选项。
## 概述
你可以通过以下两种方式之一来配置 Kubernetes 选项:
- [Rancher UI](#rancher-ui-中的配置选项):使用 Rancher UI 来选择设置 Kubernetes 集群时常用的自定义选项。
- [集群配置文件](#集群配置文件参考):高级用户可以创建一个 RKE2 配置文件,而不是使用 Rancher UI 来为集群选择 Kubernetes 选项。配置文件让你能设置更多可用于 RKE2 的其他[安装选项](https://docs.rke2.io/install/configuration)。
## 在 Rancher UI 中使用表单编辑集群
要编辑你的集群:
1. 在左上角,单击 **☰ > 集群管理**。
1. 转到要配置的集群,然后单击 **⋮ > 编辑配置**。
## 使用 YAML 编辑集群
高级用户可以创建一个 RKE2 配置文件,而不是使用 Rancher UI 来为集群选择 Kubernetes 选项。配置文件可以让你使用 YAML 来指定 RKE2 安装中可用的任何选项。
要直接从 Rancher UI 中编辑 RKE2 配置文件:
1. 点击 **☰ > 集群管理**。
1. 转到你要配置的集群,然后单击 **⋮ > 以 YAML 文件编辑**。
1. 编辑 `rkeConfig` 参数下的 RKE 选项。
## Rancher UI 中的配置选项
:::tip
一些高级配置选项没有在 Rancher UI 表单中开放,但你可以通过在 YAML 中编辑 RKE2 集群配置文件来启用这些选项。有关 YAML 中 RKE2 Kubernetes 集群的可配置选项的完整参考,请参阅 [RKE2 文档](https://docs.rke2.io/install/configuration)。
:::
## 主机池
本小节介绍了通用的主机池配置。对于针对特定基础设施提供商的配置,请参阅以下页面:
- [Azure](../downstream-cluster-configuration/machine-configuration/azure.md)
- [DigitalOcean](../downstream-cluster-configuration/machine-configuration/digitalocean.md)
- [EC2](../downstream-cluster-configuration/machine-configuration/amazon-ec2.md)
### 池名称
主机池的名称。
### 主机数量
池中的主机数。
### 角色
将 etcd、controlplane 和 worker 角色分配给节点的选项。
### 高级配置
#### 自动替换
如果节点无法访问的持续时间达到该值,则会被自动删除和替换。
#### 删除前清空
通过在删除节点之前驱逐所有 pod 来清空节点。
#### Kubernetes 节点标签
将[标签](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/)(label)添加到节点,让对象选择更加简便。
有关标签语法的详细信息,请参阅 [Kubernetes 文档](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set)。
#### 污点
将[污点](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)(taint)添加到节点,防止 pod 被调度或在节点上执行(除非 pod 具有匹配的容忍度)。
## 集群配置
### 基本信息
#### Kubernetes 版本
这指的是集群节点上安装的 Kubernetes 版本。Rancher 基于 [hyperkube](https://github.com/rancher/hyperkube) 打包了自己的 Kubernetes 版本。
有关更多详细信息,请参阅[升级 Kubernetes](../../../getting-started/installation-and-upgrade/upgrade-and-roll-back-kubernetes.md)。
#### 容器网络提供商
这指的是集群使用的[网络提供商](https://kubernetes.io/docs/concepts/cluster-administration/networking/)。
:::caution
启动集群后,你无法更改网络提供商。由于 Kubernetes 不允许在网络提供商之间切换,因此,请谨慎选择要使用的网络提供商。使用网络提供商创建集群后,如果你需要更改网络提供商,你将需要拆除整个集群以及其中的所有应用。
:::
Rancher 与以下开箱即用的网络提供商兼容:
- [Canal](https://github.com/projectcalico/canal)
- [Cilium](https://cilium.io/)\*
- [Calico](https://docs.projectcalico.org/v3.11/introduction/)
- [Multus](https://github.com/k8snetworkplumbingwg/multus-cni)
\* 在 [Cilium CNI](../../../faq/container-network-interface-providers.md#cilium) 中使用[项目网络隔离](#项目网络隔离)时,你可以开启跨节点入口路由。详情请参见 [CNI 提供商文档](../../../faq/container-network-interface-providers.md#cilium-中跨节点的-ingress-路由)。
有关不同网络提供商以及如何配置它们的更多详细信息,请查阅 [RKE2 文档](https://docs.rke2.io/install/network_options)。
##### 双栈网络
所有 CNI 网络插件都支持[双栈](https://docs.rke2.io/install/network_options#dual-stack-configuration)网络。要在双栈模式下配置 RKE2,请为你的[集群 CIDR](#集群-cidr) 和/或 [Service CIDR](#service-cidr) 设置有效的 IPv4/IPv6 CIDR。
###### 额外配置
使用 `cilium``multus,cilium` 作为容器网络接口提供商时,请确保**启用 IPv6 支持**选项。
#### 云提供商
你可以配置 [Kubernetes 云提供商](../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/set-up-cloud-providers.md)。如果你想在 Kubernetes 中使用动态配置的[卷和存储](../../../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/create-kubernetes-persistent-storage.md),你通常需要选择特定的云提供商。例如,如果你想使用 Amazon EBS,则需要选择 `aws` 云提供商。
:::note
如果你要使用的云提供商未作为选项列出,你需要使用[配置文件选项](#集群配置文件参考)来配置云提供商。请参考[本文档](https://rancher.com/docs/rke/latest/en/config-options/cloud-providers/)来了解如何配置云提供商。
:::
#### Worker CIS 配置文件
选择一个 [CIS benchmark](../../../how-to-guides/advanced-user-guides/cis-scan-guides/cis-scan-guides.md) 来验证系统配置。
#### 项目网络隔离
如果你的网络提供商允许项目网络隔离,你可以选择启用或禁用项目间的通信。
如果你使用支持执行 Kubernetes 网络策略的 RKE2 网络插件(例如 Canal),则可以使用项目网络隔离。
#### CoreDNS
默认情况下,[CoreDNS](https://coredns.io/) 会安装为默认 DNS 提供程序。如果未安装 CoreDNS,则必须自己安装备用 DNS 提供程序。有关其他 CoreDNS 配置,请参阅 [RKE2 文档](https://docs.rke2.io/networking/networking_services#coredns)。
#### NGINX Ingress
如果你想使用高可用性配置来发布应用,并且你使用没有原生负载均衡功能的云提供商来托管主机,请启用此选项以在集群中使用 NGINX Ingress。有关其他配置选项,请参阅 [RKE2 文档](https://docs.rke2.io/networking/networking_services#nginx-ingress-controller)。
有关其他配置选项,请参阅 [RKE2 文档](https://docs.rke2.io/networking/networking_services#nginx-ingress-controller)。
#### Metrics Server
这是启用或禁用 [Metrics Server](https://rancher.com/docs/rke/latest/en/config-options/add-ons/metrics-server/) 的选项。
每个能够使用 RKE2 启动集群的云提供商都可以收集指标并监控你的集群节点。如果启用此选项,你可以从你的云提供商门户查看你的节点指标。
### 附加配置
集群启动时将应用的其他 Kubernetes 清单,会作为[附加组件](https://kubernetes.io/docs/concepts/cluster-administration/addons/)来管理。有关详细信息,请参阅 [RKE2 文档](https://docs.rke2.io/helm#automatically-deploying-manifests-and-helm-charts)。
### Agent 环境变量
为 [Rancher agent](../../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/about-rancher-agents.md) 设置环境变量的选项。你可以使用键值对设置环境变量。有关详细信息,请参阅 [RKE2 文档](https://docs.rke2.io/reference/linux_agent_config)。
### etcd
#### 自动快照
启用或禁用定期 etcd 快照的选项。如果启用,用户可以配置快照的频率。有关详细信息,请参阅 [RKE2 文档](https://docs.rke2.io/datastore/backup_restore#creating-snapshots)。请注意,如果使用 RKE2,快照会存储在每个 etcd 节点上,这与 RKE1 不同(RKE1 每个集群只存储一个快照)。
#### 指标
选择向公众公开或仅在集群内公开 etcd 指标的选项。
### 网络
#### 集群 CIDR
用于 pod IP 的 IPv4 和/或 IPv6 网络 CIDR(默认:10.42.0.0/16)。
##### 双栈网络
要配置[双栈](https://docs.rke2.io/install/network_options#dual-stack-configuration)模式,请输入有效的 IPv4/IPv6 CIDR。例如 `10.42.0.0/16,2001:cafe:42:0::/56`
使用 `cilium``multus,cilium` 作为[容器网络](#容器网络提供商)接口提供商时,你需要进行[附加配置](#额外配置)。
#### Service CIDR
用于 Service IP 的 IPv4/IPv6 网络 CIDR(默认:10.43.0.0/16)。
##### 双栈网络
要配置[双栈](https://docs.rke2.io/install/network_options#dual-stack-configuration)模式,请输入有效的 IPv4/IPv6 CIDR。例如 `10.42.0.0/16,2001:cafe:42:0::/56`
使用 `cilium``multus,cilium` 作为[容器网络](#容器网络提供商)接口提供商时,你需要进行[附加配置](#额外配置)。
#### 集群 DNS
用于 coredns 服务的 IPv4 集群 IP。应该在你的 service-cidr 范围内(默认:10.43.0.10)。
#### 集群域名
选择集群的域。默认值为 `cluster.local`
#### NodePort 服务端口范围
更改可用于 [NodePort 服务](https://kubernetes.io/docs/concepts/services-networking/service/#nodeport)的端口范围的选项。默认值为 `30000-32767`
#### 截断主机名
将主机名截断为 15 个或更少字符。该字段只能在集群初始创建时设置。创建集群后,你无法再启用或禁用 15 个字符的限制。
此设置仅影响配置了机器的集群。由于自定义集群在创建节点时设置主机名(发生在 Rancher 之外),因此该字段不限制自定义集群的主机名长度。
截断集群中的主机名可提高与基于 Windows 的系统的兼容性。虽然 Kubernetes 允许最长的主机名长度为 63 个字符,但使用 NetBIOS 的系统将主机名限制为 15 个字符之内。
#### TLS 可选名称
在服务器 TLS 证书上添加其他主机名或 IPv4/IPv6 地址作为 Subject Alternative Name。
#### 授权集群端点
授权集群端点(ACE)可用于直接访问 Kubernetes API server,而无需通过 Rancher 进行通信。
在 Rancher 启动的 Kubernetes 集群中,它默认启用,使用具有 `controlplane` 角色的节点的 IP 和默认的 Kubernetes 自签名证书。
有关授权集群端点的工作原理以及使用的原因,请参阅[架构介绍](../../../reference-guides/rancher-manager-architecture/communicating-with-downstream-user-clusters.md#4-授权集群端点)。
我们建议使用具有授权集群端点的负载均衡器。有关详细信息,请参阅[推荐的架构](../../rancher-manager-architecture/architecture-recommendations.md#授权集群端点架构)。
### 镜像仓库
选择要从中拉取 Rancher 镜像的镜像仓库。有关更多详细信息和配置选项,请参阅 [RKE2 文档](https://docs.rke2.io/install/private_registry)。
### 升级策略
#### controlplane 并发
选择可以同时升级多少个节点。可以是固定数字或百分比。
#### Worker 并发
选择可以同时升级多少个节点。可以是固定数字或百分比。
#### 清空节点(controlplane
在升级之前从节点中删除所有 pod 的选项。
#### 清空节点(worker 节点)
在升级之前从节点中删除所有 pod 的选项。
### 高级配置
为不同节点设置 kubelet 选项。有关可用选项,请参阅 [Kubernetes 文档](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/)。
## 集群配置文件参考
高级用户可以创建一个配置文件,而不是使用 Rancher UI 来为集群选择 Kubernetes 选项。配置文件允许你为 RKE2 设置[可用的选项](https://docs.rke2.io/install/configuration),其中包括已经在 [Rancher UI 配置选项](#rancher-ui-中的配置选项)中列出的选项以及 Rancher 特定的参数。
<details>
<summary>
<b>集群配置文件片段示例</b>
</summary>
```yaml
spec:
cloudCredentialSecretName: cattle-global-data:cc-s879v
kubernetesVersion: v1.23.6+rke2r2
localClusterAuthEndpoint: {}
rkeConfig:
chartValues:
rke2-calico: {}
etcd:
snapshotRetention: 5
snapshotScheduleCron: 0 */5 * * *
machineGlobalConfig:
cni: calico
disable-kube-proxy: false
etcd-expose-metrics: false
profile: null
machinePools:
- controlPlaneRole: true
etcdRole: true
machineConfigRef:
kind: Amazonec2Config
name: nc-test-pool1-pwl5h
name: pool1
quantity: 1
unhealthyNodeTimeout: 0s
workerRole: true
machineSelectorConfig:
- config:
protect-kernel-defaults: false
registries: {}
upgradeStrategy:
controlPlaneConcurrency: "1"
controlPlaneDrainOptions:
deleteEmptyDirData: true
enabled: true
gracePeriod: -1
ignoreDaemonSets: true
timeout: 120
workerConcurrency: "1"
workerDrainOptions:
deleteEmptyDirData: true
enabled: true
gracePeriod: -1
ignoreDaemonSets: true
timeout: 120
```
</details>
### chartValues
此选项用于为 RKE2/K3s 安装的 System Chart 指定值。
示例:
```yaml
chartValues:
chart-name:
key: value
```
### machineGlobalConfig
RKE2/K3s 配置嵌套在 `machineGlobalConfig` 参数下。在这里所做的任何配置更改都将应用到每个节点。你可以在此处应用[RKE2 的独立版本](https://docs.rke2.io/reference/server_config)中可用的配置选项。
示例:
```yaml
machineGlobalConfig:
etcd-arg:
- key1=value1
- key2=value2
```
### machineSelectorConfig
此参数与 [`machineGlobalConfig`](#machineglobalconfig) 相同,只是可以在配置中指定 [label](#kubernetes-节点标签) 选择器。该配置仅应用于与标签选择器匹配的节点。
允许多个 `config` 条目,可以为每个条目指定各自的 `machineLabelSelector`。用户可以指定 `matchExpressions``matchLabels`、指定二者或都不指定。如果你省略了 `machineLabelSelector`,则与将 config 放入 `machineGlobalConfig` 的效果相同。
示例:
```yaml
machineSelectorConfig
- config:
config-key: config-value
machineLabelSelector:
matchExpressions:
- key: example-key
operator: string # 有效的运算符:In、NotIn、Exists 和 DoesNotExist
values:
- example-value1
- example-value2
matchLabels:
key1: value1
key2: value2
```
@@ -0,0 +1,41 @@
---
title: 同步
---
同步允许 Rancher 更新集群值,以便与托管在 AKS、EKS 或 GKE 中的集群对象保持同步。这使得 Rancher 以外的来源能够获取托管集群的状态。这是 UI 中显示的内容。
:::caution
如果你同时处理来自另一个来源的更新,你可能会不小心覆盖一个来源的状态。如果你在完成一个来源的更新后 5 分钟内处理另一个来源的更新,也可能会发生这种情况。
:::
## 工作原理
要理解同步是如何工作的,则必须理解 Rancher Cluster 对象上的两个字段:
1. 集群的 config 对象,位于集群的规范上:
* 对于 AKS,该字段称为 AKSConfig
* 对于 EKS,该字段称为 EKSConfig
* 对于 GKE,该字段称为 GKEConfig
2. UpstreamSpec 对象
* 对于 AKS,它位于群集状态的 AKSStatus 字段中。
* 对于 EKS,它位于集群状态的 EKSStatus 字段中。
* 对于 GKE,它位于集群状态的 GKEStatus 字段中。
定义这些对象的结构类型可以在它们对应的 operator 项目中找到:
* [aks-operator](https://github.com/rancher/aks-operator/blob/master/pkg/apis/aks.cattle.io/v1/types.go)
* [eks-operator](https://github.com/rancher/eks-operator/blob/master/pkg/apis/eks.cattle.io/v1/types.go)
* [gke-operator](https://github.com/rancher/gke-operator/blob/master/pkg/apis/gke.cattle.io/v1/types.go)
除集群名称、位置(区域或地区)、导入和云凭证引用外,所有字段均可为空。
AKSConfig、EKSConfig 或 GKEConfig 表示所需的状态。零值会被忽略。配置对象中非零的字段可以被认为是“管理的”。在 Rancher 中创建集群时,所有字段都是非零的,因此都是“管理”的。在把一个已存在的集群注册到 Rancher 时,所有可为空字段都是 nil 并且不是“管理”的。一旦 Rancher 更改了这些字段的值,这些字段就会被管理。
UpstreamSpec 代表集群在托管的 Kubernetes 提供商中的情况。它每 5 分钟刷新一次。刷新 UpstreamSpec 后,Rancher 会检查集群是否正在进行更新。如果它正在更新,则不做任何进一步处理。如果它目前没有更新,AKSConfig、EKSConfig 或 GKEConfig 上的任何 "管理" 字段都会被最近更新的 UpstreamSpec 上的相应值覆盖。
有效的期望状态可以被认为是 UpstreamSpec,加上 AKSConfig、EKSConfig 或 GKEConfig 中的所有非零字段。这是 UI 中显示的内容。
如果 Rancher 和另一个来源试图在同一时间或在更新完成后的 5 分钟尝试更新集群,任何管理字段都可能陷入竞争状态。以 EKS 为例,集群可能将 PrivateAccess 作为管理字段。如果 PrivateAccess 为 false,在 11:01 在 EKS 控制台中启用,然后 Rancher 在 11:05 之前更新标签,那么该值很可能被覆盖。如果在集群处理更新时更新了标签,也会发生这种情况。如果集群已注册并且 PrivateAccess 字段为 nil,则不应发生此示例中描述的问题。
@@ -0,0 +1,53 @@
---
title: Rancher Agent 选项
---
Rancher 在每个节点上部署一个 Agent 来与节点通信。本文描述了可以传递给 Agent 的选项。要使用这些选项,你需要[使用自定义节点创建集群](./use-existing-nodes.md),并在添加节点时将选项添加到生成的 `docker run` 命令。
有关 Rancher 如何使用 Node Agent 与下游集群通信的概述,请参阅[产品架构](../../../rancher-manager-architecture/communicating-with-downstream-user-clusters.md#3-node-agents)。
## 通用选项
| 参数 | 环境变量 | 描述 |
| ---------- | -------------------- | ----------- |
| `--server` | `CATTLE_SERVER` | 已配置的 Rancher `server-url`,Agent 将通过这个地址连接 Server。 |
| `--token` | `CATTLE_TOKEN` | 在 Rancher 中注册节点所需的 Token。 |
| `--ca-checksum` | `CATTLE_CA_CHECKSUM` | 使用已配置的 Rancher `cacerts` 进行 SHA256 校验和验证。 |
| `--node-name` | `CATTLE_NODE_NAME` | 覆盖用于注册节点的主机名(默认为 `hostname -s`)。 |
| `--label` | `CATTLE_NODE_LABEL` | 向节点添加节点标签。对于多个标签,请传递额外的 `--label` 选项。(`--label key=value`) |
| `--taints` | `CATTLE_NODE_TAINTS` | 将节点污点添加到节点。对于多个污点,请传递额外的 `--taints` 选项。(`--taints key=value:effect`) |
## 角色选项
| 参数 | 环境变量 | 描述 |
| ---------- | -------------------- | ----------- |
| `--all-roles` | `ALL=true` | 将所有角色(`etcd``controlplane``worker`)应用到节点。 |
| `--etcd` | `ETCD=true` | 将角色 `etcd` 应用到节点。 |
| `--controlplane` | `CONTROL=true` | 将角色 `controlplane` 应用到节点。 |
| `--worker` | `WORKER=true` | 将角色 `worker` 应用到节点。 |
## IP 地址选项
| 参数 | 环境变量 | 描述 |
| ---------- | -------------------- | ----------- |
| `--address` | `CATTLE_ADDRESS` | 节点将注册的 IP 地址(默认为用于连接 `8.8.8.8`的 IP)。 |
| `--internal-address` | `CATTLE_INTERNAL_ADDRESS` | 私有网络上用于主机间通信的 IP 地址。 |
### 动态 IP 地址选项
出于自动化目的,你不能在命令中使用特定的 IP 地址,因为它必须是通用的才能用于每个节点。为此,我们提供了动态 IP 地址的选项。它们用作现有 IP 地址选项的值。支持 `--address``--internal-address`
| 值 | 示例 | 描述 |
| ---------- | -------------------- | ----------- |
| 接口名称 | `--address eth0` | 将从给定的接口中检索第一个配置的 IP 地址。 |
| `ipify` | `--address ipify` | 将使用从 `https://api.ipify.org` 检索到的值。 |
| `awslocal` | `--address awslocal` | 将使用从 `http://169.254.169.254/latest/meta-data/local-ipv4` 检索到的值。 |
| `awspublic` | `--address awspublic` | 将使用从 `http://169.254.169.254/latest/meta-data/public-ipv4` 检索到的值。 |
| `doprivate` | `--address doprivate` | 将使用从 `http://169.254.169.254/metadata/v1/interfaces/private/0/ipv4/address` 检索到的值。 |
| `dopublic` | `--address dopublic` | 将使用从 `http://169.254.169.254/metadata/v1/interfaces/public/0/ipv4/address` 检索到的值。 |
| `azprivate` | `--address azprivate` | 将使用从 `http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/privateIpAddress?api-version=2017-08-01&format=text` 检索到的值。 |
| `azpublic` | `--address azpublic` | 将使用从 `http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-08-01&format=text` 检索到的值。 |
| `gceinternal` | `--address gceinternal` | 将使用从 `http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip` 检索到的值。 |
| `gceexternal` | `--address gceexternal` | 将使用从 `http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip` 检索到的值。 |
| `packetlocal` | `--address packetlocal` | 将使用从 `https://metadata.packet.net/2009-04-04/meta-data/local-ipv4` 检索到的值。 |
| `packetpublic` | `--address packetlocal` | 将使用从 `https://metadata.packet.net/2009-04-04/meta-data/public-ipv4` 检索到的值。 |
@@ -0,0 +1,141 @@
---
title: 在现有自定义节点上启动 Kubernetes
description: 要创建具有自定义节点的集群,你需要访问集群中的服务器,并根据 Rancher 的要求配置服务器。
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/reference-guides/cluster-configuration/rancher-server-configuration/use-existing-nodes"/>
</head>
创建自定义集群时,Rancher 使用 RKERancher Kubernetes Engine)在本地裸机服务器、本地虚拟机或云服务器节点中创建 Kubernetes 集群。
要使用此选项,你需要访问要在 Kubernetes 集群中使用的服务器。请根据[要求](../../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters.md)配置每台服务器,其中包括硬件要求和 Docker 要求。在每台服务器上安装 Docker 后,你还需要在每台服务器上运行 Rancher UI 中提供的命令,从而将每台服务器转换为 Kubernetes 节点。
本节介绍如何设置自定义集群。
## 使用自定义节点创建集群
:::note 使用 Windows 主机作为 Kubernetes Worker 节点?
在开始之前,请参阅[配置 Windows 自定义集群](../../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/use-windows-clusters/use-windows-clusters.md)。
:::
### 1. 配置 Linux 主机
你可以通过配置 Linux 主机,来创建自定义集群。你的主机可以是:
- 云虚拟机
- 本地虚拟机
- 裸机服务器
如果要重复使用之前的自定义集群中的节点,请在复用之前[清理节点](../../../../how-to-guides/new-user-guides/manage-clusters/clean-cluster-nodes.md)。如果你重复使用尚未清理的节点,则集群配置可能会失败。
根据[安装要求](../../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters.md)和[生产就绪集群的检查清单](../../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/checklist-for-production-ready-clusters/checklist-for-production-ready-clusters.md)配置主机。
如果你使用 Amazon EC2 作为主机,并希望使用[双栈 (dual-stack)](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) 功能,则需要满足配置主机的其他[要求](https://rancher.com/docs/rke//latest/en/config-options/dual-stack#requirements)。
### 2. 创建自定义集群
1. 点击 **☰ > 集群管理**。
1. 在**集群**页面上,单击**创建**。
1. 单击**自定义**。
1. 输入**集群名称**。
1. 在**集群配置**中,选择 Kubernetes 版本、要使用的网络提供商,以及是否启用项目网络隔离。要查看更多集群选项,请单击**显示高级选项**。
:::note 使用 Windows 主机作为 Kubernetes Worker 节点?
- 请参阅[启用 Windows 支持选项](../../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/use-windows-clusters/use-windows-clusters.md)。
- 支持 Windows 集群的唯一网络插件是 Flannel。
:::
:::note Amazon EC2 上的双栈:
如果你使用 Amazon EC2 作为主机,并希望使用[双栈 (dual-stack)](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) 功能,则需要满足配置 RKE 的其他[要求](https://rancher.com/docs/rke//latest/en/config-options/dual-stack#requirements)。
:::
6. 点击**下一步**。
4. 使用**成员角色**为集群配置用户授权。点击**添加成员**添加可以访问集群的用户。使用**角色**下拉菜单为每个用户设置权限。
7. 从**节点角色**中,选择要由集群节点充当的角色。你必须为 `etcd``worker``controlplane` 角色配置至少一个节点。自定义集群需要所有三个角色才能完成配置。有关角色的详细信息,请参阅[本节](../../../kubernetes-concepts.md#kubernetes-集群中节点的角色)。
:::note
- 使用 Windows 主机作为 Kubernetes Worker 节点?请参阅[本节](../../../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/use-windows-clusters/use-windows-clusters.md)。
- 裸机服务器提醒:如果你想将裸机服务器专用于每个角色,则必须为每个角色配置一个裸机服务器(即配置多个裸机服务器)。
:::
8. **可选**:点击**[显示高级选项](../../../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/about-rancher-agents.md)**来指定注册节点时使用的 IP 地址,覆盖节点的主机名,或将[标签](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/)或[污点](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)添加到节点。
9. 将屏幕上显示的命令复制到剪贴板。
10. 使用你惯用的 shell(例如 PuTTy 或远程终端)登录到你的 Linux 主机。粘贴剪贴板的命令并运行。
:::note
如果要将特定主机专用于特定节点角色,请重复步骤 7-10。根据需要多次重复这些步骤。
:::
11. 在 Linux 主机上运行完命令后,单击**完成**。
**结果:**
集群已被创建,集群的状态是**配置中**。Rancher 已在启动你的集群。
当集群状态变为 **Active** 后,你可访问集群。
**Active** 状态的集群会分配到两个项目:
- `Default`:包含 `default` 命名空间
- `System`:包含 `cattle-system``ingress-nginx``kube-public``kube-system` 命名空间。
### 3. 仅限亚马逊:标签资源
如果你已将集群配置为使用 Amazon 作为**云提供商**,请使用集群 ID 标记你的 AWS 资源。
[Amazon 文档:标记你的 Amazon EC2 资源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)
:::note
你可以使用 Amazon EC2 实例,而无需在 Kubernetes 中配置云提供商。如果你想使用特定的 Kubernetes 云提供商功能,配置云提供商即可。如需更多信息,请参阅 [Kubernetes 云提供商](https://github.com/kubernetes/website/blob/release-1.18/content/en/docs/concepts/cluster-administration/cloud-providers.md)。
:::
以下资源需要使用 `ClusterID` 进行标记:
- **Nodes**Rancher 中添加的所有主机。
- **Subnet**:集群使用的子网。
- **Security Group**:用于你的集群的安全组。
:::note
不要标记多个安全组。创建 Elastic Load Balancer 时,标记多个组会导致错误。
:::
应该使用的标签是:
```
Key=kubernetes.io/cluster/<CLUSTERID>, Value=owned
```
`<CLUSTERID>` 可以是你选择的任何字符串。但是,必须在你标记的每个资源上使用相同的字符串。将值设置为 `owned` 会通知集群所有带有 `<CLUSTERID>` 标记的资源都由该集群拥有和管理。
如果你在集群之间共享资源,你可以将标签更改为:
```
Key=kubernetes.io/cluster/CLUSTERID, Value=shared
```
## 可选的后续步骤
创建集群后,你可以通过 Rancher UI 访问集群。最佳实践建议你设置以下访问集群的备用方式:
- **通过 kubectl CLI 访问你的集群**:按照[这些步骤](../../../../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md#在工作站使用-kubectl-访问集群)在你的工作站上使用 kubectl 访问集群。在这种情况下,你将通过 Rancher Server 的认证代理进行认证,然后 Rancher 会让你连接到下游集群。此方法允许你在没有 Rancher UI 的情况下管理集群。
- **通过 kubectl CLI 使用授权的集群端点访问你的集群**:按照[这些步骤](../../../../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md#直接使用下游集群进行身份验证)直接使用 kubectl 访问集群,而无需通过 Rancher 进行认证。我们建议设置此替代方法来访问集群,以便在无法连接到 Rancher 时访问集群。