代理 四层 lvs haproxy F5 四层代理基于ip+port的负载均衡,功能:
全流量转发(mysql、redis等) 优势:
性能好,资源消耗低 应用广泛 配置项较少(也是劣势) 劣势: - 可配置化程度低
七层 nginx haproxy Træfik 七层代理现在主要应用于HTTP协议,功能:
请求链接的负载均衡. 智能请求路由。 防御攻击(syn攻击)。 优势:
匹配规则灵活 对网络稳定性依赖较小 配置灵活 能用七层不用四层,七层可定制化程度高。
api网关 kong orange openresty zuul 功能:
服务发现 负载均衡 请求路由熔断 身份认证 熔断 流量管控 链路跟踪 监控 缺陷:
维护复杂的路由逻辑 service mesh 服务网格分为控制面板和数据面板
控制面板 linkerd envoy conduit-proxy 数据面板 conduit istio contour (基于envoy) 相对于apigateway优势 集成服务发现 分布式系统,解耦,控制面板负责管理配置,数据面板根据配置进行相应的动作,上报状态到数据面板进行展示。 sidecar模式,精确获取应用的详细信息,不受其他服务影响.
Conduit 介绍 Conduit是buoyant公司出品的,面向k8s的servicemesh产品,该公司另外一个产品为linkerd,现在业界唯一的生产级servicemesh产品。目标是在无需代码的改动就可以实现对应用程序的可见和控制。
环境 kubernetes 1.8+ 在没有k8s环境的情况下,推荐使用minikube来快速生成。
安装cli curl https://run.conduit.io/install | sh 安装conduit控制面板 conduit install | kubectl apply -f - conduit dashboard 官方的程序目前没有自动创建serviceaccount,需要手动创建serviceaccount,分配clusterrole,应用到deploy
kubectl create serviceaccount conduit --namespace=conduit cat <<EOF | kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: condit:cluster-admin namespace: kube-system roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: conduit namespace: conduit EOF 分别修改controller和prometheus应用添加serviceAccount: conduit kubectl get deploy --namespace=conduit controller kubectl get deploy --namespace=conduit prometheus 安装官方的演示程序 curl https://raw.