一、服务网格核心价值解析
1.1 微服务治理演进路线
阶段
治理方式
核心能力
代表技术
原始阶段
代码硬编码
基础通信
HTTP Client
中间件阶段
SDK集成
服务发现/负载均衡
Dubbo/Spring Cloud
Sidecar阶段
代理拦截
流量管控/可观测性
Linkerd/Envoy
全网格阶段
控制平面统一管理
跨集群治理/安全策略
Istio/Consul
1.2 Istio核心组件对比
组件
功能定位
关键特性
Envoy
数据平面代理
支持HTTP/2 gRPC、动态配置更新
Pilot
服务发现与流量管理
抽象服务模型、版本路由规则
Citadel
安全认证中心
mTLS自动轮换、RBAC策略管理
Galley
配置校验与分发
配置规范化、多集群同步
Telemetry
可观测性收集
Prometheus/Jeager集成
二、生产级Istio集群部署
2.1 多集群联邦方案
# 主集群配置
istioctl install -f primary-cluster.yaml
# 输出共享CA证书
kubectl get secret cacerts -n istio-system -o jsonpath='{.data}' > cacerts.json
# 从集群配置
istioctl install -f remote-cluster.yaml \
--set values.global.remotePilotAddress=${PRIMARY_PILOT_IP}
# 注入CA证书
kubectl create secret generic cacerts -n istio-system --from-file=cacerts.json
2.2 精细化资源分配
# istio-operator.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
components:
pilot:
k8s:
resources:
limits:
cpu: 2000m
memory: 2Gi
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
ingressGateways:
- name: istio-ingressgateway
enabled: true
k8s:
service:
ports:
- port: 80
targetPort: 8080
name: http2
- port: 443
targetPort: 8443
name: https
三、全链路流量治理
3.1 金丝雀发布策略
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: product-vs
spec:
hosts:
- product.prod.svc.cluster.local
http:
- route:
- destination:
host: product.prod.svc.cluster.local
subset: v1
weight: 90
- destination:
host: product.prod.svc.cluster.local
subset: v2
weight: 10
mirror:
host: product-shadow.prod.svc.cluster.local
retries:
attempts: 3
retryOn: gateway-error,connect-failure
3.2 故障注入测试
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: payment-test
spec:
hosts:
- payment.prod.svc.cluster.local
http:
- fault:
delay:
percentage:
value: 30
fixedDelay: 5s
abort:
percentage:
value: 10
httpStatus: 503
route:
- destination:
host: payment.prod.svc.cluster.local
四、零信任安全体系
4.1 mTLS双向认证
# 启用全局mTLS
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: default
spec:
mtls:
mode: STRICT
# 特定命名空间例外
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: legacy-ns
namespace: legacy
spec:
mtls:
mode: PERMISSIVE
4.2 细粒度访问控制
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: payment-access
spec:
selector:
matchLabels:
app: payment
action: ALLOW
rules:
- from:
- source:
namespaces: ["order"]
to:
- operation:
methods: ["POST"]
paths: ["/api/v1/pay"]
五、深度可观测性实践
5.1 自定义指标采集
apiVersion: telemetry.istio.io/v1alpha1
kind: Telemetry
metadata:
name: custom-metrics
spec:
metrics:
- providers:
- name: prometheus
overrides:
- match:
metric: REQUEST_COUNT
mode: CLIENT_AND_SERVER
tagOverrides:
custom_tag:
value: "user_agent"
- match:
metric: REQUEST_DURATION
disabled: true
5.2 分布式追踪优化
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: tracing-filter
spec:
configPatches:
- applyTo: HTTP_FILTER
match:
context: SIDECAR_INBOUND
listener:
filterChain:
filter:
name: envoy.filters.network.http_connection_manager
patch:
operation: INSERT_BEFORE
value:
name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
dynamic_stats: false
start_child_span: true
文章来源:https://ximaonetwork.cn
1094

被折叠的 条评论
为什么被折叠?



