# huaweicloud-istio-bookinfo-development-guide **Repository Path**: HuaweiCloudDeveloper/huaweicloud-istio-bookinfo-development-guide ## Basic Information - **Project Name**: huaweicloud-istio-bookinfo-development-guide - **Description**: 基于华为云CCE快速构建Kubernetes集群,在CCE基础上快速实现手动安装Istio以及部署istio官方demo-bookinfo的部署实践文档。 - **Primary Language**: 其他 - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-05-11 - **Last Updated**: 2023-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [TOC] **cce集群部署istio官方demo-bookinfo** ================================ **cce搭建** ----------------- 搭建一个cce集群,选择至少两个节点,且单节点内存大于32g,否则安装istio会失败 [istio官方搭建CCE教程](https://istio.io/latest/docs/setup/platform-setup/huaweicloud/) **bookinfo部署** -------------------- ### 配置kubectl - 在cce集群下载kubeconfig.json文件,放置在usr/local目录下 - 配置kubectl ``` mkdir -p $HOME/.kube mv -f kubeconfig.json $HOME/.kube/config ``` - 验证集群信息,输入kubectl cluster-info,安装成功显示如下图  - 如果没有安装kubectl,可以参考K8s官方[链接](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/)安装 ### 安装istio - 下载最新版 > curl -L https://istio.io/downloadIstio | sh - - 下载指定版 > curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.6.8 TARGET_ARCH=x86_64 sh - - 如果无法通过命令下载,请[下载](https://github.com/istio/istio/releases/tag/1.13.3)官方文件拷贝文件至/usr/local目录下 - 这里选择的是istio-1.13.3版本,解压,安装istio,大概需要5到10分钟安装完成(节点需要配置弹性IP,否则会安装失败) - 安装istio ``` cd /usr/local tar -zxvf istio-1.13.3-linux-amd64.tar.gz cd istio-1.13.3 export PATH=$PWD/bin:$PATH istioctl install --set profile=demo -y ``` 安装成功如下图  ### 部署bookInfo - 给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理;以及部署BookInfo程序 ``` kubectl label namespace default istio-injection=enabled kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml ``` 部署之后服务会逐步启动,查看下服务和应用信息 ``` kubectl get services kubectl get pods ```  大概需要10几分钟,待所有服务都显示Ready状态  - [istio官方部署参考链接](https://istio.io/latest/zh/docs/setup/getting-started/) ### 配置网关 - 关联应用和网关 > kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml - 执行下面命令以判断你的 Kubernetes 集群环境是否支持外部负载均衡: > kubectl get svc istio-ingressgateway -n istio-system  - 发现clusterIP为空,需要配置才能支持外部访问,我们这里选择用master节点IP配置 >kubectl edit service istio-ingressgateway -n istio-system  - 设置环境变量 GATEWAY_URL: ``` export INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].status.hostIP}') export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT echo "$GATEWAY_URL" ``` - 查看istio 网关信息,发现clusterIP地址已经修改 > kubectl get svc istio-ingressgateway -n istio-system ### 安装控制台插件 Kiali - 安装命令 ``` kubectl apply -f samples/addons kubectl rollout status deployment/kiali -n istio-system ``` - 编辑kiali配置文件 >kubectl edit service kiali -n istio-system  - 查看kiali > kubectl get svc -n istio-system|grep kiali  - 访问控制台成功  ### 测试 - 用 curl 命令来确认是否能够从集群外部访问 Bookinfo 应用程序 > curl -s http://${GATEWAY_URL}/productpage | grep -o "