istio 0.8 ——用ServiceEntry訪問外部服務(如RDS)
阿新 • • 發佈:2019-02-04
如之前文章所說,istio 0.8大改路由,並且將flag --includeIPRanges
移除,所以如之前這篇文章的方法已經不再適用。
至於為什麼要去掉這個flag,可以看一下這個issue。
接下來以之前這篇文章的內容為例,編寫一個ServiceEntry來訪問外部RDS。
首先我們釋出了一個連線RDS的服務。接著新建一個ServiceEntry:
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: rds-entry
spec:
hosts:
- rds地址
ports:
- number: 3306
name: jdbc
protocol: TCP
注意hosts中的rds地址就是rds網頁中提供的域名地址,而不是db.url中的那種jdbc:mysql://xxxx:3306/xxxx...
;第二個需要注意的點是ports
中的protocol
為TCP
,其中的name
不重要,number
就是埠3306
。
到此,我們就可以連線上外部服務了。雖然ServiceEntry是對標之前版本的egress的,但是明顯感覺較之前的egress好用了,因為之前版本測試egress的時候失敗了,也有可能是當時的方法錯了?
嘛,當然看到istio越來越好用,效能優化也逐漸變好,這些訊息都很讓人振奮,據說7月份就要釋出1.0了,istio能否引領新的潮流,成為”下一個” Kubernetes