部署服務

使用 Cloud Service Mesh 將服務部署至叢集,與未使用 Cloud Service Mesh 將服務部署至叢集幾乎相同。您需要對 Kubernetes 資訊清單進行一些變更:

  • 為所有容器建立 Kubernetes 服務。所有部署作業都應附加 Kubernetes 服務。

  • 為服務通訊埠命名。雖然 GKE 允許您定義未命名的服務通訊埠,但 Cloud Service Mesh 要求您提供通訊埠名稱,且該名稱必須與通訊埠的通訊協定相符。

  • 為部署作業加上標籤。這樣一來,您就能使用 Cloud Service Mesh 流量管理功能,例如在同一服務的不同版本之間拆分流量。

以下是部署和服務的範例,說明這些需求:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloserver
spec:
  replicas: 1
  selector:
    matchLabels:
      app: helloserver
  template:
    metadata:
      labels:
        app: helloserver
    spec:
      containers:
      - image: gcr.io/google-samples/istio/helloserver:v0.0.1
        imagePullPolicy: Always
        name: main
      restartPolicy: Always
      terminationGracePeriodSeconds: 5
apiVersion: v1
kind: Service
metadata:
  name: hellosvc
spec:
  ports:
  - name: http
    port: 80
    targetPort: 8080
  selector:
    app: helloserver
  type: LoadBalancer

在叢集上部署含有 Cloud Service Mesh 的服務後,請務必插入附屬 Proxy

後續步驟