zl程序教程

您现在的位置是:首页 >  其他

当前栏目

《Istio官方文档》Nomad & Consul-安装

amp文档安装官方 istio Consul
2023-06-13 09:13:37 时间
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进程之前执行。


原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/94288.html

googleMD