遵义网站开发公司推广网app下载
- 作者: 五速梦信息网
- 时间: 2026年03月21日 04:57
当前位置: 首页 > news >正文
遵义网站开发公司,推广网app下载,一个购物网站开发的可行性,华亭县建设局网站2017参考Istio 入门(三)#xff1a;体验 Istio、微服务部署、可观测性 - 痴者工良 - 博客园 (cnblogs.com)
在本章中#xff0c;我们将会学习到如何部署一套微服务、如何使用 Istio 暴露服务到集群外#xff0c;并且如何使用可观测性组件监测流量和系统指标。
本章教程示例使用…参考Istio 入门(三)体验 Istio、微服务部署、可观测性 - 痴者工良 - 博客园 (cnblogs.com)
在本章中我们将会学习到如何部署一套微服务、如何使用 Istio 暴露服务到集群外并且如何使用可观测性组件监测流量和系统指标。
本章教程示例使用的是 Istio 官方的一套微服务这套微服务是一个在线书店打开页面之后会看到一个分类、书的信息以及书的评论页面的内容由不同的子服务提供。
书店微服务分为四个单独的微服务在上图中已经使用红色方框画出来了。这四个微服务分别是
productpage 汇集所有服务的数据生成浏览页面。details存储了书籍的信息如描述、作者、出版社等。reviews存储了书籍相关的评论但是不包含评分打星。ratings存储评论中的评分打星。 Productpage 服务对外提供 Web 访问页面而且其它的三个服务只能在集群内部访问。四个服务分别采用了不同的语言开发Productpage 聚合其它三个服务的信息生成一个页面。 预先准备
给这些示例服务创建一个命名空间。
kubectl create namespace bookinfo 给命名空间添加 Istio 的标签指示 Istio 在部署应用只对 Pod 起效的时候自动注入 Envoy Sidecar Proxy 容器
kubectl label namespace bookinfo istio-injectionenabled 进入 Istio 安装目录。 使用 kubectl 部署应用到bookinfo
kubectl -n bookinfo apply -f samples/bookinfo/platform/kube/bookinfo.yaml 上面的命令会启动全部的四个服务其中也包括了 reviews 服务的三个版本v1、v2 以及 v3。
检查
执行命令完成后查看 bookinfo 命名空间下的 Pod。
kubectl get pods -n bookinfo 可以看到每个 Pod 的 READY 属性都是 2/2 这表示该 Pod 中有两个容器并且当前有两个容器已经就绪。
如果我们查看其中一个 Pod 的组成结构会发现有 Pod 被塞进了一个 istio-proxy 容器。
kubectl -n bookinfo describe pod productpage-v1-564d4686f-cn5bb 接着使用 kubectl -n bookinfo get svc 查看 Service四个微服务都已经被注册了 Service。 curl 10.105.180.245:9080
默认 Istio 不会开启零信任双向认证模式因此在集群内可以自己访问应用。如果开启了 mTLS 双向认证模式则只能在 Pod 中访问应用。 创建 productpage_tmpsvc.yaml 文件
touch productpage_tmpsvc.yaml
vim productpage_tmpsvc.yaml
apiVersion: v1
kind: Service
metadata:name: productpagetmplabels:app: productpageservice: productpage
spec:ports:- port: 9080name: httpselector:app: productpagetype: NodePort
kubectl -n bookinfo apply -f productpage_tmpsvc.yaml
kubectl -n bookinfo get svc 然后在页面中访问 31527 端口大家的端口不一样按自己的来。 http://192.168.1.247:31527/productpage?unormal 多次刷新 部署入口网关
什么是 Gateway
到体验 Istio 的时刻了在本小节中我们将会为 productpage 创建 Istio Gateway对外提供网页访问。
我们已经部署了 istio-ingressgateway这个组件起到了类似 nginx、apisix 的效果对外提供端口访问然后将流量转发到内部服务中。详见 istio学习笔记-安装-CSDN博客
但是 istio-ingressgateway 并不能直接转发流量到 Pod它还需要进行一些配置。我们要为 productpage 创建一个站点绑定对应的域名这样外部访问 istio-ingressgateway 的端口时istio-ingressgateway 才知道该将流量转发给谁。在 Istio 中定义这种绑定关系的资源叫 Gateway。 Gateway 类似 Nginx 需要创建一个反向代理时需要绑定的域名配置。
kubectl -n bookinfo apply -f samples/bookinfo/networking/bookinfo-gateway.yaml cat samples/bookinfo/networking/bookinfo-gateway.yaml hosts 表示对外开放的访问路径你可以绑定域名、IP 等。这里使用 * 表示所有访问都可以进入此网关。 当我们创建 Istio Gateway 之后istio-ingressgateway 会为我们监控流量检测不同的域名或端口属于哪个 Istio Gateway 。 部署 VirtualService
什么是 VirtualService
虽然创建了 Istio Gateway但是我们还不能直接通过网关访问到前面部署的微服务我们还需要创建 Istio VirtualService 将 Istio Gateway 跟对应的 Kubernetes Service 绑定起来然后流量才能正式流向 Pod。 请一定要注意这里流量实际并不会经过 Service 中但是 VirtualService 需要通过 Service 来发现 Pod。
这里类似 nginx 配置反向代理配置监听之后还需要指向将请求映射到哪个地址。 VirtualService 的主要目标是为服务提供稳定的入口地址并通过配置一系列的路由规则来控制流量在网格内的行为。
就以最简单的路由区配来说Kubernetes Service 是不支持路由规则的而 Istio 可以通过指定路由后缀中Service 不支持流量分析负载均衡只有轮询。而 Istio 利用 Service 来发现 Pod然后直接将流量转发到 Pod 中可以实现各种功能。
VirtualService 可以用于实现以下功能
请求路由将请求路由到特定的服务或版本例如将请求分发到不同版本的服务以实现灰度发布或金丝雀发布。
请求重试为失败的请求配置重试策略以提高服务的可用性。
请求超时设置请求的超时时间以便在特定时间内没有得到响应时中断请求。
请求镜像将请求的副本发送到另一个服务用于测试新版本的服务而不影响实际的生产流量。
流量分割将流量按照特定的比例分发到不同的服务或版本以实现流量控制。
执行
kubectl -n bookinfo apply -f samples/bookinfo/networking/bookinfo-gateway.yaml 时 已创建 VirtualService 这里的 YAML 分为两大部分第一部分是 http.match表示暴露了哪些 API 地址外部访问时只能访问到这些地址。 可以通过 http.match 限制集群外部访问此地址时所能使用的 URL。
然后通过 http.route 绑定 Kubernetes Service 通过 Service 中的服务发现将流量转发到对应的 Pod 中。 host 这里由于 VirtualService 跟 Service/Pod 在同一个命名空间中所以只需要配置 Service 的名称即可如果要跨命名空间访问则需要加上完整的命名空间名称。
什么是 DestinationRule
DestinationRule是定义在路由发生后应用于服务的流量的策略。这些规则指定负载均衡的配置、sidecar的连接池大小以及离群值检测设置以检测并从负载平衡池中清除不正常的主机。以上信息仅供参考如有需要建议您咨询专业技术人员。
Istio VistualService 中可以限制外部能够访问的路由地址而 DestinationRule 则可以配置访问的 Pod 策略。可以为 Istio VistualService 绑定一个 Istio DestinationRule通过 DestinationRule 我们还可以定义版本子集等通过更加丰富的策略转发流量。 检查
添加环境变量 PATH
echo export ISTIO_HOME/opt/istio-1.19.4 /etc/profile
echo export PATH\(PATH:\)ISTIO_HOME/bin /etc/profile
source /etc/profile
istioctl version 为了确保网关没问题我们需要执行 Istio 命令查看日志
istioctl analyze -n bookinfo 然后我们查看为 productpage 创建的网关。
kubectl get gw -A 然后查看 VistualService。
kubectl get vs -A 我们通过 Helm 部署了 istio-ingressgateway其访问端口如下
kubectl get svc -n istio-system 在本节部署 bookinfo-gateway 的时候我们使用了端口 80因此不需要另外配置 直接通过 istio-ingressgateway 的 32299 端口访问即可。
之前配置的是 8080 需要改为80
kubectl -n bookinfo delete -f samples/bookinfo/networking/bookinfo-gateway.yaml vim samples/bookinfo/networking/bookinfo-gateway.yaml kubectl -n bookinfo apply -f samples/bookinfo/networking/bookinfo-gateway.yaml kubectl get svc -n istio-system
- 上一篇: 遵义网站开发的公司有哪些悟空crm免费开源版
- 下一篇: 遵义网站设计公司外网加速器试用七天
相关文章
-
遵义网站开发的公司有哪些悟空crm免费开源版
遵义网站开发的公司有哪些悟空crm免费开源版
- 技术栈
- 2026年03月21日
-
遵义网站建设哪家强自动化科技产品网站建设
遵义网站建设哪家强自动化科技产品网站建设
- 技术栈
- 2026年03月21日
-
遵义网站建设厂家开发软件需要学什么专业
遵义网站建设厂家开发软件需要学什么专业
- 技术栈
- 2026年03月21日
-
遵义网站设计公司外网加速器试用七天
遵义网站设计公司外网加速器试用七天
- 技术栈
- 2026年03月21日
-
遵义微商城网站建设平台wordpress模板在哪里买
遵义微商城网站建设平台wordpress模板在哪里买
- 技术栈
- 2026年03月21日
-
遵义住房和城乡建设局官方网站银川市建设厅网站
遵义住房和城乡建设局官方网站银川市建设厅网站
- 技术栈
- 2026年03月21日






