K8S学习之基础七十四:部署在线书店bookinfo

部署在线书店bookinfo

在线书店-bookinfo

该应用由四个单独的微服务构成,这个应用模仿在线书店的一个分类,显示一本书的信息,页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。

Bookinfo应用分为四个单独的微服务

1)productpage这个微服务会调用details和reviews两个微服务,用来生成页面;

2)details这个微服务中包含了书籍的信息;

3)reviews这个微服务中包含了书籍相关的评论,它还会调用ratings微服务;

4)ratings这个微服务中包含了由书籍评价组成的评级信息。

reviews微服务有3个版本

1)v1版本不会调用ratings服务;

2)v2版本会调用ratings服务,并使用1到5个黑色星形图标来显示评分信息;

3)v3版本会调用ratings服务,并使用1到5个红色星形图标来显示评分信息。

下图展示了这个应用的端到端架构

Bookinfo应用中的几个微服务是由不同的语言编写的。这些服务对istio并无依赖,但是构成了一个有代表性的服务网格的例子:它由多个服务、多个语言构成,并且reviews服务具有多个版本。

要在Istio中运行这一应用,无需对应用自身做出任何改变。 只要简单的在 Istio 环境中对服务进行配置和运行,具体一点说就是把 Envoy sidecar 注入到每个服务之中。 最终的部署结果将如下图所示:

istio默认自动注入 sidecar,需要为default命名空间打上标签istio-injection=enabled

复制代码
kubectl label namespace default istio-injection=enabled

上传bookinfo镜像到harbor

使用kubectl部署应用,将kube下的镜像替换为harbor的镜像

复制代码
cd istio/istio-1.18.2/samples/bookinfo/platform/kube
sed -i 's/docker.io/172.16.80.140/g' *
grep 172 *
kubectl apply -f bookinfo.yaml
kubectl get pods
kubectl get svc




由上图可以看出,新生成的pod都有两个容器

将svc productpage的type修改为NodePort,通过浏览器访问

istio也创建了几个对应的svc

复制代码
kubectl get svc -n istio-system

这几个svc代理对应到istio的几个pod

创建网关和虚拟服务

复制代码
cd samples/bookinfo/networking
kubectl apply -f bookinfo-gateway.yaml
kubectl get svc -n istio-system


刷新页面

相关推荐
andrsted1 小时前
练题簿在线免费刷题:让整理过的资料,变成能反复练习的题库
学习·微信小程序·小程序·学习方法·刷题·1024程序员节
Alsn862 小时前
Windows 安装 Ollama 及本地模型部署
学习·1024程序员节
欣欣之王来了3 小时前
原始HTML插值:v-html指令的使用与安全风险
前端·学习·架构·项目·vue3教程
孔令飞3 小时前
工具分享:OneX AI 工具安装、配置及功能介绍
云原生·go·ai编程
程序猿阿越5 小时前
从 StatefulSet 到容器挂载:CSI 源码走读
后端·kubernetes·源码阅读
知识分享小能手5 小时前
C学习教程,从入门到精通,C语言学生信息管理系统 — 知识点详解(18)
c语言·学习·1024程序员节
破芽6 小时前
learn-claude-code-s05-s11-学习笔记
笔记·学习
pipixia200336 小时前
C++ 面试高频:namespace 的 6 个知识点,从 using 到匿名命名空间
c语言·学习·算法·嵌入式·命名空间·c++面试·匿名命名空间
每天题库6 小时前
汽车维修工等级考试题库 理论实操核心考点一次梳理清
学习·安全·考试·题库·考证
分布式存储与RustFS6 小时前
机器要下线,数据先线上搬家:RustFS 存储池退役实操
运维·云原生·开源·对象存储·分布式存储·s3·性能基准