Istio中的核心资源及定义
Istio 的核心资源主要包括以下几种:
1. Gateway
用于建模边缘网关,可以为进入或离开网格的流量提供专用的入口和出口点。Gateway 定义了在网格边缘运行的负载均衡器,用于接收传入或传出的 HTTP / TCP 连接。然后,它将接收到的连接路由到目标地址,该地址可以是网格内的服务,也可以是网格外部的服务。
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: my-gateway
spec:
selector:
istio: ingressgateway # 使用 Istio 默认的 ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
2. VirtualService
这是 Istio 中用于定义路由规则的资源。你可以通过 VirtualService 描述满足特定条件的请求应该如何路由。每个 VirtualService 都包含了一组路由规则,这些规则定义了匹配的请求以及这些请求的目标地址。此外,VirtualService 还需要定义关联的 service 和端口,它是绑定在 gateway 上的。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-virtual-service
spec:
hosts:
- "*"
gateways:
- my-gateway
http:
- match:
- uri:
prefix: /api
route:
- destination:
host: my-service
port:
number: 8080
3. DestinationRule
这个资源定义了对应目标主机的可路由子集(例如有命名的版本),并描述了到达这些目标的请求应该如何处理。通常与 VirtualService 配合使用,VirtualService 在向特定服务版本发送请求时会用到这些子集。此外,DestinationRule 还可以配置一系列的策略,这些策略在请求被 VirtualService 路由之后生效。
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: my-destination-rule
spec:
host: my-service
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2
trafficPolicy:
tls:
mode: ISTIO_MUTUAL
4. ServiceEntry
当需要在 Istio 服务网格中访问外部服务(例如运行在网格外部的数据库)时,可以使用 ServiceEntry。这是一种允许将额外的条目添加到 Istio 内部的服务注册表中的方法,以便网格内的服务可以访问和路由到这些外部服务。
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: external-service
spec:
hosts:
- external.example.com
ports:
- number: 443
name: https
protocol: HTTPS
location: MESH_EXTERNAL
resolution: DNS
Istio 的核心资源,包括网关(Gateway)、虚拟服务(VirtualService)、目标规则(DestinationRule)和服务条目(ServiceEntry)。你可以根据自己的需求修改这些文件,并通过 kubectl apply -f <filename>.yaml 命令将它们应用到你的 Istio 服务网格中。
请注意,这些示例中的名称、主机、端口和标签等都应该根据你的实际环境和服务进行相应的修改。此外,Istio 的配置可能会随着版本的更新而有所变化,因此建议查阅 Istio 的官方文档以获取最新和最准确的信息。
Istio中的核心资源及定义的更多相关文章
- spring中基础核心接口总结
spring中基础核心接口总结理解这几个接口,及其实现类就可以快速了解spring,具体的用法参考其他spring资料 1.BeanFactory最基础最核心的接口重要的实现类有:XmlBeanFac ...
- (四)Kubernetes 资源清单定义
Kubernetes常用资源对象 依据资源的主要功能作为分类标准,Kubernetes的API对象大体可分为五个类别,如下: 类型 名称 工作负载(Workload) Pod.ReplicaSet.D ...
- Kubernetes 学习5 kubernetes资源清单定义入门
一.kubernetes是有一个restful风格的 API,把各种操作对象都一律当做资源来管理.并且可通过标准的HTTP请求的方法 GET,PUT,DELETE,POST,等方法来完成操作,不过是通 ...
- 5、kubernetes资源清单定义入门
使用配置清单创建资源 定义pod时使用yaml格式 master ~]# kubectl get pod NAME READY STATUS RESTARTS AGE client / Error 1 ...
- Istio中的流量配置
Istio中的流量配置 目录 Istio中的流量配置 Istio注入的容器 Istio-init istio-proxy Envoy架构 Pilot-agent生成的初始配置文件 Envoy管理接口获 ...
- K8S(02)管理核心资源的三种基本方法
系列文章说明 本系列文章,可以基本算是 老男孩2019年王硕的K8S周末班课程 笔记,根据视频来看本笔记最好,否则有些地方会看不明白 需要视频可以联系我 管理k8s核心资源的三种基本方法: 目录 系列 ...
- 如何在 Istio 中支持 Dubbo、Thrift、Redis 以及任何七层协议?
赵化冰,腾讯云高级工程师,Istio Member,ServiceMesher管理委员,Istio 项目贡献者, Aerika 项目创建者 ,热衷于开源.网络和云计算.目前主要从事服务网格的开源和研发 ...
- k8s核心资源之Pod概念&入门使用讲解(三)
目录 1. k8s核心资源之Pod 1.1 什么是Pod? 1.2 Pod如何管理多个容器? 1.3 Pod网络 1.4 Pod存储 1.5 Pod工作方式 1.5.1 自主式Pod 1.5.2 控制 ...
- kubernetes之常用核心资源对象
部门产品线本身是做DEVOPS平台,最近部署架构也在往K8S上靠了,不得不学一下K8S.自己搭建了K8S集群与harbor仓库来学习. 1.kubernetes之常用核心资源对象 1.1.K8s服务部 ...
- C中的预编译宏定义
可以用宏判断是否为ARC环境 #if _has_feature(objc_arc) #else //MRC #endif C中的预编译宏定义 -- 作者: infobillows 来源:网络 在将一 ...
随机推荐
- Docker从认识到实践再到底层原理(三)|Docker在Centos7环境下的安装和配置
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总 然后就是博主最近最花时间的一 ...
- OpenGL的深度缓冲
如果我们想要在三维空间里画两个正方形:一个红色的,一个绿色的,而且从人眼的观察角度看,绿色正方形在红色正方形的后面,最后看上去应该是这样的: 要点在于,从观察者的角度看,绿色正方形在红色正方形的后 ...
- Mac基于VMware安装CentOS
流程偏长,下一步根本点不完: 01 首先,明确下两款软件的版本信息: VMware是[VMware-Fusion-13.5.0] CentOS是[CentOS-7-x86_64-Minimal-190 ...
- Oracle 11g ADG 部署(duplicate)快速参考
本文旨在指导客户完成Oracle 11g的ADG部署工作,主库环境已具备,备库环境已安装完成数据库软件. 环境:RHEL 6.8 + Oracle 11.2.0.4 1.确认主库运行在归档模式 2.确 ...
- NC24158 [USACO 2015 Jan G]Moovie Mooving
题目链接 题目 题目描述 Bessie is out at the movies. Being mischievous as always, she has decided to hide from ...
- Oracle字符串行专列(字符串聚合技术)
原文链接:http://oracle-base.com/articles/misc/string-aggregation-techniques.php 1 String Aggregation ...
- oracle 使用comment语句添加表注释
使用oracle comment语句可以给表.字段.视图等对象添加备注信息. 大致语法为: comment on TABLE table_name IS '备注内容'; 权限要求: 默认情况下用户只能 ...
- 项目实战:Qt编译Qt库以及使用C#调用Qt库,并实现C#集成Qt的tcp客户端
需求 1.Qt已经开发了应用,封装成Qt库,以供C#调用. 2.Qt的tcp客户端封装,以供C#调用,双向传递数据. 原理 1.使用QtCreator编译msvc版本的Qt库: 2.使 ...
- ubuntu18.04更换下载源
步骤一 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 步骤二 vim /etc/apt/sources.list 步骤三 # http ...
- 【Azure 应用服务】在创建App Service时,遇见“No available instances to satisfy this request. App Service is attempting to increase capacity.”错误
问题描述 在创建新的App Service,遇见了资源不满足当前需求的提示.详细消息为: "Code": "Conflict","Message&qu ...