目录
- 一.模块概览
- 二.系统环境
- 三.创建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 是一个云原生微服务演示应用程序 。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=demo
Istio安装完成后,创建一个命名空间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
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 九 前后端分离项目:实现"添加"功能(后端接口)
- 十一 Istio:向istio服务网格中引入虚拟机
- 四 SoringCloud -微信获取用户信息
- 九 Istio:istio安全之授权
- 快读《ASP.NET Core技术内幕与项目实战》WebApi3.1:WebApi最佳实践
- 五 Istio:使用服务网格Istio进行流量路由
- IQueryable和IEnumerable 快读《ASP.NET Core技术内幕与项目实战》EFCore2.5:集合查询原理揭秘
- 二 Istio:在Kubernetes(k8s)集群上安装部署istio1.14
- 19 基于.NetCore开发博客项目 StarBlog - Markdown渲染方案探索
- 项目案例使用有效 解决ffmpeg的播放摄像头的延时优化问题