$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
您正在查看 Red Hat OpenShift Service Mesh 版本的文档,该版本已不再受支持。 Service Mesh 版本 1.0 和 1.1 控制平面已不再受支持。有关升级服务网格控制平面的信息,请参见 升级服务网格。 有关特定 Red Hat OpenShift Service Mesh 版本的支持状态信息,请参见 产品生命周期页面。 |
安装 Service Mesh 包括安装 OpenShift Elasticsearch、Jaeger、Kiali 和 Service Mesh 运算符,创建和管理 `ServiceMeshControlPlane` 资源以部署控制平面,以及创建 `ServiceMeshMemberRoll` 资源以指定与 Service Mesh 关联的命名空间。
Mixer 的策略执行默认情况下是禁用的。您必须启用它才能运行策略任务。有关启用 Mixer 策略执行的说明,请参见 更新 Mixer 策略执行。 |
多租户控制平面安装是默认配置。 |
Service Mesh 文档使用 `istio-system` 作为示例项目,但您可以将服务网格部署到任何项目。 |
按照 准备安装 Red Hat OpenShift Service Mesh 过程操作。
拥有 `cluster-admin` 角色的帐户。
Service Mesh 安装过程使用 OperatorHub 在 `openshift-operators` 项目中安装 `ServiceMeshControlPlane` 自定义资源定义。Red Hat OpenShift Service Mesh 定义并监控与控制平面的部署、更新和删除相关的 `ServiceMeshControlPlane`。
从 Red Hat OpenShift Service Mesh 1.1.18.2 开始,必须先安装 OpenShift Elasticsearch 运算符、Jaeger 运算符和 Kiali 运算符,然后 Red Hat OpenShift Service Mesh 运算符才能安装控制平面。
默认的 Red Hat OpenShift 分布式追踪平台 (Jaeger) 部署使用内存中存储,因为它是为快速安装而设计的,适用于评估 Red Hat OpenShift 分布式追踪平台、演示或在测试环境中使用 Red Hat OpenShift 分布式追踪平台 (Jaeger) 的用户。如果您计划在生产环境中使用 Red Hat OpenShift 分布式追踪平台 (Jaeger),则必须安装和配置持久性存储选项,在本例中为 Elasticsearch。
您可以访问 OpenShift Container Platform Web 控制台。
您可以以拥有 `cluster-admin` 角色的用户身份访问集群。如果您使用 Red Hat OpenShift Dedicated,则必须拥有 `dedicated-admin` 角色的帐户。
请勿安装社区版本的运算符。不支持社区运算符。 |
如果您已作为 OpenShift Logging 的一部分安装了 OpenShift Elasticsearch 运算符,则无需再次安装 OpenShift Elasticsearch 运算符。Red Hat OpenShift 分布式追踪平台 (Jaeger) 运算符将使用已安装的 OpenShift Elasticsearch 运算符创建 Elasticsearch 实例。 |
以拥有 `cluster-admin` 角色的用户身份登录到 OpenShift Container Platform Web 控制台。如果您使用 Red Hat OpenShift Dedicated,则必须拥有 `dedicated-admin` 角色的帐户。
导航到 **运算符** → **OperatorHub**。
在筛选框中键入 **Elasticsearch** 以查找 OpenShift Elasticsearch 运算符。
单击 Red Hat 提供的 **OpenShift Elasticsearch 运算符** 以显示有关该运算符的信息。
单击 **安装**。
在 **安装运算符** 页面上,选择 **稳定** 更新通道。这会在发布新版本时自动更新您的运算符。
接受默认的 **集群上的所有命名空间(默认)**。这会在默认的 `openshift-operators-redhat` 项目中安装运算符,并使该运算符可用于集群中的所有项目。
Elasticsearch 安装需要为 OpenShift Elasticsearch 运算符使用 **openshift-operators-redhat** 命名空间。其他 Red Hat OpenShift 分布式追踪平台运算符安装在 `openshift-operators` 命名空间中。 |
接受默认的自动审批策略。接受默认设置后,当此 Operator 的新版本可用时,Operator Lifecycle Manager (OLM) 会在无需人工干预的情况下自动升级正在运行的 Operator 实例。如果您选择手动更新,当 Operator 的新版本可用时,OLM 会创建一个更新请求。然后,您必须作为集群管理员手动批准该更新请求才能将 Operator 更新到新版本。
手动审批策略要求具有相应凭据的用户批准 Operator 的安装和订阅过程。 |
单击 **安装**。
在已安装的 Operators 页面上,选择openshift-operators-redhat
项目。等待 OpenShift Elasticsearch Operator 的安装成功状态,然后再继续。
您可以通过OperatorHub安装 Red Hat OpenShift 分布式追踪平台 Operator。
默认情况下,Operator 安装在openshift-operators
项目中。
您可以访问 OpenShift Container Platform Web 控制台。
您可以以拥有 `cluster-admin` 角色的用户身份访问集群。如果您使用 Red Hat OpenShift Dedicated,则必须拥有 `dedicated-admin` 角色的帐户。
如果您需要持久性存储,则必须先安装 OpenShift Elasticsearch Operator,然后再安装 Red Hat OpenShift 分布式追踪平台 Operator。
以拥有 `cluster-admin` 角色的用户身份登录到 OpenShift Container Platform Web 控制台。如果您使用 Red Hat OpenShift Dedicated,则必须拥有 `dedicated-admin` 角色的帐户。
导航到 **运算符** → **OperatorHub**。
在搜索字段中输入分布式追踪平台来搜索 Red Hat OpenShift 分布式追踪平台 Operator。
选择Red Hat OpenShift 分布式追踪平台 Operator(由 Red Hat 提供)以显示有关 Operator 的信息。
单击 **安装**。
对于安装 Operator 页面上的更新通道,选择稳定版,以便在发布新版本时自动更新 Operator。
接受默认的集群上的所有命名空间(默认)。这会将 Operator 安装在默认的openshift-operators
项目中,并使 Operator 可用于集群中的所有项目。
接受默认的自动审批策略。
如果您接受此默认设置,则当 Operator 的新版本可用时,Operator Lifecycle Manager (OLM) 会自动升级此 Operator 的正在运行的实例。 如果您选择手动更新,则当 Operator 的新版本可用时,OLM 会创建一个更新请求。要将 Operator 更新到新版本,您必须然后作为集群管理员手动批准更新请求。手动审批策略要求集群管理员手动批准 Operator 的安装和订阅。 |
单击 **安装**。
导航到Operators → 已安装的 Operators。
在已安装的 Operators 页面上,选择openshift-operators
项目。等待 Red Hat OpenShift 分布式追踪平台 Operator 的成功状态,然后再继续。
您必须安装 Kiali Operator 才能使 Red Hat OpenShift Service Mesh Operator 安装 Service Mesh 控制平面。
请勿安装社区版本的运算符。不支持社区运算符。 |
访问 OpenShift Container Platform Web 控制台。
登录 OpenShift Container Platform Web 控制台。
导航到 **运算符** → **OperatorHub**。
在筛选框中键入Kiali 以查找 Kiali Operator。
单击由 Red Hat 提供的Kiali Operator 以显示有关 Operator 的信息。
单击 **安装**。
在Operator 安装页面上,选择稳定版更新通道。
选择集群上的所有命名空间(默认)。这会将 Operator 安装在默认的openshift-operators
项目中,并使 Operator 可用于集群中的所有项目。
选择自动审批策略。
手动审批策略要求具有相应凭据的用户批准 Operator 的安装和订阅过程。 |
单击 **安装**。
已安装的 Operators 页面显示 Kiali Operator 的安装进度。
要安装 Red Hat OpenShift Service Mesh,您必须安装 Red Hat OpenShift Service Mesh Operator。对于要安装的每个附加 Operator,重复此过程。
其他 Operators 包括:
由 Red Hat 提供的 Kiali Operator
Tempo Operator
已弃用的其他 Operators 包括:
从 Red Hat OpenShift Service Mesh 2.5 开始,Red Hat OpenShift 分布式追踪平台 (Jaeger) 和 OpenShift Elasticsearch Operator 已弃用,并将在未来的版本中移除。Red Hat 将在当前发布周期内为这些功能提供错误修复和支持,但此功能将不再接收增强功能,并将被移除。作为 Red Hat OpenShift 分布式追踪平台 (Jaeger) 的替代方案,您可以改用 Red Hat OpenShift 分布式追踪平台 (Tempo)。 |
Red Hat OpenShift 分布式追踪平台 (Jaeger)
OpenShift Elasticsearch Operator
如果您已作为 OpenShift Logging 的一部分安装了 OpenShift Elasticsearch 运算符,则无需再次安装 OpenShift Elasticsearch 运算符。Red Hat OpenShift 分布式追踪平台 (Jaeger) 运算符将使用已安装的 OpenShift Elasticsearch 运算符创建 Elasticsearch 实例。 |
以具有cluster-admin
角色的用户身份登录 OpenShift Container Platform Web 控制台。
在 OpenShift Container Platform Web 控制台中,单击Operators → OperatorHub。
在筛选框中键入 Operator 的名称,然后选择 Red Hat 版本的 Operator。不支持 Operators 的社区版本。
单击 **安装**。
在每个 Operator 的安装 Operator 页面上,接受默认设置。
单击安装。等待 Operator 安装完成后,再对要安装的下一个 Operator 重复这些步骤。
Red Hat OpenShift Service Mesh Operator 安装在openshift-operators
命名空间中,并可用于集群中的所有命名空间。
由 Red Hat 提供的 Kiali Operator 安装在openshift-operators
命名空间中,并可用于集群中的所有命名空间。
Tempo Operator 安装在openshift-tempo-operator
命名空间中,并可用于集群中的所有命名空间。
Red Hat OpenShift 分布式追踪平台 (Jaeger) 安装在openshift-distributed-tracing
命名空间中,并可用于集群中的所有命名空间。
从 Red Hat OpenShift Service Mesh 2.5 开始,Red Hat OpenShift 分布式追踪平台 (Jaeger) 已弃用,并将在未来的版本中移除。Red Hat 将在当前发布周期内为该功能提供错误修复和支持,但此功能将不再接收增强功能,并将被移除。作为 Red Hat OpenShift 分布式追踪平台 (Jaeger) 的替代方案,您可以改用 Red Hat OpenShift 分布式追踪平台 (Tempo)。 |
OpenShift Elasticsearch Operator 安装在openshift-operators-redhat
命名空间中,并可用于集群中的所有命名空间。
从 Red Hat OpenShift Service Mesh 2.5 开始,OpenShift Elasticsearch Operator 已弃用,并将在未来的版本中移除。Red Hat 将在当前发布周期内为该功能提供错误修复和支持,但此功能将不再接收增强功能,并将被移除。 |
安装所有四个 Operator 后,单击Operators → 已安装的 Operators 以验证您的 Operators 是否已安装。
ServiceMeshControlPlane
资源定义安装期间要使用的配置。您可以部署 Red Hat 提供的默认配置,也可以自定义ServiceMeshControlPlane
文件以适应您的业务需求。
您可以使用 OpenShift Container Platform Web 控制台或使用oc
客户端工具从命令行部署 Service Mesh 控制平面。
请按照此过程使用 Web 控制台部署 Red Hat OpenShift Service Mesh 控制平面。在此示例中,istio-system
是控制平面项目的名称。
必须安装 Red Hat OpenShift Service Mesh Operator。
查看有关如何自定义 Red Hat OpenShift Service Mesh 安装的说明。
拥有 `cluster-admin` 角色的帐户。
以具有cluster-admin
角色的用户身份登录 OpenShift Container Platform Web 控制台。
创建一个名为istio-system
的项目。
导航到主页 → 项目。
单击创建项目。
在名称字段中输入istio-system
。
单击创建。
导航到Operators → 已安装的 Operators。
如有必要,请从“项目”菜单中选择istio-system
。您可能需要等待片刻,才能将 Operators 复制到新项目。
点击 Red Hat OpenShift Service Mesh Operator。在**提供的 API** 下,Operator 提供了创建两种资源类型的链接
一个ServiceMeshControlPlane
资源
一个ServiceMeshMemberRoll
资源
在**Istio Service Mesh 控制平面**下,点击**创建 ServiceMeshControlPlane**。
在**创建 Service Mesh 控制平面**页面上,根据需要修改默认ServiceMeshControlPlane
模板的 YAML。
有关自定义控制平面的更多信息,请参阅自定义 Red Hat OpenShift Service Mesh 安装。对于生产环境,您**必须**更改默认的 Jaeger 模板。 |
点击**创建**以创建控制平面。Operator 会根据您的配置参数创建 Pod、服务和 Service Mesh 控制平面组件。
点击**Istio Service Mesh 控制平面**选项卡。
点击新控制平面的名称。
点击**资源**选项卡,查看 Operator 创建和配置的 Red Hat OpenShift Service Mesh 控制平面资源。
请按照此步骤从命令行部署 Red Hat OpenShift Service Mesh 控制平面。
必须安装 Red Hat OpenShift Service Mesh Operator。
查看有关如何自定义 Red Hat OpenShift Service Mesh 安装的说明。
拥有 `cluster-admin` 角色的帐户。
访问 OpenShift CLI (oc
)。
以具有cluster-admin
角色的用户身份登录到 OpenShift Container Platform CLI。
$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
创建一个名为istio-system
的项目。
$ oc new-project istio-system
使用“自定义 Red Hat OpenShift Service Mesh 安装”中提供的示例,创建一个名为istio-installation.yaml
的ServiceMeshControlPlane
文件。您可以根据需要自定义这些值以匹配您的用例。对于生产部署,您**必须**更改默认的 Jaeger 模板。
运行以下命令来部署控制平面:
$ oc create -n istio-system -f istio-installation.yaml
执行以下命令查看控制平面安装的状态:
$ oc get smcp -n istio-system
当 STATUS 列为ComponentsReady
时,表示安装已成功完成。
NAME READY STATUS PROFILES VERSION AGE basic-install 11/11 ComponentsReady ["default"] v1.1.18 4m25s
运行以下命令以在安装过程中监视 Pod 的进度:
$ oc get pods -n istio-system -w
您应该会看到类似以下的输出:
NAME READY STATUS RESTARTS AGE
grafana-7bf5764d9d-2b2f6 2/2 Running 0 28h
istio-citadel-576b9c5bbd-z84z4 1/1 Running 0 28h
istio-egressgateway-5476bc4656-r4zdv 1/1 Running 0 28h
istio-galley-7d57b47bb7-lqdxv 1/1 Running 0 28h
istio-ingressgateway-dbb8f7f46-ct6n5 1/1 Running 0 28h
istio-pilot-546bf69578-ccg5x 2/2 Running 0 28h
istio-policy-77fd498655-7pvjw 2/2 Running 0 28h
istio-sidecar-injector-df45bd899-ctxdt 1/1 Running 0 28h
istio-telemetry-66f697d6d5-cj28l 2/2 Running 0 28h
jaeger-896945cbc-7lqrr 2/2 Running 0 11h
kiali-78d9c5b87c-snjzh 1/1 Running 0 22h
prometheus-6dff867c97-gr2n5 2/2 Running 0 28h
对于多租户安装,Red Hat OpenShift Service Mesh 支持在集群中部署多个独立的控制平面。您可以使用ServiceMeshControlPlane
模板创建可重用的配置。更多信息,请参阅创建控制平面模板。
ServiceMeshMemberRoll
列出了属于 Service Mesh 控制平面的项目。只有ServiceMeshMemberRoll
中列出的项目才会受到控制平面的影响。除非您将其添加到特定控制平面部署的成员角色中,否则项目不属于服务网格。
您必须在与ServiceMeshControlPlane
相同的项目(例如istio-system
)中创建一个名为default
的ServiceMeshMemberRoll
资源。
您可以从 Web 控制台向 Service Mesh 成员角色添加一个或多个项目。在此示例中,istio-system
是 Service Mesh 控制平面项目的名称。
已安装并验证的 Red Hat OpenShift Service Mesh Operator。
要添加到服务网格的现有项目列表。
登录 OpenShift Container Platform Web 控制台。
如果您还没有为您的网格创建服务,或者您是从头开始,请为您的应用程序创建一个项目。它必须与您安装 Service Mesh 控制平面的项目不同。
导航到主页 → 项目。
在**名称**字段中输入名称。
单击创建。
导航到Operators → 已安装的 Operators。
点击**项目**菜单,并从列表中选择部署ServiceMeshControlPlane
资源的项目,例如istio-system
。
点击 Red Hat OpenShift Service Mesh Operator。
点击**Istio Service Mesh 成员角色**选项卡。
点击**创建 ServiceMeshMemberRoll**
点击**成员**,然后在**值**字段中输入项目的名称。您可以添加任意数量的项目,但一个项目只能属于一个ServiceMeshMemberRoll
资源。
单击创建。
您可以从命令行向ServiceMeshMemberRoll
添加项目。
已安装并验证的 Red Hat OpenShift Service Mesh Operator。
要添加到服务网格的项目列表。
访问 OpenShift CLI (oc
)。
登录到 OpenShift Container Platform CLI。
$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
如果您还没有为您的网格创建服务,或者您是从头开始,请为您的应用程序创建一个项目。它必须与您安装 Service Mesh 控制平面的项目不同。
$ oc new-project <your-project>
要将您的项目添加为成员,请修改以下示例 YAML。您可以添加任意数量的项目,但一个项目只能属于一个ServiceMeshMemberRoll
资源。在此示例中,istio-system
是 Service Mesh 控制平面项目的名称。
apiVersion: maistra.io/v1
kind: ServiceMeshMemberRoll
metadata:
name: default
namespace: istio-system
spec:
members:
# a list of projects joined into the service mesh
- your-project-name
- another-project-name
运行以下命令以在istio-system
命名空间中上传并创建ServiceMeshMemberRoll
资源。
$ oc create -n istio-system -f servicemeshmemberroll-default.yaml
运行以下命令以验证ServiceMeshMemberRoll
是否已成功创建。
$ oc get smmr -n istio-system default
当STATUS
列为Configured
时,表示安装已成功完成。
您可以使用 Web 控制台向现有的 Service Mesh ServiceMeshMemberRoll
资源添加或移除项目。
您可以添加任意数量的项目,但一个项目只能属于一个ServiceMeshMemberRoll
资源。
当其对应的ServiceMeshControlPlane
资源被删除时,ServiceMeshMemberRoll
资源也会被删除。
已安装并验证的 Red Hat OpenShift Service Mesh Operator。
现有的ServiceMeshMemberRoll
资源。
包含ServiceMeshMemberRoll
资源的项目的名称。
您想要添加或从网格中移除的项目的名称。
登录 OpenShift Container Platform Web 控制台。
导航到Operators → 已安装的 Operators。
点击**项目**菜单,并从列表中选择部署ServiceMeshControlPlane
资源的项目,例如istio-system
。
点击 Red Hat OpenShift Service Mesh Operator。
点击**Istio Service Mesh 成员角色**选项卡。
点击default
链接。
点击 YAML 选项卡。
修改 YAML 以添加或移除项目作为成员。您可以添加任意数量的项目,但一个项目只能属于一个ServiceMeshMemberRoll
资源。
点击**保存**。
点击**重新加载**。
您可以使用命令行修改现有的 Service Mesh 成员角色。
已安装并验证的 Red Hat OpenShift Service Mesh Operator。
现有的ServiceMeshMemberRoll
资源。
包含ServiceMeshMemberRoll
资源的项目的名称。
您想要添加或从网格中移除的项目的名称。
访问 OpenShift CLI (oc
)。
登录到 OpenShift Container Platform CLI。
编辑ServiceMeshMemberRoll
资源。
$ oc edit smmr -n <controlplane-namespace>
修改 YAML 以添加或移除项目作为成员。您可以添加任意数量的项目,但一个项目只能属于一个ServiceMeshMemberRoll
资源。
apiVersion: maistra.io/v1
kind: ServiceMeshMemberRoll
metadata:
name: default
namespace: istio-system #control plane project
spec:
members:
# a list of projects joined into the service mesh
- your-project-name
- another-project-name
如果您选择手动更新,则运营商生命周期管理器 (OLM) 将控制集群中运营商的安装、升级和基于角色的访问控制 (RBAC)。OLM 在 OpenShift Container Platform 中默认运行。OLM 使用 CatalogSources(使用 Operator Registry API),来查询可用的运营商以及已安装运营商的升级。
有关 OpenShift Container Platform 如何处理升级的更多信息,请参阅运营商生命周期管理器文档。
为了更新 Sidecar 代理的配置,应用程序管理员必须重启应用程序 Pod。
如果您的部署使用自动 Sidecar 注射,您可以通过添加或修改注释来更新部署中的 Pod 模板。运行以下命令重新部署 Pod:
$ oc patch deployment/<deployment> -p '{"spec":{"template":{"metadata":{"annotations":{"kubectl.kubernetes.io/restartedAt": "'`date -Iseconds`'"}}}}}'
如果您的部署不使用自动 Sidecar 注射,则必须通过修改部署或 Pod 中指定的 Sidecar 容器镜像来手动更新 Sidecar,然后重启 Pod。
在 Red Hat OpenShift Service Mesh 上准备部署应用程序。