全部产品
Search
文档中心

Container Service for Kubernetes:Deploy dan Konfigurasi Terway

更新时间:Jul 02, 2025

Plugin jaringan kontainer yang digunakan dalam kluster hibrid mencakup dua komponen: plugin jaringan di pusat data dan plugin jaringan pada node komputasi cloud. Topik ini menjelaskan cara mendeploy dan mengonfigurasi Terway dalam kluster hibrid.

Prasyarat

Skenario 1: Pusat data menggunakan jaringan overlay untuk jaringan kontainer

Dalam skenario ini, pusat data menggunakan jaringan overlay untuk jaringan kontainer. Node komputasi cloud juga dapat menggunakan mode jaringan ini. Pastikan node komputasi cloud dapat menarik image kontainer DaemonSet dari plugin jaringan kontainer.

Berikut adalah mode jaringan overlay yang umum digunakan:

  • Flannel VXLAN

  • Calico IPIP

  • Cilium VXLAN

Skenario 2: Pusat data menggunakan jaringan BGP untuk jaringan kontainer

Dalam skenario ini, pusat data menggunakan Border Gateway Protocol (BGP) untuk jaringan kontainer. Plugin jaringan Terway harus digunakan pada node komputasi cloud. Untuk informasi lebih lanjut tentang cara menghubungkan jaringan lokal dan cloud, lihat Konfigurasi dan Kelola BGP.

Pastikan kondisi berikut terpenuhi:

  • DaemonSet dari plugin jaringan kontainer lokal, seperti route reflector BGP di Calico, tidak dijadwalkan ke node komputasi cloud.

  • DaemonSet dari plugin jaringan Terway tidak dijadwalkan ke node komputasi lokal.

Setiap node komputasi yang ditambahkan dari kumpulan node dalam kluster terdaftar memiliki label alibabacloud.com/external=true. Label ini membedakan node komputasi cloud dari node komputasi lokal.

Sebagai contoh, konfigurasikan node affinity untuk memastikan bahwa DaemonSet dari plugin jaringan Calico lokal tidak dijadwalkan ke node dengan label alibabacloud.com/external=true. Metode serupa dapat digunakan untuk memastikan beban kerja lokal lainnya tidak dijadwalkan ke node komputasi cloud. Jalankan perintah berikut untuk memperbarui plugin jaringan Calico:

cat <<EOF > calico-ds.patch
spec:
  template:
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: alibabacloud.com/external
                operator: NotIn
                values:
                - "true"
EOF
kubectl -n kube-system patch ds calico-node -p "$(cat calico-ds.patch)"

Secara default, DaemonSet dari Terway dijadwalkan ke node dengan label alibabacloud.com/external=true.

Skenario 3: Pusat data menggunakan jaringan host untuk jaringan kontainer

Dalam skenario ini, pusat data menggunakan jaringan host untuk jaringan kontainer. Pastikan DaemonSet dari plugin jaringan Terway tidak dijadwalkan ke node komputasi lokal. Secara default, DaemonSet dari plugin jaringan Terway hanya dijadwalkan ke node dengan label alibabacloud.com/external=true.

Instal dan konfigurasikan plugin jaringan Terway

Dalam Skenario 2 dan Skenario 3, instal dan konfigurasikan plugin jaringan Terway pada node komputasi cloud dari kluster hibrid.

Langkah 1: Berikan izin kepada plugin jaringan Terway

Gunakan konsol RAM

  1. Buat pengguna RAM dan lampirkan kebijakan berikut ke pengguna tersebut. Untuk informasi lebih lanjut, lihat Gunakan RAM untuk Memberi Otorisasi Akses ke Kluster dan Sumber Daya Cloud.

    Lihat Contoh Kode

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "ecs:CreateNetworkInterface",
                    "ecs:DescribeNetworkInterfaces",
                    "ecs:AttachNetworkInterface",
                    "ecs:DetachNetworkInterface",
                    "ecs:DeleteNetworkInterface",
                    "ecs:DescribeInstanceAttribute",
                    "ecs:AssignPrivateIpAddresses",
                    "ecs:UnassignPrivateIpAddresses",
                    "ecs:DescribeInstances",
                    "ecs:ModifyNetworkInterfaceAttribute"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "vpc:DescribeVSwitches"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            }
        ]
    }
  2. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  3. Di halaman Clusters, klik nama kluster yang ingin Anda ubah. Di panel kiri, pilih Configurations > Secrets.

  4. Di halaman Secrets, klik Create from YAML. Isi contoh kode berikut untuk membuat Secret bernama alibaba-addon-secret.

    Catatan

    Komponen mengakses layanan cloud menggunakan AccessKeyID dan AccessKeySecret yang tersimpan. Lewati langkah ini jika alibaba-addon-secret sudah ada.

    apiVersion: v1
    kind: Secret
    metadata:
      name: alibaba-addon-secret
      namespace: kube-system
    type: Opaque
    stringData:
      access-key-id: <AccessKeyID dari pengguna RAM>
      access-key-secret: <AccessKeySecret dari pengguna RAM>

Gunakan onectl

  1. Instal onectl di mesin lokal Anda. Untuk informasi lebih lanjut, lihat Gunakan onectl untuk Mengelola Kluster Terdaftar.

  2. Jalankan perintah berikut untuk memberikan izin Manajemen Akses Sumber Daya (RAM) kepada Terway:

    onectl ram-user grant --addon terway-eniip

    Output yang Diharapkan:

    Ram policy ack-one-registered-cluster-policy-terway-eniip granted to ram user ack-one-user-ce313528c3 successfully.

Langkah 2: Instal plugin Terway

Gunakan konsol ACK

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, klik Add-ons.

  3. Di halaman Add-ons, klik tab Networking. Pilih komponen terway-eniip lalu klik Install.

Gunakan onectl

Jalankan perintah berikut untuk menginstal plugin Terway:

onectl addon install terway-eniip

Output yang Diharapkan:

Addon terway-eniip, versi **** terinstal.

Langkah 3: Konfigurasikan plugin Terway

Jalankan perintah berikut untuk memodifikasi ConfigMap eni-config, dan konfigurasikan parameter eni_conf.access_key dan eni_conf.access_secret:

kubectl -n kube-system edit cm eni-config

Contoh kode berikut menunjukkan ConfigMap eni-config:

kind: ConfigMap
apiVersion: v1
metadata:  
 name: eni-config  
 namespace: kube-system
data:  
 eni_conf: |    
  {      
   "version": "1",      
   "max_pool_size": 5,      
   "min_pool_size": 0,      
   "vswitches": {"AZoneID":["VswitchId"]},      
   "eni_tags": {"ack.aliyun.com":"{{.ClusterId}}"},      
   "service_cidr": "{{.ServiceCIDR}}",      
   "security_group": "{{.SecurityGroupId}}",      
   "access_key": "",      
   "access_secret": "",      
   "vswitch_selection_policy": "ordered"    
  }  
 10-terway.conf: |    
  {      
   "cniVersion": "0.3.0",      
   "name": "terway",      
   "type": "terway"    
  }

Anda dapat menggunakan file kubeconfig untuk terhubung ke kluster terdaftar dan menanyakan DaemonSet yang dibuat untuk plugin jaringan Terway. Sebelum node komputasi cloud ditambahkan ke kluster hibrid, DaemonSet tidak dijadwalkan ke node komputasi lokal.

Jalankan perintah berikut untuk menanyakan jaringan Terway:

kubectl -nkube-system get ds |grep terway

Output yang Diharapkan:

terway-eniip   0         0         0       0            0           alibabacloud.com/external=true      16s