十一 Istio:向istio服務網格中引入虛擬機

目錄

  • 一.模塊概覽
  • 二.系統環境
  • 三.虛擬機負載
    • 3.1 虛擬機負載
    • 3.2 單網絡架構
    • 3.3 多網絡架構
    • 3.4 Istio 中如何表示虛擬機工作負載?
  • 四.實戰:向istio Mesh中引入虛擬機
    • 4.1 將虛擬機引入到 Istio Mesh
    • 4.2 在 Kubernetes 集群上安裝 Istio
    • 4.3 準備虛擬機命名空間和文件
    • 4.4 配置虛擬機
    • 4.5 從虛擬機訪問服務
    • 4.6 在虛擬機上運行服務
一.模塊概覽在本模塊中,我們將了解如何將運行在虛擬機上的工作負載納入istio服務網格 。
向istio服務網格中引入虛擬機的前提是已經安裝好了istio,關于istio的安裝部署,請查看博客《Istio(二):在Kubernetes(k8s)集群上安裝部署istio1.14》https://www.cnblogs.com/renshengdezheli/p/16836404.html
二.系統環境服務器版本docker軟件版本Kubernetes(k8s)集群版本Istio軟件版本CPU架構CentOS Linux release 7.4.1708 (Core)Docker version 20.10.12v1.21.9Istio1.14x86_64Kubernetes集群架構:k8scloude1作為master節點,k8scloude2,k8scloude3作為worker節點
服務器操作系統版本CPU架構進程功能描述k8scloude1/192.168.110.130CentOS Linux release 7.4.1708 (Core)x86_64docker , kube-apiserver,etcd,kube-scheduler,kube-controller-manager,kubelet,kube-proxy,coredns,calicok8s master節點k8scloude2/192.168.110.129CentOS Linux release 7.4.1708 (Core)x86_64docker , kubelet,kube-proxy , calicok8s worker節點k8scloude3/192.168.110.128CentOS Linux release 7.4.1708 (Core)x86_64docker,kubelet , kube-proxy,calicok8s worker節點三.虛擬機負載3.1 虛擬機負載如果我們有在虛擬機上運行的工作負載 , 我們可以將它們連接到 Istio 服務網格,使其成為網格的一部分 。
帶有虛擬機的 Istio 服務網格有兩種架構:單網絡架構和多網絡架構 。
3.2 單網絡架構在這種情況下,有一個單一的網絡 。Kubernetes 集群和在虛擬機上運行的工作負載都在同一個網絡中 , 它們可以直接相互通信 。
十一 Istio:向istio服務網格中引入虛擬機

文章插圖
控制平面的流量(配置更新、證書簽署)是通過 Gateway 發送的 。
虛擬機被配置了網關地址,所以它們在啟動時可以連接到控制平面 。
3.3 多網絡架構多網絡架構橫跨多個網絡 。Kubernetes 集群在一個網絡內,而虛擬機則在另一個網絡內 。這使得 Kubernetes 集群中的 Pod 和虛擬機上的工作負載無法直接相互通信 。
十一 Istio:向istio服務網格中引入虛擬機

文章插圖
所有的流量,控制平面和 pod 到工作負載的流量都流經網關,網關作為兩個網絡之間的橋梁 。
3.4 Istio 中如何表示虛擬機工作負載?在 Istio 服務網格中,有兩種方式來表示虛擬機工作負載 。
工作負載組(WorkloadGroup 資源)類似于 Kubernetes 中的部署(Deployment),它代表了共享共同屬性的虛擬機工作負載的邏輯組 。
描述虛擬機工作負載的第二種方法是使用工作負載條目(WorkloadEntry 資源) 。工作負載條目類似于 Pod , 它代表了一個虛擬機工作負載的單一實例 。
請注意,創建上述資源將不會提供或運行任何虛擬機工作負載實例 。這些資源只是用來引用或指向虛擬機工作負載的 。Istio 使用它們來了解如何適當地配置網格,將哪些服務添加到內部服務注冊表中 , 等等 。
為了將虛擬機添加到網格中,我們需要創建一個工作負載組,作為模板 。然后,當我們配置并將虛擬機添加到網格中時 , 控制平面會自動創建一個相應的 WorkloadEntry 。
我們已經提到,WorkloadEntry 的作用類似于 Pod 。在添加虛擬機時 , 會創建 WorkloadEntry 資源,而當虛擬機的工作負載從網格中移除時 , 該資源會被自動刪除 。
除了 WorkloadEntry 資源外 , 我們還需要創建一個 Kubernetes 服務 。創建一個 Kubernetes 服務給了我們一個穩定的主機名和 IP 地址,以便使用選擇器字段訪問虛擬機工作負載和 pod 。這也使我們能夠通過 DestinationRule 和 VirtualService 資源使用 Istio 的路由功能 。
四.實戰:向istio Mesh中引入虛擬機4.1 將虛擬機引入到 Istio Mesh在這個實驗中,我們將學習如何將虛擬機上運行的工作負載連接到 Kubernetes 集群上運行的 Istio 服務網格 。Kubernetes 集群和虛擬機都將在谷歌云平臺(GCP)上運行 。我們將使用單一網絡架構 。
在我們創建了一個 Kubernetes 集群后 , 我們可以下載、安裝和配置 Istio 。

推薦閱讀