全部产品
Search
文档中心

Server Load Balancer:Implementasikan pemulihan bencana hybrid berbasis gateway multi-cluster ALB di ACK One

更新时间:Jul 06, 2025

Jika bisnis Anda beroperasi pada pusat data atau kluster Kubernetes cloud publik pihak ketiga, Anda dapat menggunakan Distributed Cloud Container Platform for Kubernetes (ACK One) untuk membangun sistem redundansi zona dalam lingkungan hybrid cloud atau lintas cloud. Pengaturan ini memungkinkan failover otomatis dan mulus selama bencana. Topik ini menjelaskan cara menggunakan ACK One untuk dengan cepat membangun sistem redundansi zona aktif dalam lingkungan hybrid cloud.

Arsitektur

Gambar di atas menunjukkan arsitektur sistem redundansi zona aktif dalam lingkungan hybrid cloud. Sistem ini terdiri dari kluster terdaftar, instance Fleet (GitOps opsional), dan gateway multi-cluster Application Load Balancer (ALB).

  1. Sumber daya di Alibaba Cloud ditempatkan dalam virtual private cloud (VPC) yang sama. Kluster Container Service for Kubernetes (ACK) dibuat di AZ 1 dan kluster terdaftar dibuat di AZ 2.

  2. Hubungkan kluster Kubernetes yang diterapkan di pusat data atau platform pihak ketiga ke kluster terdaftar. Gunakan saluran sewa untuk menghubungkan pusat data ke VPC.

  3. Asosiasikan kluster ACK dan kluster terdaftar dengan instance Fleet di VPC yang sama. Gunakan ACK One GitOps untuk mendistribusikan aplikasi ke kluster ACK dan kluster terdaftar.

  4. Pada instance Fleet, konfigurasikan AlbConfig untuk membuat gateway multi-cluster ALB dan tambahkan kluster ke gateway. Kemudian, buat Ingress dan konfigurasikan aturan routing lalu lintas pada instance Fleet untuk mengelola lalu lintas Utara-Selatan dan menerapkan pemulihan bencana zona.

Prosedur

Langkah 1: Rancang jaringan dan buat kluster

  1. Buat instance Fleet, kluster ACK, dan kluster terdaftar di VPC yang sama. Pastikan bahwa kluster ACK dan kluster terdaftar berada di zona yang berbeda.

  2. Pastikan blok CIDR node dan pod dari kluster ACK tidak tumpang tindih dengan kluster Kubernetes. Untuk informasi lebih lanjut tentang desain jaringan untuk manajemen Fleet, lihat Desain jaringan untuk manajemen Fleet.

Langkah 2: Hubungkan ke Alibaba Cloud

  1. Hubungkan kluster Kubernetes ke kluster terdaftar. Untuk informasi lebih lanjut, lihat Buat kluster terdaftar ACK One.

    Catatan
  2. Hubungkan jaringan lokal ke VPC. Untuk informasi lebih lanjut, lihat Konektivitas jaringan.

  3. Gunakan saluran sewa untuk menghubungkan ke Alibaba Cloud. Untuk informasi lebih lanjut, lihat Ikhtisar jaringan hybrid.

  4. Untuk informasi lebih lanjut tentang cara mengasosiasikan kluster terdaftar dan kluster ACK dengan instance Fleet, lihat Kelola kluster terkait.

Langkah 3: Gunakan GitOps ApplicationSet untuk mendistribusikan aplikasi ke beberapa kluster

Dalam lingkungan hybrid cloud, Anda harus memastikan jaringan kontainer mana yang digunakan oleh kluster Kubernetes: underlay atau overlay. Perbedaan antara kedua jaringan kontainer tersebut adalah Anda harus menghubungkan jaringan lokal ke VPC jika ingin mengakses pod di jaringan overlay. Selain itu, Anda harus memastikan bahwa setiap node dapat merutekan lalu lintas ke blok CIDR pod di jaringan lokal. Gateway multi-cluster ALB mendukung kedua jaringan kontainer. Anda dapat menggunakan ClusterIP Services di jaringan underlay tetapi harus menggunakan NodePort Services di jaringan overlay.

Contoh berikut menunjukkan template YAML dari GitOps ApplicationSet bernama web-demo untuk jaringan underlay dan overlay. Untuk informasi lebih lanjut tentang ApplicationSets, lihat Buat aplikasi multi-kluster.

Jaringan kontainer Underlay

Gunakan template YAML berikut untuk menerapkan ApplicationSet web-demo. ClusterIP Services digunakan di semua kluster terkait.

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: appset-web-demo-undelay
  namespace: argocd
spec:
  template:
    metadata:
      name: '{{.metadata.annotations.cluster_id}}-web-demo'
      namespace: argocd
    spec:
      destination:
        name: '{{.name}}'
        namespace: gateway-demo
      project: default
      source:
        repoURL: https://github.com/AliyunContainerService/gitops-demo.git
        path: manifests/helm/web-demo
        targetRevision: main
        helm:
          valueFiles:
            - values.yaml
          parameters:
            - name: envCluster
              value: '{{.metadata.annotations.cluster_name}}'
      syncPolicy:
        automated: {}
        syncOptions:
          - CreateNamespace=true
  generators:
    - clusters:
        selector:
          matchExpressions:
            - values:
                - cluster
              key: argocd.argoproj.io/secret-type
              operator: In
            - values:
                - in-cluster
              key: name
              operator: NotIn
  goTemplateOptions:
    - missingkey=error
  syncPolicy:
    preserveResourcesOnDeletion: false
  goTemplate: true

Jaringan kontainer Overlay

  1. Akses UI ArgoCD, pilih Settings > Clusters, dan tambahkan label cluster: ack dan cluster: idc ke dua kluster.

  2. Gunakan template YAML berikut untuk menerapkan ApplicationSet web-demo di dua kluster. Gunakan NodePort Services di pusat data dan gunakan ClusterIP Services di kluster ACK.

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: appset-web-demo-overlay
  namespace: argocd
spec:
  template:
    metadata:
      name: '{{.metadata.annotations.cluster_id}}-web-demo-overlay'
      namespace: argocd
    spec:
      destination:
        name: '{{.name}}'
        namespace: gateway-demo
      project: default
      source:
        repoURL: https://github.com/AliyunContainerService/gitops-demo.git
        path: manifests/helm/web-demo
        targetRevision: main
        helm:
          valueFiles:
            - values.yaml
          parameters:
            - name: isNodePort
              value: "{{.values.isNodePort}}"
            - name: envCluster
              value: '{{.metadata.annotations.cluster_name}}'
      syncPolicy:
        automated: {}
        syncOptions:
          - CreateNamespace=true
  generators:
    - clusters:
        selector:
          matchLabels:
            cluster: 'idc'
        # Peta nilai-kunci untuk parameter arbitrer
        values:
          isNodePort: "true"
    - clusters:
        selector:
          matchLabels:
            cluster: 'ack'
        values:
          isNodePort: "false"
  goTemplateOptions:
    - missingkey=error
  syncPolicy:
    preserveResourcesOnDeletion: false
  goTemplate: true

Langkah 4: Gunakan gateway multi-cluster ALB untuk mengimplementasikan redundansi zona aktif

  • Konfigurasikan AlbConfig pada instance Fleet untuk membuat gateway multi-cluster ALB, dan tambahkan kluster ACK dan kluster terdaftar ke gateway.

  • Buat aturan routing dan Ingress pada instance Fleet untuk mengimplementasikan redundansi zona aktif.

Untuk informasi lebih lanjut, lihat Bangun sistem pemulihan bencana zona.