1.8. 创建 ServiceMeshControlPlane
您可以使用 OpenShift Container Platform Web 控制台或使用 oc
客户端工具从命令行部署 ServiceMeshControlPlane
(SMCP)的基本安装。
这一基本安装根据默认的 OpenShift 设置进行配置,不并是针对生产环境用途而设计的。使用这个默认安装来验证安装,然后为您的环境配置 ServiceMeshControlPlane
。
Red Hat OpenShift Service on AWS(ROSA)会对您可以创建资源的位置有额外的限制,这会导致默认部署无法正常工作。在 ROSA 环境中部署 SMCP 前,请参阅在 AWS 上安装 Red Hat OpenShift Service Mesh 以了解额外的要求。
Service Mesh 文档使用 istio-system
作为示例项目,但您可以将服务网格部署到任何项目中。
1.8.1. 从 web 控制台部署 Service Mesh control plane
您可以使用 Web 控制台部署基本 ServiceMeshControlPlane
。在本例中,istio-system
是 Service Mesh control plane 项目的名称。
先决条件
- 必须安装 Red Hat OpenShift Service Mesh Operator。
-
具有
cluster-admin
角色的帐户。
流程
-
以具有
cluster-admin
角色的用户身份登录到 OpenShift Container Platform web 控制台。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有dedicated-admin
角色的帐户。 创建一个名为
istio-system
的项目。-
浏览至 Home
Project。 - 点击 Create Project。
在 Name 字段中输入
istio-system
。ServiceMeshControlPlane
资源必须安装在独立于您的微服务和 Operator 的项目中。这些步骤使用
istio-system
作为示例,但您可以在任何项目中部署 Service Mesh control plane,只要它与包含您的服务的项目分开。- 点 Create。
-
浏览至 Home
-
导航到 Operators
Installed Operators。 - 点 Red Hat OpenShift Service Mesh Operator,然后点 Istio Service Mesh Control Plane。
- 在 Istio Service Mesh Control Plane 选项卡中,点 Create ServiceMeshControlPlane。
在 Create ServiceMeshControlPlane 页面中,接受默认的 Service Mesh control plane 版本,以利用该产品的最新版本中提供的功能。control plane 的版本决定了与 Operator 版本无关的可用功能。
您可以在以后配置
ServiceMeshControlPlane
设置。如需更多信息,请参阅配置 Red Hat OpenShift Service Mesh。- 点 Create。Operator 根据您的配置参数创建 pod、服务和 Service Mesh control plane 组件。
要验证 control plane 是否已正确安装,请点击 Istio Service Mesh Control Plane 标签页。
- 点新的 control plane 的名称。
- 点 Resources 标签页来查看由 Operator 创建并配置的 Red Hat OpenShift Service Mesh control plane 资源。
1.8.2. 使用 CLI 部署 Service Mesh control plane
您可以使用命令行部署基本的 ServiceMeshControlPlane
。
先决条件
- 必须安装 Red Hat OpenShift Service Mesh Operator。
-
访问 OpenShift CLI(
oc
)。
流程
以具有
cluster-admin
角色的用户身份登录 OpenShift Container Platform CLI。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有dedicated-admin
角色的帐户。$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
创建一个名为
istio-system
的项目。$ oc new-project istio-system
使用以下示例,创建一个名为
istio-installation.yaml
的ServiceMeshControlPlane
文件。Service Mesh control plane 的版本决定了与 Operator 版本无关的可用功能。版本 2.2 istio-installation.yaml 示例
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic namespace: istio-system spec: version: v2.2 tracing: type: Jaeger sampling: 10000 addons: jaeger: name: jaeger install: storage: type: Memory kiali: enabled: true name: kiali grafana: enabled: true
运行以下命令来部署 Service Mesh control plane,其中
<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 jaeger-67c75bd6dc-jv6k6 2/2 Running 0 65m kiali-6476c7656c-x5msp 1/1 Running 0 43m prometheus-58954b8d6b-m5std 2/2 Running 0 66m wasm-cacher-basic-8c986c75-vj2cd 1/1 Running 0 65m
1.8.3. 使用 CLI 验证 SMCP 安装
您可以从命令行验证 ServiceMeshControlPlane
创建。
流程
以具有
cluster-admin
角色的用户身份登录 OpenShift Container Platform CLI。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有dedicated-admin
角色的帐户。$ oc login https://<HOSTNAME>:6443
运行以下命令,以验证 Service Mesh control plane 安装,其中
istio-system
是安装 Service Mesh control plane 的命名空间。$ oc get smcp -n istio-system
当
STATUS
列是ComponentsReady
时,安装成功完成。NAME READY STATUS PROFILES VERSION AGE basic 10/10 ComponentsReady ["default"] 2.1.1 66m
1.8.4. 使用 Kiali 验证 SMCP 安装
您可以使用 Kiali 控制台验证 Service Mesh 安装。Kiali 控制台提供了一种方式来验证您的 Service Mesh 组件是否已正确部署和配置。
流程
-
以具有 cluster-admin 权限的用户身份登录到 OpenShift Container Platform web 控制台。如果使用 Red Hat OpenShift Dedicated,则必须有一个具有
dedicated-admin
角色的帐户。 -
进入 Networking
Routes。 在 Routes 页面中,从 Namespace 菜单中选择 Service Mesh control plane 项目,如
istio-system
。Location 列显示每个路由的链接地址。
- 如果需要,使用过滤器查找 Kiali 控制台的路由。单击路由 位置 以启动控制台。
单击 Log In With OpenShift。
第一次登录到 Kiali 控制台时,您会看到 Overview 页面,它会显示服务网格中您有权查看的所有命名空间。当 Overview 页中显示多个命名空间,Kiali 会首先显示具有健康或验证问题的命名空间。
图 1.1. Kiali Overview 页
每个命名空间的 tile 会显示标签数量、Istio 配置健康、和 应用程序 健康状态的数量,以及命名空间的流量。如果您验证了控制台安装,且命名空间还没有添加到网格中,则可能无法显示
istio-system
以外的任何数据。Kiali 有四个仪表板,专门用于安装了 Service Mesh control plane 的命名空间。要查看这些仪表板,请点击 control plane 命名空间的标题 的 Options 菜单,如
istio-system
,然后选择以下选项之一:- Istio Mesh Dashboard
- Istio Control Plane Dashboard
- Istio Performance Dashboard
Istio Wasm Exetension Dashboard
图 1.2. Grafana Istio Control Plane Dashboard
Kiali 还会安装两个额外的 Grafana 仪表板,它们可从 Grafana Home 页面获得:
- Istio Workload Dashboard
- Istio Service Dashboard
要查看 Service Mesh control plane 节点,点 Graph 页面,从菜单中选择安装
ServiceMeshControlPlane
的命名空间,如istio-system
。- 如有必要,请单击 Display idle nodes。
- 要了解更多有关 Graph 页面的信息,请点击 Graph tour 链接。
- 要查看网格拓扑,请从 Namespace 菜单中从 Service Mesh Member Roll 中选择一个或多个附加命名空间。
要查看
istio-system
命名空间中的应用程序列表,请点击 Applications 页面。Kiali 显示应用程序的健康状况。- 将鼠标指针悬停在信息图标上,以查看 Details 列中记下的任何其他信息。
要在
istio-system
命名空间中查看工作负载列表,请点击 Workloads 页面。Kiali 显示工作负载的运行状况。- 将鼠标指针悬停在信息图标上,以查看 Details 列中记下的任何其他信息。
要查看
istio-system
命名空间中的服务列表,点 Services 页面。Kiali 显示服务和配置的健康状态。- 将鼠标指针悬停在信息图标上,以查看 Details 列中记下的任何其他信息。
要查看
istio-system
命名空间中的 Istio Configuration 对象列表,点 Istio Config 页面。Kiali 显示配置的健康状况。- 如果出现配置错误,点行,Kiali 会打开配置文件并突出显示错误。
1.8.5. Installing on Red Hat OpenShift Service on AWS (ROSA)
从 2.2 版本开始,Red Hat OpenShift Service Mesh 支持在 AWS 上的 Red Hat OpenShift Service(ROSA)上安装。本节记录了在这个平台上安装 Service Mesh 时的额外要求。
1.8.5.1. 安装位置
在安装 Red Hat OpenShift Service Mesh 并创建 ServiceMeshControlPlane
时,您必须创建一个新命名空间,如 istio-system
。
1.8.5.2. 所需的 Service Mesh control plane 配置
ServiceMeshControlPlane
文件中的默认配置无法在 ROSA 集群中工作。在 AWS 上的 Red Hat OpenShift Service 上安装时,您必须修改默认的 SMCP 并设置 spec.security.identity.type=ThirdParty
。
ROSA 的 ServiceMeshControlPlane
资源示例
apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic namespace: istio-system spec: version: v2.2 security: identity: type: ThirdParty #required setting for ROSA tracing: type: Jaeger sampling: 10000 policy: type: Istiod addons: grafana: enabled: true jaeger: install: storage: type: Memory kiali: enabled: true prometheus: enabled: true telemetry: type: Istiod
1.8.5.3. 对 Kiali 配置的限制
Red Hat OpenShift Service on AWS 对创建资源并不允许在 Red Hat managed 命名空间中创建 Kiali 资源方面存在额外的限制。
这意味着,在 ROSA 集群中不允许使用 spec.deployment.access_namespaces
的以下通用设置:
-
['**']
(所有命名空间) -
default
-
codeready-*
-
openshift-*
-
redhat-*
验证错误消息提供了所有受限命名空间的完整列表。
ROSA 的 Kiali
资源示例
apiVersion: kiali.io/v1alpha1 kind: Kiali metadata: name: kiali namespace: istio-system spec: auth: strategy: openshift deployment: accessible_namespaces: #restricted setting for ROSA - istio-system image_pull_policy: '' ingress_enabled: true namespace: istio-system
1.8.6. 其他资源
Red Hat OpenShift Service Mesh 支持集群中的多个独立 control plane。您可以使用 ServiceMeshControlPlane
配置集创建可重复使用的配置。如需更多信息,请参阅创建 control plane 配置集。
1.8.7. 后续步骤
创建一个 ServiceMeshMemberRoll
资源来指定与 Service Mesh 关联的命名空间。如需更多信息,请参阅在服务网格中添加服务。