1. 程式人生 > >《Istio官方文件》Nomad & Consul-安裝

《Istio官方文件》Nomad & Consul-安裝

安裝

注意:Nomad上的設定尚未經過測試。

在非Kubernetes環境中使用Istio涉及以下關鍵任務:

  1. 使用Istio API伺服器設定Istio控制平面
  2. 將Istio sidecar新增到服務的每個例項
  3. 確保請求通過sidecars路由

設定控制面

Istio控制平面由四個主要服務組成:Pilot,Mixer,CA和API伺服器。

API伺服器

Istio的API伺服器(基於Kubernetes的API伺服器)提供了諸如配置管理和基於角色的訪問控制等關鍵功能。API伺服器需要一個作為永續性儲存。可以在這裡找到設定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程序之前執行。