欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何將部署在VM中的服務(wù)納入Istio

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何將部署在VM中的服務(wù)納入Istio,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、蘆淞ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的蘆淞網(wǎng)站制作公司

Istio在設(shè)計之初,主要面向Kubernetes當(dāng)中的服務(wù)。但是在實際場景中,依舊有不少服務(wù)部署在VM上,Istio想成為Service Mesh事實上的標(biāo)準(zhǔn),毫無疑問需要支持VM部署的服務(wù)。

Istio1.6 新增了 WorkloadEntry 自定義資源,通過該資源為VM提供了一流的支持。

Istio1.7 增加了安全引導(dǎo)VM中運行的服務(wù)的身份的功能。最后,Istio 1.7增加了Sidecar的安裝包,以支持CentOS/Red Hat和現(xiàn)有的Debian/Ubuntu。

Istio1.8 新增了智能 DNS 代理,它是由 Go 編寫的 Istio sidecar 代理,sidecar 上的 Istio agent 將附帶一個由 Istiod 動態(tài)編程的緩存 DNS 代理。來自應(yīng)用程序的 DNS 查詢會被 pod 或 VM 中的 Istio 代理透明地攔截和服務(wù),該代理會智能地響應(yīng) DNS 查詢請求,可以實現(xiàn)虛擬機到服務(wù)網(wǎng)格的無縫多集群訪問。

并且Istio1.8新增了 WorkloadGroup 自定義資源,該資源是描述部署在VM上的服務(wù)實例的集合,旨在模仿現(xiàn)有的用于Kubernetes工作負(fù)載的Sidecar注入和Deployment規(guī)范模型,以引導(dǎo)Istio代理。

通過 WorkloadGroup方式, 實現(xiàn)VM 實例自動注冊的功能目前處于pre-alpha狀態(tài)

WorkloadEntry

WorkloadEntry用來描述非Pod的端點,將VM納入mesh中。此時VM成為像Pod一樣的一等公民,可以配置MUTUAL_TLS。

要創(chuàng)建一個WorkloadEntry并將其附加到ServiceEntry,執(zhí)行以下操作:

apiVersion: networking.istio.io/v1alpha3
kind: WorkloadEntry
metadata:
 name: vm1
 namespace: ns1
spec:
 address: 1.1.1.1
 labels:
   app: foo
   instance-id: vm-78ad2
   class: vm
---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
 name: svc1
 namespace: ns1
spec:
 hosts:
 - svc1.internal.com
 ports:
 - number: 80
   name: http
   protocol: HTTP
 resolution: STATIC
 workloadSelector:
   labels:
     app: foo

這將創(chuàng)建一個包含一組標(biāo)簽和地址的新WorkloadEntry,以及一個使用WorkloadSelector選擇帶有所需標(biāo)簽的所有端點的ServiceEntry,在這種情況下,包括為VM創(chuàng)建的WorkloadEntry。

如何將部署在VM中的服務(wù)納入Istio

請注意,ServiceEntry可以使用相同的選擇器引用Pod和WorkloadEntries。現(xiàn)在,Istio可以對VM和Pod進(jìn)行相同的處理,而不必將它們分開。

VM自動注冊

WorkloadGroup主要用于 WorkloadEntry 自動注冊,該功能在實際場景中比較實用。事實上我們部署在VM當(dāng)中的服務(wù),一般都會配置自動伸縮,這就要求我們的服務(wù)必須可以自動注冊到mesh中。

如何實現(xiàn)自動注冊那?

首先我們需要做一些準(zhǔn)備工作:

  • 在安裝istiod的時候,啟用自動注冊的功能。

$ istioctl install --set values.pilot.env.PILOT_ENABLE_WORKLOAD_ENTRY_AUTOREGISTRATION=true
  • 部署一個east-west gateway。用于暴露istiod服務(wù),從而可以讓VM上的Sidecar 可以和istiod 通信。

然后我們創(chuàng)建如下的 WorkloadGroup:

apiVersion: networking.istio.io/v1alpha3
kind: WorkloadGroup
metadata:
 name: python-http
 namespace: vm
spec:
 metadata:
   annotations: {}
   labels:
     app: python-http
 template:
   ports: {}
   serviceAccount: my-vm

這樣我們在每個vm上python-http 實例啟動后,都會自動在mesh中創(chuàng)建一個WorkloadEntry。而創(chuàng)建的WorkloadEntry,包含了VM實例的ip和元數(shù)據(jù)。此時我們就可以創(chuàng)建一個ServiceEntry,通過標(biāo)簽選擇器選擇我們的WorkloadEntry。然后mesh中的其他服務(wù)就可以通過ServiceEntry中的hosts, 對我們的python-http服務(wù)進(jìn)行訪問。

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
 name: vm-workload-svc
 namespace: vm
spec:
 hosts:
 - vmservice.example.com
 location: MESH_INTERNAL
 ports:
 - number: 80
   name: http
   protocol: HTTP
   targetPort: 9090
 resolution: STATIC
 workloadSelector:
   labels:
     app: python-http

如何將部署在VM中的服務(wù)納入Istio

關(guān)于VM詳細(xì)的安裝步驟,參考官方文檔。

智能DNS

其實完成VM自動注冊,并不能通過主機名實現(xiàn)虛擬機到服務(wù)網(wǎng)格的無縫訪問。例如,如果我們在VM上部署Istio sidecar代理,我們將無法通過主機名(例如httpbin.default.svc.cluster.local)訪問網(wǎng)格和Kubernetes集群中服務(wù)。此時我們需要智能DNS。

在Istio 1.8中,Sidecar現(xiàn)在具有一個DNS代理,該代理緩存網(wǎng)格中的端點和ServiceEntry資源創(chuàng)建的端點。通過Iptables規(guī)則,攔截dns請求到sidecar 本地dns server,在緩存中可以解析的主機名,則直接返回解析結(jié)果,如果找不到,它將作為普通DNS代理委派給系統(tǒng)DNS。這樣vm上的服務(wù)可以通過主機名訪問mesh中的服務(wù)。

如何將部署在VM中的服務(wù)納入Istio

智能DNS 默認(rèn)沒有啟用,我們在安裝istio的時候,可以通過如下參數(shù)啟用該功能:

--set meshConfig.defaultConfig.proxyMetadata.ISTIO_META_DNS_CAPTURE=true

當(dāng)VM連接到Istio控制平面時,它通過“東西向網(wǎng)關(guān)”進(jìn)行連接。該網(wǎng)關(guān)實際上只是一個專門為網(wǎng)格內(nèi)部流量指定的Istio網(wǎng)關(guān),現(xiàn)在,東西向網(wǎng)關(guān)已經(jīng)是Istio 1.8中的推薦部署。一旦從VM Sidecar到Istio控制平面建立了連接,便會創(chuàng)建適當(dāng)?shù)腤orkloadEntry資源,并使VM Sidecar可以解析集群中的所有服務(wù)。從VM上部署服務(wù)可以直接訪問httpbin.default.svc.cluster.local。DNS名稱由代理解析,并通過“東西方網(wǎng)關(guān)”路由到網(wǎng)格中的適當(dāng)服務(wù)。

如何將部署在VM中的服務(wù)納入Istio

上述就是小編為大家分享的如何將部署在VM中的服務(wù)納入Istio了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享題目:如何將部署在VM中的服務(wù)納入Istio
本文地址:http://www.chinadenli.net/article10/igjedo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)網(wǎng)站排名搜索引擎優(yōu)化網(wǎng)站導(dǎo)航網(wǎng)站制作標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站