定製資源(Custom Resource)是對Kubernetes API的擴充,Istio在K8s原生資源的基礎上增加了VirtualService、Gateway等定製資源。您可以整合對應語言的SDK Client,在代碼中操作Istio定製資源。本文介紹如何在代碼中使用SDK操作Istio資源。
前提條件
- 已建立ASM執行個體。具體操作,請參見建立ASM執行個體。
- 已添加ACK叢集到ASM執行個體。具體操作,請參見添加叢集到ASM執行個體。
- 已部署Bookinfo應用樣本到ASM執行個體的ACK叢集中。具體操作,請參見在ASM執行個體關聯的叢集中部署應用。
- 已在ASM執行個體的ACK叢集中部署入口網關。具體操作,請參見建立入口網關。
建立虛擬服務和網關規則的YAML檔案
- 使用以下內容,建立virtualService.yaml檔案。
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: bookinfo spec: hosts: - "*" gateways: - bookinfo-gateway http: - match: - uri: exact: /productpage - uri: prefix: /static - uri: exact: /login - uri: exact: /logout - uri: prefix: /api/v1/products route: - destination: host: productpage port: number: 9080
- 使用以下內容,建立gateway.yaml檔案。
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: bookinfo-gateway spec: selector: istio: ingressgateway servers: - port: number: 80 name: http protocol: HTTP hosts: - "*"
操作Istio資源
建立完虛擬服務和網關規則後,您可以整合對應語言的SDK Client,在代碼中操作Istio資源。
語言 | 參考文檔 |
Java | 使用Java SDK操作Istio資源 |
Go | 使用Go SDK操作Istio資源 |