1.18.13.2. 为故障转移配置 DestinationRule

创建配置以下内容的 DestinationRule 资源:

  • 服务的 Outlier 检测。需要此项才能使故障转移正常工作。特别是,它会配置 sidecar 代理,以获知服务端点处于不健康状态,并最终触发对下一个位置的故障转移。
  • 各地区之间的故障转移策略。这样可确保除区域边界外的故障切换将具有可预见的。

流程

  1. 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform CLI。输入以下命令。然后在提示时输入您的用户名和密码。

    $ oc login --username=<NAMEOFUSER> <API token> https://<HOSTNAME>:6443
  2. 切换到安装 Service Mesh control plane 的项目。

    $ oc project <smcp-system>

    例如: green-mesh-system

    $ oc project green-mesh-system
  3. 根据以下示例创建一个 DestinationRule 文件,如果 green-mesh 不可用,则流量应从 us-east 区域中的 green-mesh 路由到 us-west 中的 red-mesh。

    DestinationRule示例

    apiVersion: networking.istio.io/v1beta1
    kind: DestinationRule
    metadata:
      name: default-failover
      namespace: bookinfo
    spec:
      host: "ratings.bookinfo.svc.cluster.local"
      trafficPolicy:
        loadBalancer:
          localityLbSetting:
            enabled: true
            failover:
              - from: us-east
                to: us-west
        outlierDetection:
          consecutive5xxErrors: 3
          interval: 10s
          baseEjectionTime: 1m

  4. 部署 DestinationRule,其中 <DestinationRule> 包含到您的文件的完整路径,请输入以下命令:

    $ oc create -n <application namespace> -f <DestinationRule.yaml>

    例如:

    $ oc create -n bookinfo -f green-mesh-us-west-DestinationRule.yaml