k8s 安装istio (一)
前置条件
已经完成 K8S安装过程十:Kubernetes CNI插件与CoreDNS服务部署
部署 istio 服务网格与 Ingress 服务用到了 helm 与 kubectl 这两个命令行工具,这个命令行工具依赖 ~/.kube/config 这个配置文件,目前只在 kubernetes master 节点中生成了这个文件。
以下操作在 Kubernetes Master 节点上执行。
1. 部署 istiod 服务
1.1 设置 helm 仓库
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update
1.2 安装 istio
- 创建 istio 命名空间
kubectl create namespace istio-system
- 部署 istio 服务
2.1 安装 ingress
kubectl create namespace istio-ingress
kubectl label namespace istio-ingress istio-injection=enabled
helm install istio-ingress istio/gateway -n istio-ingress –wait
2.2 修改 ingress svc 配置
kubectl edit svc istio-ingress -n istio-ingress


如下图红色框所示,将 type 的值替换成 NodePort。另外修改 ports 配置中的端口信息,后续外部服务访问 Kubernetes 集群内部的服务将会通过上述两个端口进行访问,一个用户 http 协议,另一个用于 https 协议。
2.3 重启 istio-ingress 服务
保存上述修改的配置文件后,服务会自动重启,如果没有重启,可通过手工重启 ingress 服务的方式执行一次重启。
kubectl rollout restart deployment istio-ingress -n istio-ingress
2.4 修改 HAProxy 配置
在 HAProxy 的每个节点中修改 /etc/haproxy/haproxy.cfg 文件,追加如下内容。(注意是追加不是覆盖,不要把之前配置的 kuber-apiserver 负载均衡配置删除了)
frontend http-web
bind *:80
mode tcp
option tcplog
default_backend http-web-backend
backend http-web-backend
mode tcp
option tcplog
balance roundrobin
default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100
server k8s-http-145 192.168.0.145:30080 check
server k8s-http-200 192.168.0.200:30080 check
frontend https
bind *:443
mode tcp
option tcplog
default_backend https-backend
backend https-backend
mode tcp
option tcplog
balance roundrobin
default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100
server k8s-https-145 192.168.0.145:30443 check
server k8s-https-200 192.168.0.200:30443 check
2.5 重启 haproxy 服务
systemctl restart haproxy
重启所有的 HAProxy 节点。重启完成后,即可对 80 端口和 443 端口访问的流量转发到 30080 与 30443 端口,从而将外部流量引入到 Kubernetes 容器集群内部的 Ingress 服务中。Ingress 根据转发规则将流量转发到具体的容器服务内,实现外部客户端访问容器内部服务的过程
2.6 创建 Ingress 转发规则
- 创建
gateway.yaml文件
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: admin-gateway
namespace: istio-system
spec:
selector:
istio: ingress
servers:
- port:
number: 1080
name: http-gateway
protocol: HTTP
hosts:
- "kiali.域名.com"
- "grafana.域名.com"
- "jaeger.域名.com"
- "prometheus.域名.com"
- port:
number: 3443
name: https-gateway
protocol: HTTPS
tls:
mode: PASSTHROUGH
hosts:
- "harbor.域名.com"
- "dashboard.域名.com"
上述配置中的 *.域名.com 为子域名,可申请一个域名,然后将子域名使用 DNS 解析到 Kubernetes Master 节点或者是负载均衡的 IP 地址。这一步需要在你的域名供应商管理后台设置域名解析规则。否则后续的操作无法进行。如果还没有域名的同学,则无法通过域名来设置 Ingress 转发规则。
kubectl apply -f gateway.yaml
3. 部署服务网格管理工具
服务网格 istio 配套的管理工具有 kiali、grafana、jaeger、prometheus等,以下采用istio插件的方式部署这些管理工具,这种方式部署的管理工具参数比较通用,不太适合大规模的生产环境使用,如果在生产环境中部署这些服务网格管理工具,应对参数进行优化。
3.1 部署服务网格管理工具 Kiali
- 部署 Kiali 服务
yum install socat -y
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.16/samples/addons/kiali.yaml
- 创建 kiali-vs.yaml 文件
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: kiali-vs
namespace: istio-system
spec:
hosts:
- kiali.域名.com
gateways:
- admin-gateway
http:
- route:
- destination:
host: kiali
port:
number: 20001
- 部署 Kiali VirtualService
kubectl apply -f kiali-vs.yaml
3.2 部署服务网格可视化工具 Grafana
- 部署 Grafana
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.16/samples/addons/grafana.yaml
- 创建 grafana-vs.yaml 文件
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: grafana-vs
namespace: istio-system
spec:
hosts:
- grafana.域名.com
gateways:
- admin-gateway
http:
- route:
- destination:
host: grafana
port:
number: 3000
3.3 部署服务网格调用链检测工具 Jaeger
- 部署 Jaeger 服务
相关文章:
k8s 安装istio (一)
前置条件 已经完成 K8S安装过程十:Kubernetes CNI插件与CoreDNS服务部署 部署 istio 服务网格与 Ingress 服务用到了 helm 与 kubectl 这两个命令行工具,这个命令行工具依赖 ~/.kube/config 这个配置文件,目前只在 kubernetes master 节点中…...
vue 项目在编译时,总是出现系统崩的状态,报错信息中有v7 或者 v8 的样式-项目太大内存溢出
vue 项目在编译时,总是出现系统崩的状态,node 命令框也会报错,如下图:有v7 或者 v8 的样式。 原因分析: 分析:遇到与上面图片相似的问题,我们要首先要想到是否是 有关内存的问题,当然…...
低功耗蓝牙射频指纹识别
射频指纹 射频指纹是什么 射频指纹是一种利用无线电信号的特征来识别设备或用户的技术。射频指纹可以用来做设备身份认证、位置跟踪、安全防护等应用。射频指纹的优点是难以伪造、不依赖于额外的硬件或软件、适用于多种无线通信协议。 射频指纹识别流程 射频指纹识别的一般…...
怎么检测UI卡顿?(线上及线下)
什么是UI卡顿? 在Android系统中,我们知道UI线程负责我们所有视图的布局,渲染工作,UI在更新期间,如果UI线程的执行时间超过16ms,则会产生丢帧的现象,而大量的丢帧就会造成卡顿,影响用…...
Git 常用操作
一、Git 常用操作 1、切换分支 git checkout命令可以用于三种不同的实体:文件,commit,以及分支。checkout的意思就是对于一种实体的不同版本之间进行切换的操作。checkout一个分支,会更新当前的工作空间中的文件,使其…...
前端修改新增操作导致数据删除——js精度丢失
问题描述 笔者在写前端渲染表格的时候,发现无论是修改还是新增,数据都会被删除。检查了前端逻辑并与后端联调均无问题。 然后就开始和后端一起对数据库,结果发现,十几位的id,接收过来的时候,尾数均变为了…...
winform使用usercontrol 构建了一个复杂的列表,列表速度慢该如何优化?
当使用 WinForms 构建复杂的列表时,可能会面临性能问题,特别是在数据量大或 UI 复杂的情况下。以下是一些优化策略,可以帮助您改善列表的性能: 1. **虚拟模式 (Virtual Mode)**:对于大型数据集,考虑使用虚…...
Lnton羚通算法算力云平台如何在OpenCV-Python中使用cvui库创建复选框
CVUI 之 复选框 Python import numpy as np import cv2 import cvuidef checkbox_test():WINDOW_NAME Checkbox-Testchecked [False]# 创建画布frame np.zeros((300, 400, 3), np.uint8)# 初始化窗口cvui.init(WINDOW_NAME)while True:# 画布填色frame[:] (100, 200, 100…...
中项系统集成项目管理知识点汇总
中项系统集成项目管理知识点汇总 一、成本-进度二、十大管理及47个过程三、质量四、人力资源五、风险六、干系人沟通七、案例分析万能答案八、选择题知识点九、十大管理输入输出工具技术总结十大管理工具技术总结 一、成本-进度 针对进度滞后的绩效情况 /缩短工期,可…...
Docker容器:docker基础及网络
Docker容器:docker基础及安装 一.docker容器概述 1.什么是容器 (1)Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。 (2)是一个开源的应用容器引擎,基于go语言开发并遵…...
Django实现音乐网站 ⑿
使用Python Django框架制作一个音乐网站, 本篇主要是加载静态资源和推荐页-轮播图、推荐歌单功能开发。 目录 加载静态资源 引入jquery.js 引入bootstrap资源文件 创建基类模板样式文件 推荐页开发 轮播图开发 下载 加载swiper 自定义引入继承块设置 使用…...
ORB-SLAM2学习笔记10之图像关键帧KeyFrame
文章目录 0 引言1 KeyFrame类1.1 构造函数1.2 成员函数1.3 关键帧之间共视图1.3.1 AddConnection1.3.2 UpdateBestCovisibles1.3.3 UpdateConnections1.3.4 EraseConnection1.3.5 SetBadFlag 1.4 地图点1.5 生成树 2 KeyFrame用途 0 引言 ORB-SLAM2学习笔记7详细了解了System主…...
【ownCloud】添加信任域
在我进行使用mysql:5.6和 owncloud 镜像,构建一个个人网盘后 我的虚拟机更改了ip地址导致出现下列状况 报错:您正在访问来自不信任域名的服务器。 please contact your administrator. if you are an administrator of this instance, configure the &q…...
C++--类型转换
1.什么是类型转换 在传统C语言中,由强制类型转换和隐式类型转换,隐式类型转换,编译器在在编译阶段自动处理,能转换则转换,强制类型转换由用户自己转换。 缺陷: 转换的可视性比较差,所有的转换形…...
在服务器上部署 Nginx 并设置图片服务器
问题:我要指定/home/images专门存放图片!该怎么做,而且我的系统是centos8系统,只有一个root用户,用root用户已经安装了nginx 答案: 既然你使用了 CentOS 8,并且你想使用 /home/images 目录存放…...
使用NXP GUI GUIDER生成的GUI移植到雅特力MCU平台过程详解(ST/GD/国民/极海通用)
好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录 一、前言 上一篇我们有介绍NXP GUI Guider工具如何制作和调试GUI,GUI神器 NXP GUI GUIDER开发工具入门教程https://blog.csdn.n…...
JVM——配置常用参数,GC调优策略
文章目录 JVM 配置常用参数Java内存区域常见配置参数概览堆参数回收器参数项目中常用配置常用组合 常用 GC 调优策略GC 调优原则GC 调优目的GC 调优策略 JVM 配置常用参数 Java内存区域常见配置参数概览堆参数;回收器参数;项目中常用配置;常…...
使用IDEA把Java程序打包成jar
点击左上角File,选择Project Structure 左侧选中Artifacts,点击右侧的号 选择JAR->From modules with dependencies 选择你要运行的main方法所在的类,选好了点击OK Artifacts添加完成后点击右下角OK 在工具栏中找到Build,选择Build Artifacts 刚才创建好的Artifacts,选择Bui…...
元宇宙和数字孪生的异同探究
元宇宙和数字孪生,作为两个备受瞩目的概念,都在不同领域引起了巨大的关注。虽然它们都涉及数字化世界的构建,但元宇宙和数字孪生在概念、应用和影响方面存在一些异同点。 相似之处: 数字表示: 元宇宙和数字孪生都依赖…...
初识微服务
我们在曾经最常见的就是所谓的单体架构,但是由于网民越来越多,单体架构已经逐渐的被淘汰出去,所以我们在单体架构的基础上提出了微服务,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合࿰…...
ncmdumpGUI:3分钟解锁网易云音乐NCM加密文件的终极指南
ncmdumpGUI:3分钟解锁网易云音乐NCM加密文件的终极指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&…...
2026年选系统门窗,认准专业工厂的三大理由
系统门窗作为现代建筑节能与安全的重要组成,在2026年迎来了更高的性能需求。面对市场上琳琅满目的门窗品牌,消费者如何做出选择?一个关键标准是:是否选择专业工厂生产的系统门窗。专业工厂意味着更高的产品品质、更严格的工艺标准…...
OpenClaw-Readwise:开源高亮同步工具的设计与实现
1. 项目概述:一个连接知识碎片的“机械爪” 如果你和我一样,是个重度阅读爱好者,并且习惯把在各种地方(比如Kindle、网页文章、PDF文档)看到的好句子、有启发的段落,用高亮(Highlightÿ…...
从泰鼎高管离职事件看半导体公司治理与技术战略平衡
1. 事件背景与核心脉络梳理2011年初,半导体行业发生了一起在当时颇具话题性的高层人事地震。主角是当时在数字电视和多媒体处理器领域颇有建树的泰鼎微系统(Trident Microsystems, Inc.)。事件的核心是,公司的首席执行官ÿ…...
基于RAG与向量数据库的本地化个人知识库构建实践
1. 项目概述:一个为个人量身定制的知识库构建引擎 如果你和我一样,每天在浏览器、笔记软件、PDF文档和各种聊天记录之间疲于奔命,试图抓住那些一闪而过的灵感和零散的知识点,那么你肯定理解“知识碎片化”的痛苦。我们收藏了无数…...
AI产品经理 VS 传统产品经理:不是技术升级,而是物种进化!你准备好了吗?
文章指出,AI时代的产品经理并非仅仅是懂点AI技术的传统产品经理升级版,而是完全不同的“物种”。文章从产品经理的职责、核心能力、与AI的协作模式等方面对比了传统产品经理和AI产品经理的区别,强调AI产品经理需要具备处理意图模糊性、设计失…...
Nitric常见问题解答:开发者最关心的25个问题汇总
Nitric常见问题解答:开发者最关心的25个问题汇总 【免费下载链接】nitric Nitric is a multi-language framework for cloud applications with infrastructure from code. 项目地址: https://gitcode.com/gh_mirrors/ni/nitric Nitric是一个多语言框架&…...
别再死记硬背段码了!用Python脚本自动生成数码管显示码表(支持共阳/共阴)
用Python解放双手:动态生成数码管段码的工程实践 数码管作为电子设计中最基础的显示元件之一,其驱动原理看似简单却暗藏玄机。传统开发流程中,工程师需要反复查阅手册或记忆十六进制段码,这种低效模式在复杂项目中将消耗大量时间。…...
用Matplotlib heatmap分析你的数据:从农产品收成到商品销量的实战案例拆解
用Matplotlib heatmap解锁业务洞察:从农场到电商的数据可视化实战 热力图(heatmap)远不止是颜色方块的排列——它是数据与商业决策之间的视觉桥梁。想象一下,你面前有一张农场作物产量的热力图,颜色从深绿渐变到亮黄&a…...
MobaXterm 全能终端神器:实战指南
写在前面:作为Windows下最全能的远程终端工具,MobaXterm 在 2026 年已迭代至 v26.0 版本。本文基于最新版,从工具选型对比、核心功能实战到效率提升技巧,带你真正掌握这款"瑞士军刀"。文末附赠快捷键大全和安全配置清单…...
