OpenShift 4 之Istio-Tutorial (9) 控制Egress訪問服務

OpenShift 4 之Istio-Tutorial (9) 控制Egress訪問服務

Istio缺省是不限制服務網格中的服務對外部訪問的,不過我們可以對Egress進行控制,以限制Istio上的服務對外部資源的訪問。

環境準備:我們在開始之前先確保環境和完成《OpenShift 4 之Istio-Tutorial (2) 部署三個微服務》一樣,只部署了3個微服務和VirtualService、Gateway,沒有DestinationRule。

1. 首先把recommendation v1和recommendation v2部署刪除,然後部署recommendation v3(這個微服務會訪問http://worldclockapi.com/api/json/cet/now外部服務,以獲得當前的時間)。

<code>$ oc delete -f recommendation/kubernetes/Deployment-v1.yml
$ oc delete -f recommendation/kubernetes/Deployment-v2.yml
$ oc apply -f recommendation/kubernetes/Deployment-v3.yml
$ oc get pod
NAME READY STATUS RESTARTS AGE
customer-77dc47d7f8-szhd5 2/2 Running 16 2d11h
preference-v1-55476494cf-xm4dq 2/2 Running 0 4d8h
recommendation-v3-57556796f8-qcdl7 2/2 Running 0 151m/<code>

2. 此時向customer發測試請求,可以正常訪問。

<code>$ curl $INGRESS_GATEWAY/customer
customer => preference => recommendation v3 2020-01-19T11:33+01:00 from '83bbb6d11a7e': 1/<code>

3. 執行以下命令,修改Istio缺省的對外訪問策略為必須是REGISTRY_ONLY的服務才能通過Egress訪問外部服務。

<code>$ oc get configmap istio -n istio-system -o yaml | sed 's/mode: ALLOW_ANY/mode: REGISTRY_ONLY/g' | kubectl replace -n istio-system -f -/<code>

4. 此時向customer發測試請求,確認應無法正常訪問外部服務。

<code>$ curl $INGRESS_GATEWAY/customer
customer => Error: 503 - preference => Error: 500 -
.../<code>

5. 文件istiofiles/service-entry-egress-worldclockapi.yml定義了ServiceEntry對象允許訪問“worldclockapi.com”主機。

<code>apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: worldclockapi-egress-rule
spec:
hosts:
- worldclockapi.com
ports:
- name: http-80
number: 80
protocol: http/<code>

執行命令,創建ServiceEntry對象。

<code>$ create -f istiofiles/service-entry-egress-worldclockapi.yml/<code>

6. 此時向customer發測試請求,又可以正常訪問了。

<code>$ curl $INGRESS_GATEWAY/customer
customer => preference => recommendation v3 2020-01-19T11:43+01:00 from '83bbb6d11a7e': 4/<code>

7. 刪除recommendation v3,恢復環境。

<code>$ oc delete -f recommendation/kubernetes/Deployment-v3.yml
$ oc delete -f istiofiles/service-entry-egress-worldclockapi.yml/<code>


分享到:


相關文章: