十三 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集群版本如下:

经验总结扩展阅读