部署 Service

通过 Cloud Service Mesh 将服务部署到集群 与将 Service 部署到没有 Cloud Service Mesh 的集群时相同。您需要对 Kubernetes 清单进行一些更改:

  • 为所有容器创建 Kubernetes Service。全部 部署 应包含 已关联 Kubernetes 服务。

  • 为您的 Service 端口命名。虽然 GKE 允许您 定义未命名的 Service 端口,Cloud Service Mesh 需要您提供 端口名称,该名称与端口的 协议。

  • 为 Deployment 添加标签。这可让您使用 Cloud Service Mesh 流量管理功能,例如在同一服务的不同版本之间拆分流量。

以下示例 Deployment 和 Service 演示了这些要求:

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 的集群上部署 Service 后,请务必 注入 Sidecar 代理

后续步骤