天天看点

Service Mesh k8s容器化-服务网格 Istio-案例一、在线书店部署测试·示例应用、前言一、架构图二、开始安装创建Ingress Gateway

部署测试·示例应用、

bookinfo这个应用是一个在线书店的演示系统

文章目录

  • 部署测试·示例应用、
    • 为什么要用到 服务器网格
  • 前言
  • 一、架构图
  • 二、开始安装
  • 创建Ingress Gateway

为什么要用到 服务器网格

1、服务之间通讯安全没有保障 ,

(节点于节点通讯,未能实现加密通讯,就有可能被被人嗅探走数据)

2、跟踪通讯延迟非常困难

(他的通讯经历了哪些中间主键,如果要诊断问题,其实是不好实现的)

3、负责均衡功能有限

(k8s 里面 负载只有 通过server ,只能实现ipvs 核心基础调度,无法实现 流量分割,流量迁移,ab测试,流量镜像,等等功能)

在这里插入图片描述

Service Mesh k8s容器化-服务网格 Istio-案例一、在线书店部署测试·示例应用、前言一、架构图二、开始安装创建Ingress Gateway
Service Mesh k8s容器化-服务网格 Istio-案例一、在线书店部署测试·示例应用、前言一、架构图二、开始安装创建Ingress Gateway

前言

Istio是做什么的,这里就不在详细讲解了,可以看我上期博客,里面已经写清楚了

一、架构图

Service Mesh k8s容器化-服务网格 Istio-案例一、在线书店部署测试·示例应用、前言一、架构图二、开始安装创建Ingress Gateway

二、开始安装

#开启default 的 sidecar 自动注入,因为所有pod 都是运行在默认ns 里面的

[email protected]:~$  kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

[email protected]:~$ kubectl  get pod
NAME                              READY   STATUS      RESTARTS   AGE
details-v1-7f4669bdd9-bqsxw       2/2     Running      0          3m33s
productpage-v1-5586c4d4ff-6mp7v   2/2     Running      0          3m31s
ratings-v1-6cf6bc7c85-75qxt       2/2     Running      0          3m33s
reviews-v1-7598cc9867-sv2v6       2/2     Running      0          3m33s
reviews-v2-6bdd859457-vcwpz       2/2     Running      0          3m32s
reviews-v3-6c98f9d7d7-g8dfx       2/2     Running      0          3m32s



kubectl exec "$(kubectl get pod -l app=ratings -o \
jsonpath='{.items[0].metadata.name}')" \
-c ratings -- curl -sS \
productpage:9080/productpage | grep -o "<title>.*</title>"

<title>Simple Bookstore App</title>
这时候就说明可以访问 Envoy了
           

#验证到目前为止一切正常。运行以下命令,通过检查响应中的页面标题来查看应用程序是否在集群内运行并提供 HTML 页面:

Service Mesh k8s容器化-服务网格 Istio-案例一、在线书店部署测试·示例应用、前言一、架构图二、开始安装创建Ingress Gateway
Service Mesh k8s容器化-服务网格 Istio-案例一、在线书店部署测试·示例应用、前言一、架构图二、开始安装创建Ingress Gateway

创建Ingress Gateway

(Istio入站网关),将应用关联到istio网关:

此时Bookinfo应用虽然已经部署,但还不能被外界访问。

kubectl apply -f istio-1.15.0/samples/bookinfo/networking/bookinfo-gateway.yaml

kubectl get vs
kubectl get svc istio-ingressgateway -n istio-system
           

这类意味着我们访问任何一个 节点的30707 端都会被转发到 ingressgateway,但是这并不是最好的方法,

我们应该有个 loadBanlancer 来负责去请求 k8s 每个节点的node -pod,用户直接访问 loadBanlancer 地址

Service Mesh k8s容器化-服务网格 Istio-案例一、在线书店部署测试·示例应用、前言一、架构图二、开始安装创建Ingress Gateway

从集群外部访问bookinfo应用

http://192.168.10.148:30707/productpage

Service Mesh k8s容器化-服务网格 Istio-案例一、在线书店部署测试·示例应用、前言一、架构图二、开始安装创建Ingress Gateway

这里呢就进入了 书店的后台,说明已经部署完成了

我们在去看看 网络走势图

Service Mesh k8s容器化-服务网格 Istio-案例一、在线书店部署测试·示例应用、前言一、架构图二、开始安装创建Ingress Gateway

图例看出了 v1 版本 和 v2 版本 这时候 istio 就可以做 流量自动负载均衡,或者 微服务的 蓝禄部署了

继续阅读