4.4. 在 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 已部署必要的IstioCNIpod。 -
您已创建了
Ztunnel资源,Operator 已部署必要的Ztunnelpod。
流程
运行以下命令来创建
info命名空间:oc create namespace info
$ oc create namespace infoCopy 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=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令应用
infoYAML 文件来部署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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令应用
info-versionsYAML 文件来部署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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证
infopod 是否正在运行:oc -n info get pods
$ oc -n info get podsCopy 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=ambientCopy 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 ztunnelCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow