All Products
Search
Document Center

Elastic Container Instance:Hubungkan Pod ECI ke Instans RDS

Last Updated:Jun 21, 2026

Untuk menghubungkan aplikasi berbasis kontainer Anda ke database, seperti instans ApsaraDB RDS for MySQL, Anda harus mengonfigurasi daftar putih instans ApsaraDB RDS dan menyediakan informasi koneksi database saat membuat pod ECI. Topik ini menjelaskan cara menghubungkan ke ApsaraDB RDS saat membuat pod ECI di kluster ACK Serverless.

Latar Belakang

ApsaraDB RDS adalah layanan database online yang stabil, andal, dan dapat diskalakan dari Alibaba Cloud. Dibangun di atas sistem file terdistribusi Alibaba Cloud dan solid-state drive (SSD) berkinerja tinggi, ApsaraDB RDS mendukung berbagai mesin database, seperti MySQL, SQL Server, dan PostgreSQL. Topik ini menggunakan contoh instans ApsaraDB RDS for MySQL. Anda dapat memilih mesin database sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Mesin database.

Prasyarat

  • Instans ApsaraDB RDS for MySQL telah dibuat dan akun database telah dikonfigurasi untuk instans tersebut. Untuk informasi selengkapnya, lihat Buat instans ApsaraDB RDS for MySQL dan Buat database dan akun.

  • Kluster ACK Serverless telah dibuat. Untuk informasi selengkapnya, lihat Buat kluster ACK Serverless.

    Catatan

    Topik ini menggunakan contoh kluster ACK Serverless. Jika Anda menggunakan jenis kluster Kubernetes lain, pastikan node virtual telah dideploy di kluster tersebut agar dapat terhubung ke ECI.

  • Instans ApsaraDB RDS dan kluster Kubernetes dapat saling berkomunikasi.

    Untuk performa dan keamanan optimal, deploy instans ApsaraDB RDS dan kluster Kubernetes dalam Virtual Private Cloud (VPC) yang sama. Hal ini memungkinkan komunikasi melalui jaringan internal. Jika keduanya berada di VPC berbeda, Anda harus mengonfigurasi akses melalui jaringan publik.

Konfigurasikan Daftar Putih RDS dan Dapatkan Titik Akhir

Akses RDS melalui Jaringan Internal

Jika kluster Kubernetes dan instans ApsaraDB RDS Anda berada dalam VPC yang sama, aplikasi Anda dapat mengakses instans tersebut melalui jaringan internal. Konfigurasikan daftar putih ApsaraDB RDS dan peroleh titik akhir internal.

  1. Konfigurasikan daftar putih ApsaraDB RDS.

    Saat mengakses melalui jaringan internal, Anda dapat menambahkan alamat IP atau security group ke daftar putih:

    • Alamat IP

      Tambahkan Blok CIDR VPC atau vSwitch ke daftar putih ApsaraDB RDS. Hal ini memungkinkan semua instans ECI dalam Blok CIDR tersebut mengakses instans ApsaraDB RDS. Untuk informasi selengkapnya, lihat Konfigurasikan daftar putih alamat IP.

    • Security group

      Tambahkan security group instans ECI Anda ke daftar putih ApsaraDB RDS. Hal ini memungkinkan semua instans ECI dalam security group tersebut mengakses instans ApsaraDB RDS. Untuk informasi selengkapnya, lihat Konfigurasikan security group.

  2. Pada halaman Database Connection instans ApsaraDB RDS, temukan dan catat titik akhir internal.

Akses RDS melalui Jaringan Publik

Jika kluster Kubernetes dan instans ApsaraDB RDS Anda berada di VPC berbeda, aplikasi Anda harus terhubung melalui jaringan publik. Konfigurasikan daftar putih ApsaraDB RDS dan ajukan permohonan titik akhir publik.

Penting
  • Menggunakan titik akhir publik dapat mengekspos instans Anda terhadap risiko keamanan. Gunakan opsi ini dengan hati-hati.

  • Untuk transfer data lebih cepat dan keamanan lebih tinggi, kami menyarankan memigrasikan aplikasi Anda ke instans ECI di wilayah dan jaringan yang sama dengan instans ApsaraDB RDS Anda, lalu gunakan titik akhir internal.

  1. Konfigurasikan daftar putih ApsaraDB RDS.

    Saat mengakses melalui jaringan publik, Anda harus mengonfigurasi daftar putih alamat IP. Untuk informasi selengkapnya, lihat Konfigurasikan daftar putih alamat IP.

    • Jika instans ECI Anda menggunakan gerbang NAT untuk mengakses jaringan publik, tambahkan alamat IP elastis (EIP) gerbang NAT ke daftar putih alamat IP.

    • Jika instans ECI Anda menggunakan EIP untuk mengakses jaringan publik, tambahkan EIP instans ECI tersebut ke daftar putih alamat IP.

  2. Ajukan dan catat titik akhir publik database. Untuk informasi selengkapnya, lihat Ajukan atau rilis titik akhir publik.

Konfigurasikan Aplikasi untuk Terhubung ke RDS

Prosedur ini menunjukkan cara menghubungkan kluster ACK Serverless ke instans ApsaraDB RDS melalui jaringan internal.

  1. Masuk ke Konsol ACK.

  2. Pada halaman Cluster, temukan kluster target Anda dan klik namanya untuk membuka halaman detail kluster.

  3. Buat ConfigMap untuk menyimpan informasi koneksi ApsaraDB RDS.

    Catatan

    ConfigMap memisahkan konfigurasi lingkungan dari gambar kontainer. Hal ini menyederhanakan pembaruan konfigurasi aplikasi.

    1. Di panel navigasi sebelah kiri, pilih Konfigurasi > ConfigMaps.

    2. Klik Create.

    3. Masukkan detail ConfigMap dan klik OK.

      Tetapkan nama menjadi rds-config dan tambahkan pasangan kunci-nilai berikut:

      Parameter

      Contoh

      Deskripsi

      host

      rm-2zem97a62s9******.mysql.rds.aliyuncs.com

      Titik akhir database. Tersedia di halaman Database Connection instans ApsaraDB RDS Anda.

      port

      3306

      Port database. Tersedia di halaman Database Connection instans ApsaraDB RDS Anda.

      database

      test-db

      Nama database. Tersedia di halaman Databases instans ApsaraDB RDS Anda.

  4. Buat Secret untuk menyimpan username dan password database.

    Catatan

    Menggunakan Secret merupakan praktik terbaik untuk mengelola informasi sensitif secara aman, seperti kredensial database, bagi aplikasi Anda.

    1. Di panel navigasi sebelah kiri, pilih Konfigurasi > Secrets.

    2. Klik Create.

    3. Masukkan detail Secret dan klik OK.

      Tetapkan nama menjadi rds-secret dan tambahkan pasangan kunci-nilai berikut:

      Parameter

      Contoh

      Deskripsi

      username

      test

      Username database. Tersedia di halaman Accounts instans ApsaraDB RDS Anda.

      password

      pwd******

      Password database. Jika Anda lupa password, atur ulang di halaman Accounts instans ApsaraDB RDS Anda.

  5. Buat pod ECI untuk menguji koneksi.

    1. Di panel navigasi sebelah kiri, pilih Workloads > Pods.

    2. Klik Create from YAML.

    3. Masukkan konfigurasi YAML dan klik Create.

      ApsaraDB RDS sepenuhnya kompatibel dengan layanan database native. Anda dapat menggunakan client database standar apa pun untuk terhubung ke instans ApsaraDB RDS Anda. File YAML berikut merupakan contoh:

      Catatan

      Untuk menggunakan contoh ini, Anda harus terlebih dahulu membuat tabel bernama username dengan kolom bernama user di instans ApsaraDB RDS Anda.

      Konfigurasi YAML berikut menggunakan variabel lingkungan untuk menyediakan detail koneksi database: titik akhir, port, nama, username, dan password. Gambar kontainer mencakup skrip Python yang terhubung ke database dan memasukkan data.

      apiVersion: v1
      kind: Pod
      metadata:
        labels:
          name: rds-test
        name: rds-test
      spec:
        containers:
        - name: test-rds
          image: registry.cn-hangzhou.aliyuncs.com/eci_open/sqlclient:1.0.1  # Gambar kontainer yang berisi skrip Python untuk terhubung ke database.
          imagePullPolicy: IfNotPresent
          command: ["/bin/bash","-c","python3 /testapp/mysqlclient.py"]
          env:
          - name: MYSQL_HOST 
            valueFrom:
              configMapKeyRef:
                name: rds-config  # Nama ConfigMap.
                key: host  # Kunci dalam ConfigMap.
          - name: MYSQL_PORT
            valueFrom:
              configMapKeyRef:
                name: rds-config # Nama ConfigMap.
                key: port # Kunci dalam ConfigMap.
          - name: MYSQL_DB
            valueFrom:
              configMapKeyRef:
                name: rds-config  # Nama ConfigMap.
                key: database # Kunci dalam ConfigMap.
          - name: MYSQL_USERNAME
            valueFrom:
              secretKeyRef:
                name: rds-secret # Nama Secret.
                key: username  # Kunci dalam Secret.
          - name: MYSQL_PWD
            valueFrom:
              secretKeyRef:
                name: rds-secret # Nama Secret.
                key: password # Kunci dalam Secret.
        restartPolicy: Never

      Gambar pada contoh di atas berisi skrip Python (mysqlclient.py) yang memasukkan satu baris data ke kolom user pada tabel username. Skrip tersebut sebagai berikut:

      import pymysql
      import os
      import time
      config = {
          'host': str(os.getenv('MYSQL_HOST')),
          'port': int(os.getenv('MYSQL_PORT')),
          'user': str(os.getenv('MYSQL_USERNAME')),
          'password': str(os.getenv('MYSQL_PWD')),
          'database': str(os.getenv('MYSQL_DB')),
      }
      def mysqlClient():
          print("Menghubungkan ke database...")
          db = pymysql.connect(**config)
          try:
              cursor = db.cursor()
              cursor.execute("INSERT INTO username(user) VALUES('Mrs')")
              cursor.close()
              db.commit()
              cursor = db.cursor()
              cursor.execute("SELECT user FROM username")
              result = cursor.fetchall()
              cursor.close()
              if result != None:
                  print(result)
                  time.sleep(99999)
          except Exception as e:
              print('Kesalahan Sistem: ', e)
          finally:
              db.close()
      if __name__ == '__main__':
          mysqlClient()
  6. Masuk ke database dan verifikasi hasilnya.

    1. Masuk ke Konsol ApsaraDB RDS.

    2. Di panel navigasi sebelah kiri, klik Instances. Di bilah navigasi atas, pilih wilayah tempat instans Anda berada, lalu klik ID instans.

    3. Di panel navigasi sebelah kiri, klik Databases.

    4. Temukan database target dan klik SQL Query di kolom Tindakan.

    5. Pada kotak dialog yang muncul, masukkan username dan password database, lalu klik Log In.

    6. Jalankan perintah SQL untuk memeriksa hasilnya.

      Jalankan perintah SELECT * FROM `username`. Output menampilkan baris baru di kolom user pada tabel username.

FAQ

Alasan umum kegagalan koneksi database meliputi:

  • Jenis jaringan berbeda

  • VPC berbeda

  • Kegagalan atau kesalahan resolusi nama domain

  • Wilayah berbeda

  • Konfigurasi daftar putih alamat IP salah

  • Daftar putih tidak dikonfigurasi untuk instansi hanya baca

  • Penggunaan titik akhir internal atau publik yang salah

  • Batas koneksi tercapai

  • Username atau password salah

  • Tidak dapat menyelesaikan titik akhir

Lakukan pemecahan masalah berdasarkan lingkungan jaringan Anda (jaringan internal atau jaringan publik). Untuk informasi selengkapnya, lihat Pemecahan masalah kegagalan koneksi ApsaraDB RDS.