4.3. 在 Istio ambient 模式中部署 Bookinfo 应用程序
您可以使用 ZTunnel
代理在 Istio ambient 模式中部署 info
示例应用程序,而无需 sidecar 注入。有关 bookinfo
应用程序的更多信息,请参阅"关于 Bookinfo 应用程序"。
先决条件
- 您已在 OpenShift Container Platform 4.15 或更高版本上部署了集群,其中包括 Istio ambient 模式所需的支持的 Kubernetes 网关 API 自定义资源定义(CRD)。
-
根据安装方法,您可以通过 Web 控制台以具有
cluster-admin
角色的用户身份或使用oc login
命令登录 OpenShift Container Platform 集群。 - 已安装 Red Hat OpenShift Service Mesh Operator,创建 Istio 资源,Operator 已部署 Istio。
-
您已创建了
IstioCNI
资源,Operator 已部署必要的IstioCNI
pod。 -
您已创建了
Ztunnel
资源,Operator 已部署必要的Ztunnel
pod。
流程
运行以下命令来创建
info
命名空间:oc create namespace info
$ oc create namespace info
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将
istio-discovery=enabled
标签添加到info
命名空间中:oc label namespace info istio-discovery=enabled
$ oc label namespace info istio-discovery=enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令应用
info
YAML 文件来部署bookinfo
应用程序:oc apply -n info -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.26/samples/bookinfo/platform/kube/bookinfo.yaml
$ oc apply -n info -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.26/samples/bookinfo/platform/kube/bookinfo.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令应用
info-versions
YAML 文件来部署bookinfo
应用程序:oc apply -n info -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.26/samples/bookinfo/platform/kube/bookinfo-versions.yaml
$ oc apply -n info -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.26/samples/bookinfo/platform/kube/bookinfo-versions.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证
info
pod 是否正在运行:oc -n info get pods
$ oc -n info get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证
info
应用程序是否正在运行:oc exec "$(oc get pod -l app=ratings -n info \ -o jsonpath='{.items[0].metadata.name}')" \ -c ratings -n info \ -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>"
$ oc exec "$(oc get pod -l app=ratings -n info \ -o jsonpath='{.items[0].metadata.name}')" \ -c ratings -n info \ -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过标记整个命名空间或单个 pod 将 info 应用程序添加到 Istio ambient mesh 中:
要在 info 命名空间中包括所有工作负载,请运行以下命令将
istio.io/dataplane-mode=ambient
标签应用到bookinfo
命名空间:oc label namespace info istio.io/dataplane-mode=ambient
$ oc label namespace info istio.io/dataplane-mode=ambient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
要只包含特定的工作负载,请将
istio.io/dataplane-mode=ambient
标签直接应用到单个 pod。如需了解用于在网格中添加或排除工作负载的标签的更多详细信息,请参阅"添加资源"部分。
注意在 ambient mesh 中添加工作负载不需要重启或重新部署应用程序 pod。与 sidecar 模式不同,每个 pod 中的容器数量保持不变。
运行以下命令,确认 Ztunnel 代理已在 pod 网络命名空间中成功打开侦听套接字:
istioctl ztunnel-config workloads --namespace ztunnel
$ istioctl ztunnel-config workloads --namespace ztunnel
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow