十三 Istio:Istio项目实际案例——Online Boutique

目录

  • 一.模块概览
  • 二.系统环境
  • 三.创建Kubernetes(k8s)集群
    • 3.1 创建Kubernetes(k8s)集群
    • 3.2 Kubernetes集群环境
  • 四.安装istio
    • 4.1 安装Istio
  • 五.部署online Boutique应用
    • 5.1 部署 Online Boutique 应用
  • 六.部署可观察性工具
    • 6.1 部署可观察性工具
  • 七.流量路由
    • 7.1 流量路由
  • 八.故障注入
    • 8.1 故障注入
  • 九.弹性
    • 9.1 弹性
一.模块概览在本模块中,我们将部署名为 Online Boutique 的微服务应用程序,试用 Istio 的不同功能 。
Online Boutique 是一个云原生微服务演示应用程序 。Online Boutique 是一个由 10 个微服务组成的应用 。该应用是一个基于 Web 的电子商务应用,用户可以浏览商品,将其添加到购物车,并购买商品 。
二.系统环境服务器版本docker软件版本Kubernetes(k8s)集群版本Istio软件版本CPU架构CentOS Linux release 7.4.1708 (Core)Docker version 20.10.12v1.21.9Istio1.14x86_64三.创建Kubernetes(k8s)集群3.1 创建Kubernetes(k8s)集群我们需要一套可以正常运行的Kubernetes集群,关于Kubernetes(k8s)集群的安装部署,可以查看博客《Centos7 安装部署Kubernetes(k8s)集群》https://www.cnblogs.com/renshengdezheli/p/16686769.html
3.2 Kubernetes集群环境Kubernetes集群架构:k8scloude1作为master节点,k8scloude2,k8scloude3作为worker节点
服务器操作系统版本CPU架构进程功能描述k8scloude1/192.168.110.130CentOS Linux release 7.4.1708 (Core)x86_64docker , kube-apiserver,etcd , kube-scheduler,kube-controller-manager , kubelet , kube-proxy,coredns,calicok8s master节点k8scloude2/192.168.110.129CentOS Linux release 7.4.1708 (Core)x86_64docker,kubelet,kube-proxy,calicok8s worker节点k8scloude3/192.168.110.128CentOS Linux release 7.4.1708 (Core)x86_64docker , kubelet,kube-proxy,calicok8s worker节点四.安装istio4.1 安装IstioIstio最新版本为1.15,因为我们Kubernetes集群版本为1.21.9 , 所以我们选择安装Istio 1.14版本 。
[root@k8scloude1 ~]# kubectl get nodeNAMESTATUSROLESAGEVERSIONk8scloude1Readycontrol-plane,master288dv1.21.9k8scloude2Ready<none>288dv1.21.9k8scloude3Ready<none>288dv1.21.9我们将安装 Istio的demo 配置文件 , 因为它包含所有的核心组件 , 启用了跟踪和日志记录 , 便于学习不同的 Istio 功能 。关于istio的详细安装部署,请查看博客《Istio(二):在Kubernetes(k8s)集群上安装部署istio1.14》https://www.cnblogs.com/renshengdezheli/p/16836404.html
也可以按照如下使用 GetMesh CLI 在Kubernetes集群中安装 Istio。
下载 GetMesh CLI:
curl -sL https://istio.tetratelabs.io/getmesh/install.sh | bash安装 Istio:
getmesh istioctl install --set profile=demoIstio安装完成后,创建一个命名空间online-boutique,新的项目就部署在online-boutique命名空间下,给命名空间online-boutique设置上 istio-injection=enabled 标签,启用sidecar 自动注入 。
#创建命名空间online-boutique[root@k8scloude1 ~]# kubectl create ns online-boutiquenamespace/online-boutique created#切换命名空间[root@k8scloude1 ~]# kubens online-boutiqueContext "kubernetes-admin@kubernetes" modified.Active namespace is "online-boutique".#让命名空间online-boutique启用sidecar 自动注入[root@k8scloude1 ~]# kubectl label ns online-boutique istio-injection=enablednamespace/online-boutique labeled[root@k8scloude1 ~]# kubectl get ns -l istio-injection --show-labelsNAMESTATUSAGELABELSonline-boutiqueActive16mistio-injection=enabled,kubernetes.io/metadata.name=online-boutique五.部署online Boutique应用5.1 部署 Online Boutique 应用在集群和 Istio 准备好后 , 我们可以克隆 Online Boutique 应用库了 。istio和k8s集群版本如下:
[root@k8scloude1 ~]# istioctl versionclient version: 1.14.3control plane version: 1.14.3data plane version: 1.14.3 (1 proxies)[root@k8scloude1 ~]# kubectl get nodesNAMESTATUSROLESAGEVERSIONk8scloude1Readycontrol-plane,master283dv1.21.9k8scloude2Ready<none>283dv1.21.9k8scloude3Ready<none>283dv1.21.9使用git克隆代码仓库:
#安装git[root@k8scloude1 ~]# yum -y install git#查看git版本[root@k8scloude1 ~]# git versiongit version 1.8.3.1#创建online-boutique目录,项目放在该目录下[root@k8scloude1 ~]# mkdir online-boutique[root@k8scloude1 ~]# cd online-boutique/[root@k8scloude1 online-boutique]# pwd/root/online-boutique#git克隆代码[root@k8scloude1 online-boutique]# git clone https://github.com/GoogleCloudPlatform/microservices-demo.git正克隆到 'microservices-demo'...remote: Enumerating objects: 8195, done.remote: Counting objects: 100% (332/332), done.remote: Compressing objects: 100% (167/167), done.remote: Total 8195 (delta 226), reused 241 (delta 161), pack-reused 7863接收对象中: 100% (8195/8195), 30.55 MiB | 154.00 KiB/s, done.处理 delta 中: 100% (5823/5823), done.[root@k8scloude1 online-boutique]# lsmicroservices-demo

推荐阅读