All Products
Search
Document Center

Container Service for Kubernetes:Konfigurasikan daftar putih layanan untuk pod secara dinamis

Last Updated:Jun 21, 2026

Di lingkungan cloud dengan persyaratan izin ketat, Anda mungkin perlu menambahkan atau menghapus alamat IP pod ke/dari daftar putih ApsaraDB RDS tertentu secara dinamis untuk mencapai kontrol akses detail halus. Anda dapat menggunakan komponen ack-kubernetes-webhook-injector untuk menambahkan anotasi ke pod, yang secara dinamis menambahkan atau menghapus alamat IP-nya dari daftar putih ApsaraDB RDS tertentu. Topik ini menjelaskan cara menginstal dan menggunakan ack-kubernetes-webhook-injector untuk mengonfigurasi daftar putih layanan Alibaba Cloud secara dinamis serta cara mengonfigurasi akses ke titik akhir internal-nya.

Prasyarat

Ikhtisar

Dalam komputasi awan, sumber daya tertentu memerlukan kebijakan keamanan sebelum dapat diakses dari sumber eksternal. Misalnya, sebuah instans mungkin memerlukan kebijakan kontrol akses Server Load Balancer (SLB), atau database ApsaraDB RDS mungkin memerlukan daftar putih alamat IP sumber klien. Meskipun Anda dapat menambahkan rentang alamat IP node kluster ke daftar putih ApsaraDB RDS tertentu saat membuat kluster ACK, pendekatan ini memiliki kelemahan berikut:

  • Aturan daftar putih terlalu kasar. Blok CIDR IP yang dimasukkan ke daftar putih mencakup alamat IP semua node dan pod dalam kluster.

  • Aturan daftar putih harus dibersihkan secara manual setelah kluster dihapus.

Untuk mengatasi masalah ini, ACK menyediakan ack-kubernetes-webhook-injector. Komponen ini secara dinamis menambahkan alamat IP pod tertentu ke daftar putih ApsaraDB RDS saat pod dibuat dan menghapus alamat IP tersebut saat pod dihapus, sehingga memungkinkan kontrol detail halus atas kebijakan keamanan.

Saat ini, ack-kubernetes-webhook-injector mendukung fitur-fitur berikut:

  • Secara otomatis menambahkan dan menghapus alamat IP pod ke/dari grup kebijakan kontrol akses SLB tertentu saat pod dibuat dan dihapus.

  • Secara otomatis menambahkan dan menghapus alamat IP pod ke/dari daftar putih ApsaraDB for Redis tertentu saat pod dibuat dan dihapus.

  • Secara otomatis menambahkan dan menghapus alamat IP pod ke/dari daftar putih ApsaraDB RDS tertentu saat pod dibuat dan dihapus.

Instal ack-kubernetes-webhook-injector

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

  2. Temukan dan klik ack-kubernetes-webhook-injector, lalu klik Deploy di pojok kanan atas.

  3. Di panel yang muncul, pilih kluster target dan Namespace, tetapkan Release Name, lalu klik Next.

  4. Pilih Chart Version. Di halaman Parameters, isi bidang ak dan sk di bagian openapi dengan Informasi AccessKey Anda, lalu klik OK di bagian bawah halaman.

    Untuk informasi selengkapnya tentang cara memperoleh Pasangan Kunci Akses, lihat Peroleh Pasangan Kunci Akses.

    openapi:
      # Hanya untuk pengujian. JANGAN gunakan otentikasi aksk di lingkungan produksi.
      use_aksk: true
      ak:
      sk:

Contoh: Tambahkan alamat IP pod ke daftar putih RDS secara dinamis

Dalam spesifikasi pod workload Anda, Anda dapat menggunakan anotasi untuk menentukan ID instans ApsaraDB RDS dan nama grup daftar putih yang harus diikuti oleh pod. Saat pod dibuat, ack-kubernetes-webhook-injector menambahkan alamat IP pod ke daftar putih. Saat pod dihapus, komponen tersebut menghapus alamat IP tersebut.

Anotasi pod untuk daftar putih ApsaraDB RDS harus mencakup hal-hal berikut:

  • ID instans ApsaraDB RDS: ack.aliyun.com/rds_id

  • Nama grup daftar putih ApsaraDB RDS: ack.aliyun.com/white_list_name

Bagian ini menunjukkan cara menggunakan ack-kubernetes-webhook-injector untuk menambahkan pod ke daftar putih ApsaraDB RDS secara dinamis.

  1. Buat Deployment menggunakan templat YAML berikut. Dalam definisi pod, tambahkan anotasi untuk ID instans ApsaraDB RDS dan nama grup daftar putih.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: inject-test
      name: inject-test
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: inject-test
      template:
        metadata:
          annotations:
            ack.aliyun.com/rds_id: <rm-wz9nanjcud75b****>
            ack.aliyun.com/white_list_name: <rds_group>
          labels:
            app: inject-test
        spec:
          containers:
          - command:
            - sleep
            - "3600"
            image: alpine:latest
            name: inject-test
  2. Jalankan perintah berikut untuk melihat alamat IP pod.

    kubectl --kubeconfig .kube/config_sts_test -n inject-test get pod -o wide

    Contoh output:

    NAME                           READY           STATUS        RESTARTS    AGE    IP                NODE
    inject-test-68cc8f9bbf-gj86n    1/1            Running         0        22s   172.25.0.28    cn-hangzhou.xxx

    Dalam output tersebut, alamat IP pod adalah 172.25.0.28.

  3. Masuk ke Konsol ApsaraDB RDS dan lihat daftar putih instans ApsaraDB RDS yang ditentukan dalam anotasi. Untuk informasi selengkapnya tentang cara melihat daftar putih ApsaraDB RDS, lihat Mode daftar putih alamat IP yang ditingkatkan.

  4. Tetapkan jumlah replika untuk Deployment yang dibuat di Langkah 1 menjadi 0 dan periksa kembali daftar putih ApsaraDB RDS.

    Alamat IP tersebut secara otomatis dihapus dari daftar putih.

Konfigurasikan akses ke titik akhir internal

Secara default, ack-kubernetes-webhook-injector menggunakan titik akhir publik layanan Alibaba Cloud. Jika kluster Anda tidak mengaktifkan akses jaringan publik, Anda dapat memodifikasi konfigurasi untuk menggunakan titik akhir internal.

Catatan

Beberapa layanan Alibaba Cloud tidak menyediakan titik akhir internal di semua wilayah. Sebelum melanjutkan, periksa OpenAPI Explorer untuk memastikan titik akhir internal tersedia untuk layanan target Anda di wilayah tersebut.

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

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

  3. Dari daftar drop-down Namespace di bagian atas halaman, pilih kube-system. Temukan Deployment kubernetes-webhook-injector. Di kolom Actions, pilih More > View in YAML.

  4. Di bawah spec.template.spec.containers.command, tambahkan baris - '--intranet-access' lalu klik Update.

Konfigurasi kebijakan keamanan lainnya

ack-kubernetes-webhook-injector juga mendukung konfigurasi kebijakan keamanan berikut:

  • Kontrol akses SLB: ack.aliyun.com/access_control_policy_id.

  • Konfigurasi daftar putih ApsaraDB for Redis:

    • ID Redis: ack.aliyun.com/redis_id.

    • Grup daftar putih Redis: ack.aliyun.com/redis_white_list_name.

Uninstal ack-kubernetes-webhook-injector

Jika Anda tidak lagi memerlukan ack-kubernetes-webhook-injector, Anda dapat menghapusnya menggunakan fitur manajemen rilis di ACK. Untuk informasi selengkapnya, lihat Kelola rilis Helm. Kemudian, jalankan perintah berikut untuk menghapus sisa sumber daya konfigurasi:

kubectl -n kube-system delete secret kubernetes-webhook-injector-certs
kubectl delete mutatingwebhookconfigurations.admissionregistration.k8s.io kubernetes-webhook-injector