-
接受默认的 Service Mesh 控制平面版本,以利用产品最新版本中提供的功能。控制平面的版本决定了可用的功能,而与 Operator 的版本无关。
-
点击创建。
控制平面包括Istiod、入口和出口网关以及其他组件,例如Kiali和Jaeger。控制平面必须部署在与服务网格运算符和数据平面应用程序和服务不同的命名空间中。您可以使用OpenShift Container Platform Web控制台或使用oc
客户端工具的命令行部署ServiceMeshControlPlane
(SMCP)的基本安装。
此基本安装是根据默认的OpenShift Container Platform设置配置的,并非设计用于生产环境。使用此默认安装来验证您的安装,然后为您的环境配置您的 |
服务网格文档使用 |
您可以使用Web控制台部署基本ServiceMeshControlPlane
。在此示例中,istio-system
是服务网格控制平面项目的名称。
必须安装Red Hat OpenShift Service Mesh Operator。
您已以cluster-admin
身份登录到OpenShift Container Platform Web控制台。
以具有cluster-admin
角色的用户身份登录到OpenShift Container Platform Web控制台。如果您使用的是Red Hat OpenShift Dedicated,则必须拥有具有dedicated-admin
角色的帐户。
创建一个名为istio-system
的项目。
导航到主页 → 项目。
点击创建项目。
在名称字段中,输入istio-system
。ServiceMeshControlPlane
资源必须安装在与微服务和 Operators 分开的项目中。
这些步骤使用istio-system
作为示例,但您可以将 Service Mesh 控制平面部署到任何项目中,只要它与包含您服务的项目分开即可。
点击创建。
导航到Operators → 已安装的 Operators。
点击 Red Hat OpenShift Service Mesh Operator,然后点击Istio Service Mesh 控制平面。
在Istio Service Mesh 控制平面选项卡上,点击创建 ServiceMeshControlPlane。
接受默认的 Service Mesh 控制平面版本,以利用产品最新版本中提供的功能。控制平面的版本决定了可用的功能,而与 Operator 的版本无关。
点击创建。
Operator 会根据您的配置参数创建 Pod、服务和 Service Mesh 控制平面组件。您可以在稍后时间配置ServiceMeshControlPlane
设置。
要验证控制平面是否已正确安装,请点击Istio Service Mesh 控制平面选项卡。
点击新控制平面的名称。
点击资源选项卡以查看 Operator 创建和配置的 Red Hat OpenShift Service Mesh 控制平面资源。
您可以从命令行部署基本的ServiceMeshControlPlane
。
必须安装Red Hat OpenShift Service Mesh Operator。
访问 OpenShift CLI (oc
)。
您已以`cluster-admin`身份登录到 OpenShift Container Platform。
创建一个名为istio-system
的项目。
$ oc new-project istio-system
使用以下示例创建一个名为istio-installation.yaml
的ServiceMeshControlPlane
文件。Service Mesh 控制平面的版本决定了可用的功能,而与 Operator 的版本无关。
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
namespace: istio-system
spec:
version: v2.6
tracing:
type: None
sampling: 10000
addons:
kiali:
enabled: true
name: kiali
grafana:
enabled: true
运行以下命令来部署 Service Mesh 控制平面,其中<istio_installation.yaml>
包含文件的完整路径。
$ oc create -n istio-system -f <istio_installation.yaml>
要观察 Pod 部署的进度,请运行以下命令
$ oc get pods -n istio-system -w
您应该看到类似以下的输出
NAME READY STATUS RESTARTS AGE
grafana-b4d59bd7-mrgbr 2/2 Running 0 65m
istio-egressgateway-678dc97b4c-wrjkp 1/1 Running 0 108s
istio-ingressgateway-b45c9d54d-4qg6n 1/1 Running 0 108s
istiod-basic-55d78bbbcd-j5556 1/1 Running 0 108s
kiali-6476c7656c-x5msp 1/1 Running 0 43m
prometheus-58954b8d6b-m5std 2/2 Running 0 66m
您可以从命令行验证ServiceMeshControlPlane
的创建。
先决条件
必须安装Red Hat OpenShift Service Mesh Operator。
访问 OpenShift CLI (oc
)。
您已以`cluster-admin`身份登录到 OpenShift Container Platform。
运行以下命令以验证 Service Mesh 控制平面安装,其中istio-system
是您安装 Service Mesh 控制平面的命名空间。
$ oc get smcp -n istio-system
当STATUS
列为ComponentsReady
时,安装已成功完成。
NAME READY STATUS PROFILES VERSION AGE
basic 10/10 ComponentsReady ["default"] 2.6.4 66m
基础设施节点提供了一种隔离基础设施工作负载的方法,主要有两个目的
防止因订阅数量而产生账单费用
分离基础设施工作负载的维护和管理
您可以将部分或全部 Service Mesh 控制平面组件配置为在基础设施节点上运行。
如果 Service Mesh 控制平面部署的所有组件都将在基础设施节点上运行,则执行此任务。这些已部署的组件包括 Istiod、Ingress Gateway 和 Egress Gateway,以及可选的应用程序,例如 Prometheus、Grafana 和分布式跟踪。
如果控制平面将在工作节点上运行,请跳过此任务。
您已安装 Red Hat OpenShift Service Mesh Operator。
您已以`cluster-admin`身份登录到 OpenShift Container Platform。
登录到 OpenShift Container Platform Web 控制台。
导航到Operators → 已安装的 Operators。
点击 Red Hat OpenShift Service Mesh Operator,然后点击Istio Service Mesh 控制平面。
点击控制平面资源的名称。例如,basic
。
点击YAML。
将nodeSelector
和tolerations
字段添加到ServiceMeshControlPlane
资源中的spec.runtime.defaults.pod
规范中,如下例所示
spec:
runtime:
defaults:
pod:
nodeSelector: (1)
node-role.kubernetes.io/infra: ""
tolerations: (2)
- effect: NoSchedule
key: node-role.kubernetes.io/infra
value: reserved
- effect: NoExecute
key: node-role.kubernetes.io/infra
value: reserved
1 | 确保ServiceMeshControlPlane Pod 仅调度到基础设施节点上。 |
2 | 确保基础设施节点接受 Pod 以进行执行。 |
点击保存。
点击重新加载。
如果 Service Mesh 控制平面部署的单个组件将在基础设施节点上运行,则执行此任务。这些已部署的组件包括 Istiod、Ingress Gateway 和 Egress Gateway。
如果控制平面将在工作节点上运行,请跳过此任务。
您已安装 Red Hat OpenShift Service Mesh Operator。
您已以`cluster-admin`身份登录到 OpenShift Container Platform。
登录到 OpenShift Container Platform Web 控制台。
导航到Operators → 已安装的 Operators。
点击 Red Hat OpenShift Service Mesh Operator,然后点击Istio Service Mesh 控制平面。
点击控制平面资源的名称。例如,basic
。
点击YAML。
将nodeSelector
和tolerations
字段添加到ServiceMeshControlPlane
资源中的spec.runtime.components.pilot.pod
规范中,如下例所示
spec:
runtime:
components:
pilot:
pod:
nodeSelector: (1)
node-role.kubernetes.io/infra: ""
tolerations: (2)
- effect: NoSchedule
key: node-role.kubernetes.io/infra
value: reserved
- effect: NoExecute
key: node-role.kubernetes.io/infra
value: reserved
1 | 确保Istiod Pod 仅调度到基础设施节点上。 |
2 | 确保基础设施节点接受 Pod 以进行执行。 |
将nodeSelector
和tolerations
字段添加到ServiceMeshControlPlane
资源中的spec.gateways.ingress.runtime.pod
和spec.gateways.egress.runtime.pod
规范中,如下例所示
spec:
gateways:
ingress:
runtime:
pod:
nodeSelector: (1)
node-role.kubernetes.io/infra: ""
tolerations: (2)
- effect: NoSchedule
key: node-role.kubernetes.io/infra
value: reserved
- effect: NoExecute
key: node-role.kubernetes.io/infra
value: reserved
egress:
runtime:
pod:
nodeSelector: (1)
node-role.kubernetes.io/infra: ""
tolerations: (2)
- effect: NoSchedule
key: node-role.kubernetes.io/infra
value: reserved
- effect: NoExecute
key: node-role.kubernetes.io/infra
value: reserved
1 | 确保网关 Pod 仅调度到基础设施节点上 |
2 | 确保基础设施节点接受 Pod 以进行执行。 |
点击保存。
点击重新加载。
如果 Service Mesh 控制平面部署的所有组件都将在基础设施节点上运行,则执行此任务。这些已部署的组件包括 Istiod、Ingress Gateway 和 Egress Gateway,以及可选的应用程序,例如 Prometheus、Grafana 和分布式跟踪。
如果控制平面将在工作节点上运行,请跳过此任务。
您已安装 Red Hat OpenShift Service Mesh Operator。
您已以`cluster-admin`身份登录到 OpenShift Container Platform。
将ServiceMeshControlPlane
资源打开为 YAML 文件
$ oc -n istio-system edit smcp <name> (1)
1 | <name> 表示ServiceMeshControlPlane 资源的名称。 |
要在基础设施节点上运行ServiceMeshControlPlane
部署的所有 Service Mesh 组件,请将nodeSelector
和tolerations
字段添加到ServiceMeshControlPlane
资源中的spec.runtime.defaults.pod
规范中
spec:
runtime:
defaults:
pod:
nodeSelector: (1)
node-role.kubernetes.io/infra: ""
tolerations: (2)
- effect: NoSchedule
key: node-role.kubernetes.io/infra
value: reserved
- effect: NoExecute
key: node-role.kubernetes.io/infra
value: reserved
1 | 确保 SMCP Pod 仅调度到基础设施节点上。 |
2 | 确保基础设施节点接受 Pod。 |
如果 Service Mesh 控制平面部署的单个组件将在基础设施节点上运行,则执行此任务。这些已部署的组件包括 Istiod、Ingress Gateway 和 Egress Gateway。
如果控制平面将在工作节点上运行,请跳过此任务。
您已安装 Red Hat OpenShift Service Mesh Operator。
您已以`cluster-admin`身份登录到 OpenShift Container Platform。
将ServiceMeshControlPlane
资源打开为 YAML 文件。
$ oc -n istio-system edit smcp <name> (1)
1 | <name> 表示ServiceMeshControlPlane 资源的名称。 |
要在基础设施节点上运行 Istiod 组件,请将nodeSelector
和tolerations
字段添加到ServiceMeshControlPlane
资源中的spec.runtime.components.pilot.pod
规范中。
spec:
runtime:
components:
pilot:
pod:
nodeSelector: (1)
node-role.kubernetes.io/infra: ""
tolerations: (2)
- effect: NoSchedule
key: node-role.kubernetes.io/infra
value: reserved
- effect: NoExecute
key: node-role.kubernetes.io/infra
value: reserved
1 | 确保Istiod Pod 仅调度到基础设施节点上。 |
2 | 确保基础设施节点接受 Pod。 |
要在基础设施节点上运行 Ingress 和 Egress 网关,请将nodeSelector
和tolerations
字段添加到ServiceMeshControlPlane
资源中的spec.gateways.ingress.runtime.pod
规范和spec.gateways.egress.runtime.pod
规范中。
spec:
gateways:
ingress:
runtime:
pod:
nodeSelector: (1)
node-role.kubernetes.io/infra: ""
tolerations: (2)
- effect: NoSchedule
key: node-role.kubernetes.io/infra
value: reserved
- effect: NoExecute
key: node-role.kubernetes.io/infra
value: reserved
egress:
runtime:
pod:
nodeSelector: (1)
node-role.kubernetes.io/infra: ""
tolerations: (2)
- effect: NoSchedule
key: node-role.kubernetes.io/infra
value: reserved
- effect: NoExecute
key: node-role.kubernetes.io/infra
value: reserved
1 | 确保网关 Pod 仅调度到基础设施节点上 |
2 | 确保基础设施节点接受 Pod。 |
集群范围部署包含一个服务网格控制平面,用于监控整个集群的资源。监控整个集群的资源与 Istio 功能非常相似,因为控制平面使用单个查询跨越所有命名空间来监控 Istio 和 Kubernetes 资源。因此,集群范围部署减少了发送到 API 服务器的请求数量。
您可以使用 OpenShift Container Platform Web 控制台或 CLI 配置用于集群范围部署的服务网格控制平面。
您可以使用 OpenShift Container Platform Web 控制台配置用于集群范围部署的ServiceMeshControlPlane
资源。在此示例中,istio-system
是服务网格控制平面项目的名称。
已安装 Red Hat OpenShift Service Mesh Operator。
您已以`cluster-admin`身份登录到 OpenShift Container Platform。
创建一个名为istio-system
的项目。
导航到主页 → 项目。
点击创建项目。
在名称字段中,输入istio-system
。ServiceMeshControlPlane
资源必须安装在与微服务和 Operators 分开的项目中。
这些步骤使用istio-system
作为示例。您可以将服务网格控制平面部署到任何项目,只要它与包含您服务的项目分开即可。
点击创建。
导航到Operators → 已安装的 Operators。
点击 Red Hat OpenShift Service Mesh Operator,然后点击Istio Service Mesh 控制平面。
在Istio Service Mesh 控制平面选项卡上,点击创建 ServiceMeshControlPlane。
单击**YAML 视图**。服务网格控制平面的版本决定了可用功能,而与 Operator 的版本无关。
修改 YAML 文件的spec.mode
字段以指定ClusterWide
。
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
namespace: istio-system
spec:
version: v2.6
mode: ClusterWide
单击**创建**。Operator 将根据您的配置参数创建 pod、服务和服务网格控制平面组件。如果作为默认配置的一部分不存在ServiceMeshMemberRoll
,则 Operator 也会创建它。
要验证控制平面是否正确安装
单击**Istio 服务网格控制平面**选项卡。
单击新的ServiceMeshControlPlane
对象的名称。
单击**资源**选项卡以查看 Operator 创建和配置的 Red Hat OpenShift Service Mesh 控制平面资源。
您可以使用 CLI 配置用于集群范围部署的ServiceMeshControlPlane
资源。在此示例中,istio-system
是服务网格控制平面命名空间的名称。
已安装 Red Hat OpenShift Service Mesh Operator。
您可以访问 OpenShift CLI(oc
)。
您已以`cluster-admin`身份登录到 OpenShift Container Platform。
创建一个名为istio-system
的项目。
$ oc new-project istio-system
使用以下示例创建一个名为istio-installation.yaml
的ServiceMeshControlPlane
文件
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
namespace: istio-system
spec:
version: v2.6
mode: ClusterWide
运行以下命令以部署服务网格控制平面
$ oc create -n istio-system -f <istio_installation.yaml>
其中
指定文件的完整路径。
要监控 pod 部署的进度,请运行以下命令
$ oc get pods -n istio-system -w
您应该看到类似于以下示例的输出
NAME READY STATUS RESTARTS AGE
grafana-b4d59bd7-mrgbr 2/2 Running 0 65m
istio-egressgateway-678dc97b4c-wrjkp 1/1 Running 0 108s
istio-ingressgateway-b45c9d54d-4qg6n 1/1 Running 0 108s
istiod-basic-55d78bbbcd-j5556 1/1 Running 0 108s
jaeger-67c75bd6dc-jv6k6 2/2 Running 0 65m
kiali-6476c7656c-x5msp 1/1 Running 0 43m
prometheus-58954b8d6b-m5std 2/2 Running 0 66m
在集群范围模式下,当您创建ServiceMeshControlPlane
资源时,也会创建ServiceMeshMemberRoll
资源。您可以在创建后修改ServiceMeshMemberRoll
资源。修改资源后,服务网格 Operator 将不再更改它。如果您使用 OpenShift Container Platform Web 控制台修改ServiceMeshMemberRoll
资源,请接受覆盖修改的提示。
或者,您可以在部署ServiceMeshControlPlane
资源之前创建ServiceMeshMemberRoll
资源。当您创建ServiceMeshControlPlane
资源时,服务网格 Operator 将不会修改ServiceMeshMemberRoll
。
|
有两种方法可以将命名空间添加到网格中。您可以通过在spec.members
列表中指定其名称来添加命名空间,或者配置一组命名空间标签选择器,以根据其标签包含或排除命名空间。
无论如何在 |
您可以使用 Kiali 控制台验证您的服务网格安装。Kiali 控制台提供了多种方法来验证您的服务网格组件是否已正确部署和配置。
先决条件
必须安装Red Hat OpenShift Service Mesh Operator。
访问 OpenShift CLI (oc
)。
您已以`cluster-admin`身份登录到 OpenShift Container Platform。
在 OpenShift Container Platform Web 控制台中,导航到**网络**→**路由**。
在**路由**页面上,从**命名空间**菜单中选择服务网格控制平面项目,例如istio-system
。
**位置**列显示每个路由的链接地址。
如有必要,请使用过滤器查找 Kiali 控制台的路由。单击路由**位置**以启动控制台。
单击**使用 OpenShift 登录**。
首次登录 Kiali 控制台时,您将看到**概述**页面,该页面显示服务网格中您有权查看的所有命名空间。当**概述**页面上显示多个命名空间时,Kiali 会首先显示存在健康或验证问题的命名空间。
每个命名空间的图块显示标签数量、**Istio 配置**健康状况、数量和**应用程序**健康状况以及命名空间的**流量**。如果您正在验证控制台安装并且尚未将命名空间添加到网格中,则可能除了istio-system
之外没有任何数据显示。
Kiali 有四个专门用于安装服务网格控制平面的命名空间的仪表板。要查看这些仪表板,请单击控制平面命名空间(例如istio-system
)图块上的选项菜单,然后选择以下选项之一
Istio 网格仪表板
Istio 控制平面仪表板
Istio 性能仪表板
Istio Wasm 扩展仪表板
Kiali 还安装了两个额外的 Grafana 仪表板,可从 Grafana**主页**访问
Istio 工作负载仪表板
Istio 服务仪表板
要查看服务网格控制平面节点,请单击**图形**页面,从菜单中选择您安装ServiceMeshControlPlane
的**命名空间**,例如istio-system
。
如有必要,请单击**显示空闲节点**。
要了解有关**图形**页面的更多信息,请单击**图形教程**链接。
要查看网格拓扑,请从**命名空间**菜单中的服务网格成员角色中选择一个或多个其他命名空间。
要查看istio-system
命名空间中的应用程序列表,请单击**应用程序**页面。Kiali 将显示应用程序的健康状况。
将鼠标悬停在信息图标上,即可查看详细信息列中注明的任何附加信息。
要查看istio-system
命名空间中的工作负载列表,请点击工作负载页面。Kiali将显示工作负载的健康状况。
将鼠标悬停在信息图标上,即可查看详细信息列中注明的任何附加信息。
要查看istio-system
命名空间中的服务列表,请点击服务页面。Kiali将显示服务和配置的健康状况。
将鼠标悬停在信息图标上,即可查看详细信息列中注明的任何附加信息。
要查看istio-system
命名空间中Istio配置对象的列表,请点击Istio配置页面。Kiali将显示配置的健康状况。
如果存在配置错误,请点击该行,Kiali将打开包含突出显示错误的配置文件。
Red Hat OpenShift Service Mesh支持集群内多个独立的控制平面。您可以使用ServiceMeshControlPlane
配置文件创建可重用的配置。更多信息,请参见 创建控制平面配置文件。
将项目添加到服务网格,以便应用程序可以可用。更多信息,请参见 将服务添加到服务网格。