流量管理是 istio 最核心的问题,涉及 v1alpha3 中的配置资源,包括Gateway、VirtualSerice、DestinationRule 等。本文主要是基于 Istio 基础一文已经部署的实例来进行讲解。
Kubernetes 网络
微服务是多进程、多服务部署,无法通过 IPC 进程内调用,必然通过网络调用,这将带来很多问题:不可靠、有带宽、协议设计。无论是 TCP、HTTP、RPC,无论是东西流量还是南北流量,涉及限流、熔断、域名及路径上下文,都需要 Kubernetes 或者第三方产品给出解决方案。网络是 Kubernetes 的难点之一。
Istio Prometheus
我选择 Istio 而非 Service Mesh 鼻祖 Linkerd 的原因,是 Istio 有大牌厂商支持、社区生态圈优势、重点支持 Kubernetes。
Istio 基础
我选择 Istio 而非 Service Mesh 鼻祖 Linkerd 的原因,是 Istio 有大牌厂商支持、社区生态圈优势、重点支持 Kubernetes。
微服务架构
这是一个架构概念爆发的时代,是架构本身的复杂度已经开始超越业务逻辑本身的时代,同时也是越来越接近 DevOps 工作方式的时代。
Kubernetes 资源
本文重点理解 Kubernetes 资源的作用,并用一个简单的例子进行演示。
Kubernetes 集群安装
有了 Docker Swarm 基础,再来学习 Kubernetes 会相对容易一些,不过安装 Kubernetes 还是挺繁琐的,对官方文档中需要访问谷歌外网的部分,还需要替换成国内源。如果目的为了学习,还可以使用 minikube 或 Vagrant 快速创建集群。
Vagrant 虚拟机管理
个人操作系统并不需要配置化,但随着开发人员的复杂化,每个开发人员都需要同样的主机系统以保证开发环境的可移植性;另外一方面,随着微服务的推广需要多主机节点管理,重复性的指令配置消耗大量时间且容易出错,于是出现了多主机配置化,可以用现在流行的说法“基础设施即代码”,Infrastructure as code (IaC),例如 docker machine、vagrant,本文将讲解 vagrant 的使用,并安装 Kubernetes 集群进行实战。