2.7. 关于 Istio 高可用性
在高可用性(HA)模式下运行 Istio control plane 可防止单点故障,并确保即使 istiod pod 失败,持续网格操作。通过使用 HA,如果一个 istiod pod 不可用,另一个 pod 将继续管理和配置 Istio 数据平面,从而防止服务中断或中断。HA 通过分发 control plane 工作负载来提供可扩展性,启用安全升级,支持灾难恢复操作,并防止区域范围内的网格中断。
系统管理员可以通过两种方式为 Istio 部署配置 HA:
-
定义静态副本数 :此方法涉及设置固定的
istiodpod 数量,从而提供一致的冗余级别。 -
使用自动扩展 :此方法根据资源利用率或自定义指标动态调整
istiodpod 的数量,为影响工作负载提供更有效的资源消耗。
2.7.1. 使用自动扩展配置 Istio HA 复制链接链接已复制到粘贴板!
在高可用性(HA)模式中配置 Istio control plane,以防止单点故障,即使其中一个 istiod pod 失败,也确保持续网格操作。自动扩展定义了可以操作的 Istio control plane pod 的最小和最大数量。OpenShift Container Platform 使用这些值根据资源利用率(如 CPU 或内存)来缩放操作中的 control plane 数量,以有效地响应网格中不同工作负载和整体流量模式。
先决条件
-
以具有
cluster-admin角色的用户身份登录到 OpenShift Container Platform Web 控制台。 - 已安装 Red Hat OpenShift Service Mesh Operator。
- 您已部署了 Istio 资源。
流程
- 在 OpenShift Container Platform Web 控制台中,点 Installed Operators。
- 点 Red Hat OpenShift Service Mesh 3 Operator。
- 点 Istio。
-
点 Istio 安装的名称。例如,
默认。 - 点 YAML。
修改类似以下示例的
Istio自定义资源(CR):配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证 Istio 控制 pod 的状态:
oc get pods -n istio-system -l app=istiod
$ oc get pods -n istio-system -l app=istiodCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s istiod-7c7b6564c9-xkmsl 1/1 Running 0 85s
NAME READY STATUS RESTARTS AGE istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s istiod-7c7b6564c9-xkmsl 1/1 Running 0 85sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 两个
istiodpod 正在运行。两个 pod,对 HA control plane 的最低要求,表示已放置基本的 HA 设置。
2.7.1.1. Service Mesh HA 自动扩展模式的 API 设置 复制链接链接已复制到粘贴板!
在使用自动扩展为高可用性(HA)配置服务网格时,使用以下 istio 自定义资源定义(CRD)参数。
| 参数 | 描述 |
|---|---|
|
|
为 istio 部署定义最少的 OpenShift 仅在为 Istio 部署启用了 Horizontal Pod Autoscaler (HPA)时使用此参数。这是默认的行为。 |
|
|
为 Istio 部署定义
要使 OpenShift 根据负载自动扩展 您还必须配置指标,以便自动扩展正常工作。如果没有配置指标,自动扩展不会扩展或缩减。 OpenShift 仅在为 Istio 部署启用 Horizontal Pod Autoscaler (HPA)时使用此参数。这是默认的行为。 |
|
|
定义 |
|
|
定义 |
|
|
您可以使用 如需更多信息,请参阅配置 扩展行为。 |
2.7.2. 使用副本数配置 Istio HA 复制链接链接已复制到粘贴板!
在高可用性(HA)模式中配置 Istio control plane,以防止单点故障,即使其中一个 istiod pod 失败,也确保持续网格操作。副本数定义了可操作的 Istio control plane pod 的固定数量。对于 control plane 工作负载相对稳定或可预测的网格环境,或者您希望手动扩展 istiod pod,请使用副本数。
先决条件
-
以具有
cluster-admin角色的用户身份登录到 OpenShift Container Platform Web 控制台。 - 已安装 Red Hat OpenShift Service Mesh Operator。
- 您已部署了 Istio 资源。
流程
运行以下命令来获取
Istio资源的名称:oc get istio -n istio-sytem
$ oc get istio -n istio-sytemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME REVISIONS READY IN USE ACTIVE REVISION STATUS VERSION AGE default 1 1 0 default Healthy v1.24.6 24m
NAME REVISIONS READY IN USE ACTIVE REVISION STATUS VERSION AGE default 1 1 0 default Healthy v1.24.6 24mCopy to Clipboard Copied! Toggle word wrap Toggle overflow Istio资源的名称是默认的。运行以下命令,通过添加
autoscaleEnabled和replicaCount参数来更新Istio自定义资源(CR):Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证 Istio 控制 pod 的状态:
oc get pods -n istio-system -l app=istiod
$ oc get pods -n istio-system -l app=istiodCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s istiod-7c7b6564c9-xkmsl 1/1 Running 0 85s
NAME READY STATUS RESTARTS AGE istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s istiod-7c7b6564c9-xkmsl 1/1 Running 0 85sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 两个
istiodpod 正在运行,这是 HA Istio control plane 的最低要求,并表示基本 HA 设置已就位。