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

安装

注意:Nomad上的设置尚未经过测试。

在非Kubernetes环境中使用Istio涉及以下关键任务:

设置控制面

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进程之前执行。

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

(0)
上一篇 2021年8月16日
下一篇 2021年8月16日

相关推荐

发表回复

登录后才能评论