istio学习(2)bookinfo示例

自动注入

istio网格服务的实现需要基于注入,istio的注入指的是在原基础的pod中再新创建一个容器,以sidecar的形式和原来的容器一起运行。以bookinfo的默认实例来说。
未注入前的实例为:
在这里插入图片描述
将sidecar进行注入后:
在这里插入图片描述
原来是服务与服务之间相互调用,但是注入后所有微服务都将与一个 Envoy sidecar 打包在一起,它拦截服务的传入和传出调用,通过 Istio 控制平面、路由、遥测收集和整个应用程序的策略执行提供外部控制所需的钩子。
同时自动注入也非常的简单,只需要给需要注入的命名空间打上一个标签即可。

kubectl label namespaces  default istio-injection=enabled

或者我们不想让命名空间下的所有服务都进行注入,那我们也可以手动注入单个服务。

kube-inject -f xxx.yaml | kubectl apply   -f - ##首先需要拿到yaml文件,让istio注入文件后直接apply

bookinfo示例

部署bookinfo

kubectl apply -f bookinfo/platform/kube/bookinfo.yaml 

部署完成后等待应用启动

[root@localhost addons]# kubectl get pod
NAME                              READY   STATUS    RESTARTS      AGE
details-v1-5498c86cf5-tqbpj       2/2     Running   2 (18h ago)   4d16h
productpage-v1-65b75f6885-5fjng   2/2     Running   2 (18h ago)   4d16h
ratings-v1-b477cf6cf-br7h9        2/2     Running   2 (18h ago)   4d16h
reviews-v1-79d546878f-ft946       2/2     Running   2 (18h ago)   4d16h
reviews-v2-548c57f459-4cbhs       2/2     Running   2 (18h ago)   4d16h
reviews-v3-6dd79655b9-dn7gc       2/2     Running   2 (18h ago)   4d16h

这个时候我们可以看到READY是两个,再通过kubectl describe pod details-v1-5498c86cf5-tqbpj命令查看内部具体增加的什么容器。
在这里插入图片描述
从上面的图片可以看到,里面除了有一个默认的details容器外还有一个istio-proxy的容器,这个容器就是前面所说到的sidecar服务,主要用来做流量转发和流量劫持的,但是这个还不是注入的本质,再看创建容器之前还做了什么操作。
在创建容器之前还有一个初始化的步骤。
在这里插入图片描述
从图中我们看到,这个初始化的本质其实还是对iptables进行一些操作。

介绍完这些之后再回来看看示例。

[root@localhost ~]# kubectl get svc
NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
details       ClusterIP   10.68.37.147    <none>        9080/TCP   4d16h
kubernetes    ClusterIP   10.68.0.1       <none>        443/TCP    11d
productpage   ClusterIP   10.68.165.107   <none>        9080/TCP   4d16h
ratings       ClusterIP   10.68.126.87    <none>        9080/TCP   4d16h
reviews       ClusterIP   10.68.101.69    <none>        9080/TCP   4d16h

[root@localhost ~]# curl 10.68.165.107:9080 | grep  -o "<title>.*</title>"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1683  100  1683    0     0   650k      0 --:--:-- --:--:-- --:--:--  821k
<title>Simple Bookstore App</title>

示例设置完成后无法在网页上直接访问,下来需要设置网关入口。

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

网关设置完成需要确认网关确实创建

[root@localhost ~]# kubectl get gateways.networking.istio.io 
NAME               AGE
bookinfo-gateway   4d16h

如何访问,需要将ingress设置为nodeport

[root@localhost ~]# kubectl get svc -n istio-system 
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                                                      AGE
grafana                NodePort    10.68.234.129   <none>        3000:30587/TCP                                                               4d18h
istio-egressgateway    ClusterIP   10.68.246.26    <none>        80/TCP,443/TCP                                                               4d18h
istio-ingressgateway   NodePort    10.68.169.170   <none>        15021:31793/TCP,80:32192/TCP,443:31965/TCP,31400:30983/TCP,15443:32007/TCP   4d18h
istiod                 ClusterIP   10.68.124.64    <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP                                        4d18h
jaeger-collector       ClusterIP   10.68.47.19     <none>        14268/TCP,14250/TCP,9411/TCP                                                 4d18h
kiali                  NodePort    10.68.130.213   <none>        20001:30134/TCP,9090:32608/TCP                                               4d18h
prometheus             ClusterIP   10.68.99.184    <none>        9090/TCP                                                                     4d18h
tracing                ClusterIP   10.68.175.144   <none>        80/TCP,16685/TCP                                                             4d18h 

这时候访问网页。
在这里插入图片描述
同时不断的刷新就可以看到网页的星星有不同的变化,因为reviews服务有三个版本,通过默认调用service会均匀的负载到reviews中。想要更直观的查看服务的调用可以再将kiali也使用nodeport暴露出来在网页上进行查看。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值