kubernetes集群编排(12)

目录

istio

部署

部署示例应用

部署遥测组件

流量管理

熔断


istio

官网:https://istio.io/latest/zh/about/service-mesh/

部署

demo专为测试准备的功能集合

[root@k8s2 ~]# tar zxf istio-1.19.3-linux-amd64.tar.gz
[root@k8s2 ~]# cd istio-1.19.3/
[root@k8s2 istio-1.19.3]# export PATH=$PWD/bin:$PATH
[root@k8s2 istio-1.19.3]# istioctl install --set profile=demo -y

给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理

[root@k8s2 istio-1.19.3]# kubectl label namespace default istio-injection=enabled

部署示例应用

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

创建 Istio 入站网关

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

访问应用:http://192.168.81.106/productpage

 

部署遥测组件

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/addons

待插件部署完毕后,修改kiali服务的访问方式为Loadbalancer

[root@k8s2 istio-1.19.3]# kubectl -n istio-system edit svc kiali

访问kiali:http://192.168.56.100:20001/

流量管理

将所有流量路由到每个微服务的 v1 版本

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml
[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml

来自名为 Jason 的用户的所有流量将被路由到服务 reviews:v2

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml

创建故障注入规则以延迟来自测试用户 jason 的流量

kubectl apply -f samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml

用户 jason 登陆到 /productpage 页面,出现了一个问题:Reviews 部分显示了错误消息

 设置流量转移,将所有流量转移到 reviews:v3

[root@k8s2 istio-1.19.3]# vim  samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: reviews
spec:
  hosts:
    - reviews
  http:
  - match:
    - headers:
        end-user:
          exact: jason
    route:
    - destination:
        host: reviews
        subset: v3
  - route:
    - destination:
        host: reviews
        subset: v1
[root@k8s2 istio-1.19.3]# kubectl apply -f   samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml

修改延迟规则为任何低于 2.5 秒的数值,例如 2 秒

[root@k8s2 istio-1.19.3]#  vim  samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ratings
spec:
  hosts:
  - ratings
  http:
  - match:
    - headers:
        end-user:
          exact: jason
    fault:
      delay:
        percentage:
          value: 100.0
        fixedDelay: 2s
    route:
    - destination:
        host: ratings
        subset: v1
  - route:
    - destination:
        host: ratings
        subset: v1
[root@k8s2 istio-1.19.3]# kubectl apply -f   samples/bookinfo/networking/virtual-service-ratings-test-delay.yaml

把 50% 的流量从 reviews:v1 转移到 reviews:v3

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-50-v3.yaml

当reviews:v3 微服务已经稳定,可以通过应用 Virtual Service 规则将 100% 的流量路由 reviews:v3:

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-v3.yaml

清理

[root@k8s2 istio-1.19.3]# samples/bookinfo/platform/kube/cleanup.sh

熔断

部署 httpbin 服务

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/httpbin/httpbin.yaml

配置熔断规则

[root@k8s2 istio-1.19.3]# kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: httpbin
spec:
  host: httpbin
  trafficPolicy:
    connectionPool:
      tcp:
        maxConnections: 1
      http:
        http1MaxPendingRequests: 1
        maxRequestsPerConnection: 1
    outlierDetection:
      consecutive5xxErrors: 1
      interval: 1s
      baseEjectionTime: 3m
      maxEjectionPercent: 100
EOF

增加一个客户端

[root@k8s2 istio-1.19.3]# kubectl apply -f samples/httpbin/sample-client/fortio-deploy.yaml

登入客户端 Pod 并使用 Fortio 工具调用 httpbin 服务

[root@k8s2 istio-1.19.3]# export FORTIO_POD=$(kubectl get pods -l app=fortio -o 'jsonpath={.items[0].metadata.name}')
[root@k8s2 istio-1.19.3]# kubectl exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio curl -quiet http://httpbin:8000/get

触发熔断器

发送并发数为 2 的连接(-c 2),请求 20 次(-n 20)

[root@k8s2 istio-1.19.3]# kubectl exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio load -c 2 -qps 0 -n 20 -loglevel Warning http://httpbin:8000/get

istio-proxy 确实允许存在一些误差

将并发连接数提高到 3 个

[root@k8s2 istio-1.19.3]# kubectl exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio load -c 3 -qps 0 -n 30 -loglevel Warning http://httpbin:8000/get

均被熔断器拦截

清理

kubectl delete destinationrule httpbin
kubectl delete -f samples/httpbin/sample-client/fortio-deploy.yaml
kubectl delete -f samples/httpbin/httpbin.yaml

卸载istio

istioctl uninstall -y --purge
kubectl label namespace default istio-injection-

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/149037.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

总结 MyBatis 的XML实现方法(使用XML使用实现数据的增删改查操作)

MyBatis是一个优秀的持久层框架&#xff0c;它的XML配置文件是实现数据库操作的关键之一。通过XML文件&#xff0c;可以定义SQL语句、映射关系和一些高级功能。下面将探讨下如何使用MyBatis的XML配置文件实现数据的增、删、改、查操作。 1.配置文件 首先要确保 mybatis-confi…

LeetCode:1334. 阈值距离内邻居最少的城市(Floyd C++)

1334. 阈值距离内邻居最少的城市 链接&#xff1a; 1334. 阈值距离内邻居最少的城市 题目描述&#xff1a; 有 n 个城市&#xff0c;按从 0 到 n-1 编号。给你一个边数组 edges&#xff0c;其中 edges[i] [fromi, toi, weighti] 代表 fromi 和 toi 两个城市之间的双向加权边…

OpenAI暂停新的ChatGPT Plus注册 | OpenAI 的 GPT Builder 创建您的 GPTs

OpenAI DevDay 才过去仅仅一周时间&#xff0c;伴随着开发者大会上发布的一系列重磅升级和新特性&#xff0c;无疑这样的进化速度让广大网友炸锅了&#xff0c;其火热程度可见一斑。 就在四个小时前&#xff0c;OpenAI的CEO Sam Altma突然宣布&#xff0c;ChatGPT Plus账号暂停…

Azure的AI使用-(语言检测、凸显分析、图像文本识别)

1.语言检测 安装包&#xff1a; # 语言检测 %pip install azure-ai-textanalytics5.2.0 需要用到密钥和资源的终结点&#xff0c;所以去Azure上创建资源&#xff0c;我这个是创建好的了然后点击密钥和终结者去拿到key和终结点 两个密钥选择哪个都行 语言检测代码示例&#…

sqli-labs(Less-3)

1. 通过构造id1’ 和id1’) 和id1’)–确定存在注入 可知原始url为 id(‘1’) 2.使用order by 语句猜字段数 http://127.0.0.1/sqlilabs/Less-3/?id1) order by 4 -- http://127.0.0.1/sqlilabs/Less-3/?id1) order by 3 --3. 使用联合查询union select http://127.0.0.1…

vue 事件总线 非父子组件之间的简单信息传递

如果两个组件不是父子关系&#xff0c;那么传递信息就不能通过props了。 此时可以使用vue的事件总线来传递信息。 1.创建非父子组件都能访问的事件总线&#xff08;也就是空的vue实例&#xff09; 1.创建一个EventBus.js 2.引入vue并且创建一个vue实例 import Vue from vuec…

OSPF常用配置例子

拓朴图如下&#xff1a; 配置步骤&#xff1a; 1.配置IP 2.ospf多区域配置 *Tips&#xff1a;undo info-center enable 关闭信息回显 3.出口设备注入默认路由&#xff08;完成标志是各路由器学习到默认路由&#xff0c;下发默认路由&#xff09; R1]default-route-adve…

vim——“Linux”

各位CSDN的uu们好呀&#xff0c;今天&#xff0c;小雅兰的内容是Linux的开发工具——vim。下面&#xff0c;我们一起进入Linux的世界吧&#xff01;&#xff01;&#xff01; Linux编辑器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 vim操…

远程登录Linux方法(Linux平台相互远程;Windows远程登录Linux、远程编码、文件传输;无法远程登录的问题解决;c程序的编译)

在实际使用Linux系统过程中我们不可避免的需要远程登录Linux&#xff0c;这是因为未来大家使用Linux服务器的时候你所对应的那台Linux服务器不一定提供界面(服务器可能在外地)。本篇将会介绍远程登录Linux的方法。 文章目录 1. SSH介绍2. Linux平台相互远程及文件传输2.1 Linux…

Kubernetes(k8s)资源管理

文章目录 Kubernetes资源管理1.资源管理介绍2.YAML语言介绍3.资源管理方式命令式对象管理命令式对象配置声明式对象配置 扩展&#xff1a;配置kubectl命令可以在node节点上运行 Kubernetes资源管理 1.资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xf…

优维产品最佳实践第14期:让重要告警能有序跟进,最终根治

监控系统的首要任务是利用特定指标来反映系统内部的健康状态&#xff0c;当指标异常时&#xff0c;会触发告警。对于简单告警的处理&#xff0c;基于告警轨迹可清晰记录和观察告警的状态变化过程。 然而&#xff0c;对于一个复杂告警的处理&#xff0c;可能需要多角色多部门协…

c++基于CImage实现图片格式转换完整源代码

最近遇到项目需要&#xff0c;对图片进行格式转换&#xff0c;抱着怎么简单怎么做的想法&#xff0c;于是进行了验证&#xff0c;代码参考自网络&#xff0c;进行了简单的修改。 我这里提供完整的代码。 直接上代码&#xff1a; 头文件&#xff1a; #pragma once#include &l…

RSS订阅快速连接Notion

数环通让您可以通过不到几分钟的时间即可实现RSS订阅与Notion的对接与集成&#xff0c;从而高效实现工作流程自动化&#xff0c;降本增效&#xff01; 1.产品介绍 RSS订阅是数环通的内置应用&#xff0c;很多用户通过RSS订阅来收集自己在各大平台上看的内容&#xff0c;当RSS…

关于2023年汉字小达人市级比赛的填空题,及孩子如何提高打字速度

2023年汉字小达人市级比赛安排确定了以后&#xff0c;有一些父母来咨询我市级比赛的题型和往年的真题情况&#xff0c;当了解到市级比赛真的有填空题以后&#xff0c;他们又开始焦虑了&#xff0c;因为孩子平时在家里从了必要的英语打卡等学习以外&#xff0c;刻意不让孩子过多…

【华为内部资料】《高速数字电路设计教材》(可下载)

与数字技术或软件相比&#xff0c;模拟技术人才的培养和造就仍然需要一定的实践和时间&#xff0c;但无论数字技术发展到任何阶段将永远离不开模拟技术。 由于难度系数较大的原因&#xff0c;有时即便投入很多精力&#xff0c;如果缺乏耐心、毅力和必要的条件&#xff0c;投入…

【面试经典150 | 位运算】数字范围按位与

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;公共前缀方法二&#xff1a;n & (n-1) 写在最后 Tag 【位运算】 题目来源 201. 数字范围按位与 题目解读 计算给定区间内所有整数的按位与的结果。 解题思路 本题朴素的方法是直接将区间内的所有整数按位与&…

java成员等

一个源文件只有一个public类 如何调用是这个 类里面有全局用类名调用(或者对象),非全局要新一个对象来调用 class Quanjv{public static int x1;public static int y2;public int y24;} public class chengyuan {public static void main(String[] args) {Quanjv quanjvn…

宏观角度认识递归之求根节点到叶节点数字之和

LCR 049. 求根节点到叶节点数字之和 - 力扣&#xff08;LeetCode&#xff09; 理解题意分析子问题&#xff1a;给一个头节点&#xff0c;要返回该头结点左右子树的根结点到叶节点数字和。此处还需注意&#xff1a;在获取根结点到叶节点数字和的时候&#xff0c;要传递一个参数&…

信道复用技术

信道复用技术&#xff1a;将多个信号通过同一个物理信道传输&#xff0c;以提高信道利用率和减少通信系统的成本 1.频分复用FDM(Frequency Division Multiplexing) 将多路基带信号调制到不同频率的载波上&#xff0c;再叠加形成一个复合信号的多路复用技术基带信号&#xff1…

excel数据文件的正常表达形式

正常有内容的excel文件是这样子 假若全部显示null 就没有修复的必要了 #数据恢复#