istio学习笔记-安装

Istioldie 1.18 / 安装指南

基于Kubernetes的Istio的微服务架构需要安装以下组件:

  1. Istio控制平面组件:包括Istio-Pilot、Istio-Policy、Istio-Telemetry等。这些组件负责微服务的管理和配置,如流量管理、策略执行、遥测数据收集等。
  2. 数据平面组件:主要是Envoy代理,它被部署为Sidecar容器与每个微服务一同运行。Envoy负责微服务之间的网络通信,实现负载均衡、服务发现、故障恢复等功能。
  3. 可选的增值组件:如Jaeger用于调用链追踪,Kiali用于服务网格的可视化观察,Prometheus和Grafana用于监控和度量数据收集和展示。这些组件能够增强Istio的观测性,帮助开发者更好地理解和管理微服务网格。

应用程序要求

参考:Istioldie 1.18 / 应用程序要求

在部署启用 Istio 的应用程序时,需要特别注意 Istio Sidecar 模型造成的影响。

Pod 要求

作为 Istio 服务网格中的一部分,Kubernetes 集群中的 Pod 和 Service 必须满足以下要求:

  • Service 关联:不管一个 Pod 是否对外暴露端口,每个 Pod 必须至少属于一个 Kubernetes Service。假如一个 Pod 同时属于多个 Kubernetes Service,那么它不能在不同 Service 的端口号上使用不同的协议(比如 HTTP 和 TCP)。

  • 应用 UID:确保您的 Pod 不会被 ID(UID)为 1337 的用户运行应用,因为 1337 是为 Sidecar 代理保留的。

  • NET_ADMIN 和 NET_RAW 权限:如果您的集群强制执行了 Pod 安全策略,必须给 Pod 配置 NET_ADMIN 和 NET_RAW 权限。如果您使用 Istio CNI 插件,可以不配置。

  • 要列出服务账户的权限,请在下面的命令中用你的值替换 <your namespace> 和 <your service account>

  • 带有 app 和 version 标签(label)的 pod:我们建议显式地给 Deployment 加上 app 和 version 标签。给使用 Kubernetes Deployment 部署的 Pod 部署配置中增加这些标签,可以给 Istio 收集的指标和遥测信息中增加上下文信息。

    • app 标签:每个部署配置应该有一个不同的 app 标签并且该标签的值应该有一定意义。app label 用于在分布式追踪中添加上下文信息。

    • version 标签:这个标签用于在特定方式部署的应用中表示版本。

Istio 使用的端口

Istio sidecar 代理(Envoy)使用以下端口和协议。

Istio 控制平面(istiod)使用以下端口和协议。

使用 Helm 安装

参考:Istioldie 1.18 / 使用 Helm 安装

请遵循本指南使用 Helm 安装和配置 Istio 网格。

先决条件

  1. 执行任何必要的特定于平台的设置。

  2. 检查 Pod 和服务的要求。

  3. 安装 Helm 客户端 3.6 或更高的版本。

     helm version

     4.配置 Helm 存储库:

helm repo add istio https://istio-release.storage.googleapis.com/charts

 

helm repo update

安装步骤

本节介绍使用 Helm 安装 Istio 的过程。Helm 安装的一般语法是:

Helm 安装的一般语法是:

$ helm install <release> <chart> --namespace <namespace> --create-namespace [--set <other_parameters>]

该命令指定的变量如下:

  • <chart> 一个打好包的 Chart 路径,也可以是一个未打包的 Chart 目录或 URL。
  • <release> 一个用于标识和管理安装后的 Helm Chart 的名称。
  • <namespace> 要安装 Chart 的命名空间。

1、为 Istio 组件,创建命名空间 istio-system:

kubectl get namespaces

kubectl create namespace istio-system

2、安装 Istio base chart,它包含了集群范围的自定义资源定义 (CRD),这些资源必须在部署 Istio 控制平面之前安装:

helm install istio-base istio/base -n istio-system

3. 使用 helm ls 命令验证 CRD 的安装情况:

helm ls -n istio-system

在输出中找到 istio-base 的条目,并确保状态已被设置为 deployed

4.安装 Istio discovery chart,它用于部署 istiod 服务:

 helm install istiod istio/istiod -n istio-system --wait

5、验证 Istio discovery chart 的安装情况:

helm ls -n istio-system

6、获取已安装的 Helm Chart 的状态以确保它已部署:

helm status istiod -n istio-system

7、检查 istiod 服务是否安装成功,其 Pod 是否正在运行:

kubectl get deployments -n istio-system --output wide

8、(可选)安装 Istio 的入站网关:

kubectl create namespace istio-ingress

helm install istio-ingress istio/gateway -n istio-ingress --wait

至于可用的配置项,你可以通过使用 helm show values istio/<chart> 来找到配置。 例如:helm show values istio/gateway

卸载

您可以通过卸载上述安装的 chart,以便卸载 Istio 和及其组件。

helm delete istio-ingress -n istio-ingress

kubectl delete namespace istio-ingress

helm delete istiod -n istio-system

helm delete istio-base -n istio-system

kubectl delete namespace istio-system

(可选)删除 Istio 安装的 CRD

永久删除 CRD 会移除您在集群中已创建的所有 Istio 资源。 用下面命令永久删除集群中安装的 Istio CRD:

kubectl get crd -oname | grep --color=never 'istio.io' | xargs kubectl delete

其中 kubectl get crd -oname | grep --color=never 'istio.io'

其他

kubectl get pods -n istio-system

kubectl get services -n istio-system

----------------------------------------------------------------------------------------------------

开始使用 Istio 和 Kubernetes Gateway API

大多数 Kubernetes 集群上默认并未安装 Kubernetes Gateway API CRD, 因此需要先确保安装了 Kubernetes Gateway API CRD,再使用 Gateway API:

kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \ { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v0.6.2" | kubectl apply -f -; }

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

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

相关文章

图论16-拓扑排序

文章目录 1 拓扑排序2 拓扑排序的普通实现2.1 算法实现 - 度数为0入队列2.2 拓扑排序中的环检测 3 深度优先遍历的后续遍历3.1 使用环检测类先判断是否有环3.2 调用无向图的深度优先后续遍历方法&#xff0c;进行DFS 1 拓扑排序 对一个有向无环图G进行拓扑排序&#xff0c;是将…

重生奇迹mu超级恶魔怎么合成

重生奇迹mu强化恶魔去哪弄 重生奇迹mu强化恶魔不可以合成&#xff0c;在游戏里打怪掉。强化恶魔和强化天使也可以额外给勇士们增加伤害和增强伤害吸收。 开启主线任务的剑士、魔法师、弓箭手回归大礼包&#xff0c;迅速主线任务后打更高级的装备&#xff0c;实力突出的也可以…

Django 的国际化与本地化详解

概要 随着全球化的发展&#xff0c;为 Web 应用提供多语言支持变得日益重要。Django 作为一个功能强大的 Web 框架&#xff0c;提供了一套完整的国际化&#xff08;i18n&#xff09;和本地化&#xff08;l10n&#xff09;工具&#xff0c;使得开发多语言应用变得简单。本文将详…

【科研新手指南3】chatgpt辅助论文优化表达

chatgpt辅助论文优化表达 写在最前面最终版什么是好的论文整体上&#xff1a;逻辑/连贯性细节上一些具体的修改例子 一些建议&#xff0c;包括具体的提问范例1. 明确你的需求2. 提供上下文信息3. 明确问题类型4. 测试不同建议5. 请求详细解释综合提问范例&#xff1a; 常规技巧…

MVME5100 MOTOROLA 使用GX Works3集成工程软件进行配置

MVME5100 MOTOROLA 使用GX Works3集成工程软件进行配置 例如&#xff0c;在楼宇自动化中&#xff0c;冗余控制器可用于集中控制系统&#xff0c;以管理HVAC、照明、应急响应、电梯系统和其他电气组件。在石油和天然气领域&#xff0c;冗余控制器可以管理起重机设备的制动系统、…

我被这奇葩的答辩评价给惊呆了

最近组里有个小伙伴晋升&#xff0c;我司职级跟腾讯的不一样&#xff0c;可以理解为大概是要晋升高工&#xff08;T9&#xff09;吧。 据我了解&#xff0c;我司的晋升答辩还不成熟&#xff0c;没有统一规范和套路&#xff0c;那我就以腾讯的经验来辅导我的小伙伴吧。我想&…

乳品生产企业如何使用乳品加工ERP?乳品加工ERP软件有什么品牌

不同种类的乳制品有不同的制造工艺和仓储环境&#xff0c;并且在品质检验流程、在库时间、成本费用等方面也有很多不同之处。随着经济的发展&#xff0c;消费群体对乳品的安全和质量问题更加重视&#xff0c;而企业外部环境的变化&#xff0c;也导致乳品生产企业面临较大的经营…

java 实现 CAN口通讯

1、引入第三方库 链接&#xff1a;https://pan.baidu.com/s/1JC-Bi_Qgts5a-tGo28JcTQ?pwd6533 提取码&#xff1a;6533 将第三方库 放在libs包里&#xff0c;并在pom文件中增加依赖 <dependency><groupId>libsocket-can-java</groupId><artifactId>…

postgresql数据库优化

目录 概要 优化方法 硬件知识 CPU及服务器体系结构 内存 硬盘 文件系统及I/O调优 文件系统的崩溃恢复 Ext2文件系统 Ext3文件系统 Ext4文件系统 XFS文件系统 Barriers I/O I/O调优的方法 SSD的Trim优化 数据库性能视图 Linux监控工具 数据库内存优化 大页内存配置 vacuum…

Win10系统把D盘空间分给C盘的方法

在Win10系统中&#xff0c;用户发现C盘的空间太少了&#xff0c;导致电脑运作出现了卡顿的问题&#xff0c;所以想把D盘的空间分给C盘&#xff0c;但不清楚具体的操作步骤。接下来小编给大家介绍两种简单的操作方法&#xff0c;帮助大家轻松将Win10系统D盘的空间分给C盘&#x…

小红书自动引流软件的运行分享,以及涉及到技术与核心代码分享

先来看实操成果&#xff0c;↑↑需要的同学可看我名字↖↖↖↖↖&#xff0c;或评论888无偿分享 一、引言 随着互联网的发展&#xff0c;引流成为许多企业和个人获取潜在客户的重要手段。然而&#xff0c;手动引流不仅效率低下&#xff0c;而且效果难以保证。为了解决这一问题…

共享模型之不可变

文章目录 1. 问题提出2. 不可变对象的设计3. 设计模式—享元模式4. 享元模式案例—自定义连接池5. final原理 1. 问题提出 我们知道&#xff0c;在并发环境中&#xff0c;引起并发问题的根源是共享变量的存在&#xff0c;而之所以共享变量之所以不安全&#xff0c;是因为多线程…

跨境电商邮件营销的策略?外贸营销怎么做?

跨境电商邮件营销怎么做&#xff1f;跨境电商电子邮件营销工具&#xff1f; 随着全球电子商务的快速发展&#xff0c;跨境电商已经成为越来越多企业的选择。在跨境电商领域&#xff0c;邮件营销是一种非常重要的营销手段。蜂邮将探讨跨境电商邮件营销的策略&#xff0c;帮助企…

基于Nvidia Jetson orin nx的 YoloV7 tensorRt加速

准备环境 安装jetPack组件 Jetpack 是 Nvidia为 Jetson系列开发板开发的一款软件开发包&#xff0c;常用的开发工具基本都包括了&#xff0c;并在在安装 Jetpack的时候&#xff0c;会自动的将匹配版本的CUDA、cuDNN、TensorRT等。官方提供套件中默认已经安装&#xff0c;可以通…

【数据结构】超详细一文带小白轻松全面理解 [ 二叉搜索树 ]—— [从零实现&逐过程分析&代码演示简练易懂]

前言 大家好吖&#xff0c;欢迎来到 YY 滴数据结构系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴数据结构专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一.二叉搜索树的基本概念…

MATLAB|科研绘图|山脊图

效果图 山脊图介绍 山脊图&#xff08;Ridge Plot&#xff09;&#xff0c;也被称为Joy Plot&#xff0c;是一种用于可视化数据分布的图表&#xff0c;特别是用于显示多个组的分布情况。在这种图表中&#xff0c;每个组的数据分布都通过平滑的密度曲线来表示&#xff0c;这些曲…

基于 Lua 写一个爬虫程序

你想要基于 Lua 写一个爬虫程序来爬取的内容。我可以给你一个基本的框架&#xff0c;但是请注意这只是一个示例&#xff0c;并且你可能需要根据实际情况进行调整。 -- 首先&#xff0c;我们需要引入一些必要的模块 local http require "socket.http" local json r…

Spring Boot项目优雅实现读写分离

文章目录 1. 读写分离简介2. Spring Boot集成MyBatis3. 配置读写分离数据源4. 定义数据源上下文5. 自定义注解和切面6. 在Service层使用注解7. 拓展与分析7.1 多数据源的选择7.2 事务的处理7.3 异常处理7.4 动态数据源切换7.5 Spring Boot版本适配 &#x1f389;欢迎来到架构设…

如何将 .SQL 文件导入到 IDEA自带的MySQL中

首先连接数据库新建数据库右键选择该数据库选择如下&#xff1a;找到对应的sql文件即可

工作常遇,Web自动化测试疑难解答,测试老鸟带你一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、自动化测试中隐…