日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用ASM Serverless網(wǎng)關(guān)實(shí)現(xiàn)多集群入口

通過阿里云服務(wù)網(wǎng)格ASM,您可以在同一VPC內(nèi)的多個(gè)Kubernetes集群上部署應(yīng)用服務(wù)組件,并配置一個(gè)統(tǒng)一的Serverless入口網(wǎng)關(guān)代理多集群的入口流量,從而提升整體服務(wù)的可用性、降低計(jì)算資源成本。

前提條件

步驟一:確認(rèn)兩個(gè)集群的互訪聯(lián)通性

默認(rèn)情況下,同一個(gè)VPC下的兩個(gè)集群,如果使用了企業(yè)安全組,默認(rèn)能夠互相訪問。如果使用普通安全組或者兩個(gè)安全組訪問不通,則需要為彼此添加安全組訪問規(guī)則。具體操作,請(qǐng)參見添加安全組規(guī)則

步驟二:添加集群到ASM實(shí)例并創(chuàng)建Serverless入口網(wǎng)關(guān)

將兩個(gè)集群添加到ASM實(shí)例后,創(chuàng)建一個(gè)Serverless入口網(wǎng)關(guān)。

  1. 將兩個(gè)集群添加到ASM實(shí)例。具體操作,請(qǐng)參見添加集群到ASM實(shí)例

  2. 使用以下YAML,創(chuàng)建一個(gè)Serverless入口網(wǎng)關(guān)。具體操作,請(qǐng)參見創(chuàng)建入口網(wǎng)關(guān)服務(wù)

    展開查看Serverless入口網(wǎng)關(guān)YAML

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      annotations:
        asm.alibabacloud.com/managed-by-asm: 'true'
      name: ingressgateway
      namespace: istio-system
    spec:
      gatewayType: ingress
      dnsPolicy: ClusterFirst
      externalTrafficPolicy: Local
      hostNetwork: false
      ports:
        - name: http
          port: 80
          protocol: TCP
          targetPort: 80
        - name: https
          port: 443
          protocol: TCP
          targetPort: 443
      replicaCount: 1
      resources:
        limits:
          cpu: '2'
          memory: 2G
        requests:
          cpu: 200m
          memory: 256Mi
      rollingMaxSurge: 100%
      rollingMaxUnavailable: 25%
      runAsRoot: true
      serviceType: LoadBalancer

步驟三:部署B(yǎng)ookinfo應(yīng)用

為了演示ASM跨集群的應(yīng)用部署能力,Bookinfo應(yīng)用的不同微服務(wù)分別部署在兩個(gè)集群上。

  1. 使用以下內(nèi)容,在m1c2集群中創(chuàng)建bookinfo-m1c2.yaml。

    說明

    review-v3 deployment對(duì)應(yīng)的功能是書評(píng)中顯示紅色星。

    展開查看Bookinfo應(yīng)用YAML

    # Details service
    apiVersion: v1
    kind: Service
    metadata:
      name: details
      labels:
        app: details
        service: details
    spec:
      ports:
      - port: 9080
        name: http
      selector:
        app: details
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: bookinfo-details
      labels:
        account: details
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: details-v1
      labels:
        app: details
        version: v1
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: details
          version: v1
      template:
        metadata:
          labels:
            app: details
            version: v1
        spec:
          serviceAccountName: bookinfo-details
          containers:
          - name: details
            image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-details-v1:1.19.1
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 9080
    ---
    # Ratings service
    apiVersion: v1
    kind: Service
    metadata:
      name: ratings
      labels:
        app: ratings
        service: ratings
    spec:
      ports:
      - port: 9080
        name: http
      selector:
        app: ratings
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: bookinfo-ratings
      labels:
        account: ratings
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: ratings-v1
      labels:
        app: ratings
        version: v1
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: ratings
          version: v1
      template:
        metadata:
          labels:
            app: ratings
            version: v1
        spec:
          serviceAccountName: bookinfo-ratings
          containers:
          - name: ratings
            image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-ratings-v1:1.19.1
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 9080
    ---
    # Reviews service
    apiVersion: v1
    kind: Service
    metadata:
      name: reviews
      labels:
        app: reviews
        service: reviews
    spec:
      ports:
      - port: 9080
        name: http
      selector:
        app: reviews
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: bookinfo-reviews
      labels:
        account: reviews
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: reviews-v1
      labels:
        app: reviews
        version: v1
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: reviews
          version: v1
      template:
        metadata:
          labels:
            app: reviews
            version: v1
        spec:
          serviceAccountName: bookinfo-reviews
          containers:
          - name: reviews
            image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-reviews-v1:1.19.1
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 9080
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: reviews-v2
      labels:
        app: reviews
        version: v2
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: reviews
          version: v2
      template:
        metadata:
          labels:
            app: reviews
            version: v2
        spec:
          serviceAccountName: bookinfo-reviews
          containers:
          - name: reviews
            image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-reviews-v2:1.19.1
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 9080
    ---
    # Productpage services
    apiVersion: v1
    kind: Service
    metadata:
      name: productpage
      labels:
        app: productpage
        service: productpage
    spec:
      ports:
      - port: 9080
        name: http
      selector:
        app: productpage
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: bookinfo-productpage
      labels:
        account: productpage
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: productpage-v1
      labels:
        app: productpage
        version: v1
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: productpage
          version: v1
      template:
        metadata:
          labels:
            app: productpage
            version: v1
        spec:
          serviceAccountName: bookinfo-productpage
          containers:
          - name: productpage
            image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-productpage-v1:1.19.1
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 9080
    ---
  2. 執(zhí)行以下命令,在m1c2集群中部署不包含review-v3 deployment的Bookinfo應(yīng)用。

    kubectl apply -f bookinfo-m1c2.yaml
  3. 使用以下內(nèi)容,在m1c1集群中創(chuàng)建bookinfo-m1c1.yaml。

    展開查看YAML內(nèi)容

    # Reviews service
    apiVersion: v1
    kind: Service
    metadata:
      name: reviews
      labels:
        app: reviews
        service: reviews
    spec:
      ports:
      - port: 9080
        name: http
      selector:
        app: reviews
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: bookinfo-reviews
      labels:
        account: reviews
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: reviews-v3
      labels:
        app: reviews
        version: v3
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: reviews
          version: v3
      template:
        metadata:
          labels:
            app: reviews
            version: v3
        spec:
          serviceAccountName: bookinfo-reviews
          containers:
          - name: reviews
            image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-reviews-v3:1.19.1
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 9080
    ---
    # Ratings service
    apiVersion: v1
    kind: Service
    metadata:
      name: ratings
      labels:
        app: ratings
        service: ratings
    spec:
      ports:
      - port: 9080
        name: http
      selector:
        app: ratings
  4. 執(zhí)行以下命令,在m1c1集群中部署review-v3和ratting service。

    kubectl apply -f bookinfo-m1c1.yaml

步驟四:添加虛擬服務(wù)和網(wǎng)關(guān)規(guī)則

  1. 在ASM實(shí)例的default命名空間下,新建一個(gè)名為bookinfo的虛擬服務(wù)。具體操作,請(qǐng)參見管理虛擬服務(wù)

    展開查看虛擬服務(wù)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
  2. 在ASM實(shí)例的default命名空間下,新建一個(gè)名為bookinfo-gateway的網(wǎng)關(guān)規(guī)則。具體操作,請(qǐng)參見管理網(wǎng)關(guān)規(guī)則

    展開查看網(wǎng)關(guān)規(guī)則YAML

    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
      name: bookinfo-gateway
    spec:
      selector:
        istio: ingressgateway # use istio default controller
      servers:
      - port:
          number: 80
          name: http
          protocol: HTTP
        hosts:
        - "*"
  3. 在瀏覽器地址欄,輸入http://{Serverless入口網(wǎng)關(guān)的IP地址}/productpage,并多次刷新頁面。

    可以看到頁面出現(xiàn)reviews的3個(gè)版本,且比例接近1:1:1。雖然review-v3和其他服務(wù)不在同一個(gè)集群中,也可以正常顯示。

(可選)步驟五:指定reviews總是使用v3版本

通過定義目標(biāo)規(guī)則和虛擬服務(wù),可以定義Bookinfo應(yīng)用的微服務(wù)部署策略。本例中將指定Bookinfo總是使用review v3版本。

  1. 在ASM實(shí)例的default命名空間下,新建一個(gè)名為reviews的目標(biāo)規(guī)則。具體操作,請(qǐng)參見管理虛擬服務(wù)

    展開查看目標(biāo)規(guī)則YAML

    apiVersion: networking.istio.io/v1alpha3
    kind: DestinationRule
    metadata:
      name: reviews
    spec:
      host: reviews
      subsets:
      - name: v1
        labels:
          version: v1
      - name: v2
        labels:
          version: v2
      - name: v3
        labels:
          version: v3
  2. 在ASM實(shí)例的default命名空間下,新建一個(gè)名為reviews的虛擬服務(wù)。具體操作,請(qǐng)參見管理虛擬服務(wù)

    展開查看虛擬服務(wù)YAML

    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: reviews
    spec:
      hosts:
        - reviews
      http:
      - route:
        - destination:
            host: reviews
            subset: v3
  3. 在瀏覽器地址欄,輸入http://{Serverless入口網(wǎng)關(guān)的IP地址}/productpage,并多次刷新頁面。

    可以看到reviews始終使用v3版本,即書評(píng)中為紅色星。書評(píng)用紅星