云原生Istio案例实战 2

简介: 云原生Istio案例实战

2.3 启动bookinfo

进入istio安装目录:/home/tools/istio-1.0.6/samples/bookinfo/platform/kube

找到bookinfo.yaml文件

查看需要的image个数:

cat bookinfo.yaml | grep image:

里面就是bookinfo案例所需要依赖的镜像地址

  • 执行命令
kubectl apply -f  bookinfo.yaml -n bookinfo-ns
  • 查看pod情况
kubectl get pods -n bookinfo-ns
# 会发现有两个container,有两个container的原因是因为我们有自动注入,这边有六个服务,其实只要四个服务,有一个服务有三个版本仅此而已

  • 查看pod明细
kubectl describe pods pod名字 -n bookinfo-ns
# 例如:kubectl describe pods reviews-v1-fd6c96c74-cmqcx -n bookinfo-ns

会发现有两个container,一个是我们自己的container,另外一个是自动注入的代理container

  • 检查一下service
kubectl get svc -n bookinfo-ns

可以看到service的类似clusterip类型

  • 验证Bookinfo 应用是否正在运行

请在某个 Pod 中用 curl 命令对应用发送请求,例如 ratings

  • 执行命令
   kubectl exec -it $(kubectl get pod -l app=ratings -n bookinfo-ns -o jsonpath='{.items[0].metadata.name}') -c ratings -n bookinfo-ns -- curl productpage:9080/productpage | grep -o "<title>.*</title>"

看到如图所示表示bookinfo启动成功

命令分析一下

kubectl get pod -l app=ratings -n bookinfo-ns -o jsonpath='{.items[0].metadata.name}';表示的是输出ratings 这个运行时pod的名字
kubectl exec -it $(kubectl get pod -l app=ratings -n bookinfo-ns -o jsonpath='{.items[0].metadata.name}') -c ratings -n bookinfo-ns -- curl productpage:9080/productpage | grep -o "<title>.*</title>":进入到ratings内部,然后发送一个http测试,根据响应结果找到title标签

思考:能否通过页面的方法访问bookinfo项目呢

所以下面我们用ingress方式访问bookinfo

2.4 通过ingress方式访问

  • 找到productpage-service服务的端口,打开bookInfo.yaml文件

需要给productpage暴露的9080端口进行ingress域名绑定

  • 新建productpageIngress.yaml
#ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: productpage-ingress
spec:
 rules:
 - host: productpage.istio.qy.com
   http:
     paths:
     - path: /
       backend:
         serviceName: productpage
         servicePort: 9080
  • 查询productpage这个pod分布在那台服务上,执行命令
kubectl get pods -o wide -n bookinfo-ns

服务发现在w1机器上

  • 配置hosts文件
192.168.187.137    productpage.istio.qy.com
  • 执行命令
kubectl apply -f productpageIngress.yaml -n bookinfo-ns
  • 访问地址:productpage.istio.qy.com

点击Normal user,查看书籍相关的评论

不停的刷新会有三个Reviews版本一个是不带星的一个是带黑色星的一个是带红星的,跟架构图一样的

2.5 通过istio的ingressgateway访问

2.5.1 确定 Ingress 的 IP 和端口

现在 Bookinfo 服务启动并运行中,需要使应用程序可以从外部访问 Kubernetes 集群,例如使用浏览器。可以用Istio Gateway来实现这个目标。


为应用程序定义 Ingress 网关

地址:/home/tools/istio-1.0.6/samples/bookinfo/networking有一个bookinfo-gateway.yaml

kubectl apply -f bookinfo-gateway.yaml -n bookinfo-ns
  • 查看gateway
kubectl get gateway -n bookinfo-ns

有了gateway之后我们需要配置一些环境变量

配置gateway ip环境

export INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].status.hostIP}')
# 把ingressgateway的ip设置成环境变量

分析命令意思

kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].status.hostIP}'
# 表示获取istio组件ingressgateway组件的ip

也就是说192.168.187.137就是ingressgateway组件的ip

配置gateway端口

export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')

把ingressgateway的端口设置成环境变量

分析命令意思

kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}'
# 表示获取istio组件ingressgateway组件的端口

设置gateway地址

把前面的host跟端口组成gateway地址

export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

查看INGRESS_PORT环境端口

env | grep INGRESS_PORT

测试

http://192.168.187.137:31380/productpage

不停的刷新会有三个Reviews版本一个是不带星的一个是带黑色星的一个是带红星的,跟架构图一样的

目录
相关文章
|
5月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes 你真的学废了吗---实战k8s 一(jsonpath实战)
云原生|kubernetes 你真的学废了吗---实战k8s 一(jsonpath实战)
67 0
|
2月前
|
Cloud Native Shell Linux
云原生专题 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
云原生专题 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
14 0
|
2月前
|
Java fastjson 数据安全/隐私保护
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
【Dubbo3技术专题】「云原生微服务开发实战」 一同探索和分析研究RPC服务的底层原理和实现
40 0
|
2月前
|
Cloud Native Linux 虚拟化
云原生专题 |【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(底层实现系列)
云原生专题 |【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(底层实现系列)
45 0
|
2月前
|
Dubbo Cloud Native 应用服务中间件
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
21 1
|
5月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes 你真的学废了吗---实战k8s 二(命令行创建各类资源)
云原生|kubernetes 你真的学废了吗---实战k8s 二(命令行创建各类资源)
79 1
|
5月前
|
存储 关系型数据库 MySQL
猿创征文|云原生|kubernetes实务---部署MySQL--实战(一)
猿创征文|云原生|kubernetes实务---部署MySQL--实战(一)
53 0
|
5月前
|
运维 Prometheus 监控
云原生可观测实战
云原生可观测实战
|
6月前
|
机器学习/深度学习 自然语言处理 Cloud Native
探索在云原生环境中构建的大数据驱动的智能应用程序的成功案例,并分析它们的关键要素。
大数据索引: Google使用大数据索引来构建其搜索引擎,并实时处理全球各种语言的文本数据。 云原生基础设施: Google Cloud提供了强大的云原生基础设施,支持大规模数据存储和处理。 自然语言处理: Google使用自然语言处理技术来理解和索引文本数据,从而提供高质量的搜索结果。 实时搜索: Google的
131 0
|
7月前
|
存储 Kubernetes Cloud Native
基于 Kyma 的企业级云原生应用的扩展案例分享 2
基于 Kyma 的企业级云原生应用的扩展案例分享
62 0

热门文章

最新文章