3.4. 将 Red Hat OpenShift Service Mesh 从版本 1.0.1 更新至 1.0.2
更新 Red Hat OpenShift Service Mesh 需要额外的步骤才能将 OpenShift Container Platform 更新至版本 4.2。在将 OpenShift Container Platform 4.1.x 升级到 4.2 之前,您必须将 Red Hat OpenShift Service Mesh 升级到 1.0.2。
先决条件
- Red Hat OpenShift Service Mesh 版本 1.0.1
- OpenShift Container Platform 版本 4.1
流程
通过运行以下
oc patch
命令配置现有的 SMCP 资源请求。将 <smcp_namespace> 和 <smcp_name> 替换为您的具体名称:$ oc patch -n <smcp_namespace> smcp <smcp_name> \1 --type=merge -p \ '{"spec": {"istio": {"global": {"defaultResources": {"requests": {"cpu": "10m","memory": "128Mi"},"limits":{}},"proxy": {"resources": {"requests": {"cpu": "10m","memory": "128Mi"},"limits":{}}},"defaultPodDisruptionBudget": {"enabled": false}},"security": {"resources": {"requests": {"cpu": "10m","memory": "128Mi"}}},"galley": {"resources": {"requests": {"cpu": "10m","memory": "128Mi"}}},"pilot": {"resources": {"requests": {"cpu": "10m","memory": "128Mi"}}},"mixer": {"telemetry": {"resources": {"requests": {"cpu": "10m","memory": "128Mi"}}}},"gateways": {"istio-egressgateway": {"resources": {"requests": {"cpu": "10m","memory": "128Mi"}}},"istio-ingressgateway": {"resources": {"requests": {"cpu": "10m","memory": "128Mi"}}}},"prometheus": {"resources": {"requests": {"cpu": "10m","memory": "128Mi"}}}}}}'
- 1
- 例如
basic-install
。
运行此命令后,请等到 SMCP 命名空间中的所有 SMCP Pod 替换完毕。
-
Pod 在 SMCP 命名空间中运行后,重新部署您的 Data Plane 应用程序,如
bookinfo
。 以
cluster-admin
用户身份(如kubeadmin
)登录,然后运行以下命令删除 CNIistio-node
DaemonSet。如果您的 Red Hat OpenShift Service Mesh Operator 没有安装在默认的openshift-operators
命名空间中,请替换openshift-operators
:$ oc delete -n openshift-operators daemonset istio-node
将 Red Hat OpenShift Service Mesh Operator 和 SMCP 升级至 1.0.2。所有 Pod 在 SMCP 命名空间中运行后,请通过为每个部署运行以下命令来修补 Data Plane 应用程序:
$ oc patch -n <data_plane_namespace> deployment/<deployment_name> -p \ '{"spec":{"template":{"metadata":{"annotations":{"kubectl.kubernetes.io/restartedAt": "'`date -Iseconds`'"}}}}}'
- 使用 OpenShift Container Platform Web 控制台升级 OpenShift Container Platform。
如果要从 Red Hat OpenShift Service Mesh 1.0 更新至 1.1,您必须更新 ServiceMeshControlPlane
资源,以便将 control plane 组件更新至新版本。
- 在 web 控制台中,点 Red Hat OpenShift Service Mesh operator。
-
点 Project 菜单,然后从列表中选择部署了
ServiceMeshControlPlane
的项目,如istio-system
。 -
点 control plane 的名称,例如
basic-install
。 -
点 YAML,并将版本字段添加到
ServiceMeshControlPlane
资源的spec:
中。例如,要升级到 Red Hat OpenShift Service Mesh 1.1.0,请添加version: v1.1
。
spec: version: v1.1 ...
version 字段指定要安装的 ServiceMesh 版本,默认是最新的可用版本。
3.4.1. 手动更新
如果您选择使用手工更新,Operator Lifecycle Manager (OLM) 会控制集群中 Operator 的安装、升级和基于角色的访问控制 (RBAC)。OLM 在 OpenShift Container Platform 中默认运行。OLM 使用 CatalogSource,而 CatalogSources 使用 Operator Registry API 来查询是否有可用的 Operator 及已安装 Operator 是否有升级版本。
- 如需了解有关 OpenShift Container Platform 如何处理升级的更多信息,请参阅 Operator Lifecycle Manager 文档。