kuma 学习四 策略
通过策略我们可以构建灵活的service mesh
应用策略
我们可以通过kumactl 以及kubectl 应用策略
- kumactl 格式
echo "
type: ..
spec: ..
" | kumactl -f -
- kubectl 格式
echo "
apiVersion: kuma.io/v1alpha1
kind: ..
spec: ..
" | kubectl -f -
mesh 类型的策略
允许在同一个kuma 集群中创建多service mesh
通用格式:
type: Mesh
name: default
k8s 格式:
apiVersion: kuma.io/v1alpha1
kind: Mesh
metadata:
namespace: kuma-system
name: default
双向 tls
- 通用格式
type: Mesh
name: default
mtls:
enabled: true
ca:
builtin: {}
- k8s 格式:
apiVersion: kuma.io/v1alpha1
kind: Mesh
metadata:
namespace: kuma-system
name: default
spec:
mtls:
enabled: true
ca:
builtin: {}
流量许可
- 通用格式
type: TrafficPermission
name: permission-1
mesh: default
rules:
- sources:
- match:
service: backend
destinations:
- match:
service: redis
version: "5.0"
- k8s 格式
apiVersion: kuma.io/v1alpha1
kind: TrafficPermission
mesh: default
metadata:
namespace: default
name: permission-1
spec:
rules:
- sources:
- match:
service: backend
destinations:
- match:
service: redis
version: "5.0"
流量路由
- 通用格式
type: TrafficRoute
name: route-1
mesh: default
rules:
- sources:
- match:
service: backend
destinations:
- match:
service: redis
conf:
- weight: 90
destination:
- service: backend
version: "1.0"
- weight: 10
destination:
- service: backend
version: "2.0"
- k8s 格式
apiVersion: kuma.io/v1alpha1
kind: TrafficRoute
mesh: default
metadata:
namespace: default
name: route-1
spec:
rules:
- sources:
- match:
service: backend
destinations:
- match:
service: redis
conf:
- weight: 90
destination:
- service: backend
version: "1.0"
- weight: 10
destination:
- service: backend
version: "2.0"
流量追踪
- 通用格式
type: Mesh
name: default
tracing:
enabled: true
type: zipkin
address: zipkin.srv:9000
- k8s 格式
apiVersion: kuma.io/v1alpha1
kind: Mesh
metadata:
namespace: kuma-system
name: default
spec:
tracing:
enabled: true
type: zipkin
address: zipkin.srv:9000
流量日志
- 通用格式
type: Mesh
name: default
logging:
accessLogs:
enabled: true
filePath: "/tmp/access.log"
- k8s 格式
apiVersion: kuma.io/v1alpha1
kind: Mesh
metadata:
namespace: kuma-system
name: default
spec:
logging:
accessLogs:
enabled: true
filePath: "/tmp/access.log"
proxy template
proxy template 很强大 ,通过此我们可以配置低级的envoy
- 格式
type: ProxyTemplate
mesh: default
name: template-1
selectors:
- match:
service: backend
conf:
imports:
- default-proxy
resources:
- ..
- ..
当前对于import的支持稍简单,以下是一个复杂的例子:
imports:
- default-proxy
resources:
- name: localhost:9901
version: v1
resource: |
'@type': type.googleapis.com/envoy.api.v2.Cluster
connectTimeout: 5s
name: localhost:9901
loadAssignment:
clusterName: localhost:9901
endpoints:
- lbEndpoints:
- endpoint:
address:
socketAddress:
address: 127.0.0.1
portValue: 9901
type: STATIC
- name: inbound:0.0.0.0:4040
version: v1
resource: |
'@type': type.googleapis.com/envoy.api.v2.Listener
name: inbound:0.0.0.0:4040
address:
socket_address:
address: 0.0.0.0
port_value: 4040
filter_chains:
- filters:
- name: envoy.http_connection_manager
config:
route_config:
virtual_hosts:
- routes:
- match:
prefix: "/stats/prometheus"
route:
cluster: localhost:9901
domains:
- "*"
name: envoy_admin
codec_type: AUTO
http_filters:
name: envoy.router
stat_prefix: stats
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2018-09-11 graphql 数据导入工具
2018-09-11 grandstack graphql 开发模型
2018-09-11 几本不错的graphql 电子书