Bookinfo可以在sample这个folder里面找到,官方是使用这个专案demo istio的功能特性,那我也来手把手跟着做做看
detailsreviews
ratings
ratigs
服务ratigs
服务,并使用 1 到 5 个黑色星形图示来显示评分ratigs
服务,并使用 1 到 5 个红色星形图示来显示评分没透过istio来进行服务间的沟通时,变成服务本身要自行与对应的服务进行沟通
图片来源
使用istio时,每个服务间都是透过istio进行沟通
图片来源
Bookinfo服务装在namespace: default
上面,所以要先进行istio-injection
,使用sidecar
的方式把istio注入pod里
kubectl label namespace default istio-injection=enabled
namespace/default labeled
部署samples里面的bookinfo.yaml档
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
service/details created
serviceaccount/bookinfo-details created
deployment.apps/details-v1 created
service/ratings created
serviceaccount/bookinfo-ratings created
deployment.apps/ratings-v1 created
service/reviews created
serviceaccount/bookinfo-reviews created
deployment.apps/reviews-v1 created
deployment.apps/reviews-v2 created
deployment.apps/reviews-v3 created
service/productpage created
serviceaccount/bookinfo-productpage created
deployment.apps/productpage-v1 created
确定一下pod是否有正常启动,这边有node资源最低的要求,4g ram感觉不太够,会遇到pod因为资源不足无法启动,所以我这边的spec是4c8g
kubectl get pods -n default
NAME READY STATUS RESTARTS AGE
details-v1-79f774bdb9-259mt 2/2 Running 0 53s
productpage-v1-6b746f74dc-z2d6k 2/2 Running 0 53s
ratings-v1-b6994bb9-pczcp 2/2 Running 0 53s
reviews-v1-545db77b95-qqgp4 2/2 Running 0 53s
reviews-v2-7bf8c9648f-8ff5x 2/2 Running 0 53s
reviews-v3-84779c7bbc-g6jgf 2/2 Running 0 53s
确认istio是否有透过sidecar执行,看到有istio-init跟istio-proxy的container在执行就没错啦~~
测试一下是否一切都正常
kubectl exec -ti ratings-v1-b6994bb9-pczcp -- /bin/bash
node@ratings-v1-b6994bb9-pczcp:/opt/microservices$ curl productpage:9080/productpage
如果有下面的资讯就一切都正常啦
<!DOCTYPE html>
<html>
<head>
<title>Simple Bookstore App</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
....
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
gateway.networking.istio.io/bookinfo-gateway created
virtualservice.networking.istio.io/bookinfo created
来看看bookinfo-gateway.yaml做什麽
apiVersion: networking.istio.io/v1alpha3
kind: Gateway #建立一个Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 80 # 使用80port
name: http
protocol: HTTP
hosts: 这边是没指定host name
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService 建立virtual service
metadata:
name: bookinfo
spec:
hosts: # 当host是*时,会根据path不同导到productpage
- "*"
gateways:
- bookinfo-gateway
http:
- match:
- uri:
exact: /productpage
- uri:
prefix: /static
- uri:
exact: /login
- uri:
exact: /logout
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
因为这边我是部署到gcp上面,所以有一组外部ip,开启http://[external_ip]/productpage後会看到部署的bookinfo网页
下一篇来讲讲上面提到的一个东西VirtualService
<<: Day 30:Google Map 结合口罩资料 & 铁人赛最後一天
如同前几天所说 「估计战力」是可以依照想看的不同能力去做的 例如我们把题目先依照章节进行分类 再去看...
今天要讲物件这种资料型态,那他是什麽呢? 他就是可以存放很多的资料,有各种的key、value ke...
由於目前人在美东,与台湾的时差刚好 12hr,完全可以说出:「当我在睡觉时,台湾的大家都还在认真工作...
分拆Split() 添加Insert() | 长度Length() 指标位置IndexOf() |...
这几天公司连接网路印表机的电脑报出"0x00000709"无法使用错误 目前爬文...