2.7. 关于 Istio 高可用性
在高可用性(HA)模式下运行 Istio control plane 可防止单点故障,并确保即使 istiod
pod 失败,持续网格操作。通过使用 HA,如果一个 istiod
pod 不可用,另一个 pod 将继续管理和配置 Istio 数据平面,从而防止服务中断或中断。HA 通过分发 control plane 工作负载来提供可扩展性,启用安全升级,支持灾难恢复操作,并防止区域范围内的网格中断。
系统管理员可以通过两种方式为 Istio 部署配置 HA:
-
定义静态副本数 :此方法涉及设置固定的
istiod
pod 数量,从而提供一致的冗余级别。 -
使用自动扩展 :此方法根据资源利用率或自定义指标动态调整
istiod
pod 的数量,为影响工作负载提供更有效的资源消耗。
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=istiod
Copy 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 85s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 两个
istiod
pod 正在运行。两个 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-sytem
Copy 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 24m
Copy 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=istiod
Copy 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 85s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 两个
istiod
pod 正在运行,这是 HA Istio control plane 的最低要求,并表示基本 HA 设置已就位。