《Istio官方文档》Nomad & Consul-安装
安装
注意:Nomad上的设置尚未经过测试。
在非Kubernetes环境中使用Istio涉及以下关键任务:
- 使用Istio API服务器设置Istio控制平面
- 将Istio sidecar添加到服务的每个实例
- 确保请求通过sidecars路由
设置控制面
Istio控制平面由四个主要服务组成:Pilot,Mixer,CA和API服务器。
API服务器
Istio的API服务器(基于Kubernetes的API服务器)提供了诸如配置管理和基于角色的访问控制等关键功能。API服务器需要一个etcd集群作为持久性存储。可以在这里找到设置API服务器的详细说明。有关Kubernetes API服务器启动选项的文档可以在这里找到
本地安装
为了进行概念验证,可以使用以下Docker-compose文件安装一个简单的单个容器API服务器:
version: '2'
services:
etcd:
image: quay.io/coreos/etcd:latest
networks:
istiomesh:
aliases:
- etcd
ports:
- "4001:4001"
- "2380:2380"
- "2379:2379"
environment:
- SERVICE_IGNORE=1
command: [
"/usr/local/bin/etcd",
"-advertise-client-urls=http://0.0.0.0:2379",
"-listen-client-urls=http://0.0.0.0:2379"
]
istio-apiserver:
image: gcr.io/google_containers/kube-apiserver-amd64:v1.7.3
networks:
istiomesh:
ipv4_address: 172.28.0.13
aliases:
- apiserver
ports:
- "8080:8080"
privileged: true
environment:
- SERVICE_IGNORE=1
command: [
"kube-apiserver", "--etcd-servers", "http://etcd:2379",
"--service-cluster-ip-range", "10.99.0.0/16",
"--insecure-port", "8080",
"-v", "2",
"--insecure-bind-address", "0.0.0.0"
]
其他Istio组件
Istio Pilot,Mixer和CA的Debian软件包可通过Istio发行版获得。或者,这些组件可以作为Docker容器运行(docker.io/istio/pilot,docker.io/istio/mixer,docker.io/istio/istio-ca)。请注意,这些组件是无状态的,可以水平缩放。每个组件都依赖于Istio API服务器,而Istio API服务器又依赖于etcd集群来实现持久性。为了实现高可用性,每个控制面服务可以在Nomad中作为任务来运行,其中服务节可以用于描述控制面服务的期望属性。
将Sidecars添加到服务实例
应用程序中的每个服务实例必须由Istio sidecar陪同。根据您的安装单元(Docker容器,虚拟机,裸机节点),Istio sidecar需要安装到这些组件中。例如,如果您的基础架构使用虚拟机,则必须在每个需要成为服务网格一部分的虚拟机上运行Istio附属程序进程。
将sidecars打包成基于Nomad部署的一种方式是将Istio sidecars过程作为任务添加到任务组中。一个任务组是一个或多个相关任务的集合,这些任务保证在同一个主机上共置。但是,与Kubernetes Pods不同,组中的任务不共享相同的网络名称空间。因此,在使用iptables规则透过Istio sidecars透明地重新路由所有网络流量时,必须注意确保每个主机只运行一个任务组。当Istio支持非透明代理(应用程序明确地与sidecars对话)时,此限制将不再适用。
通过Istio Sidecar路由流量
部分sidecars安装应该包括设置适当的IP表规则,以透明地通过Istio sidecars路由应用程序的网络流量。在这里可以找到设置这种转发的IP表脚本。
注意:这个脚本必须在启动应用程序或sidecar进程之前执行。
原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Istio官方文档》Nomad & Consul-安装
暂无评论