All Products
Search
Document Center

Elastic Container Instance:Konfigurasikan Pod ECI untuk Menggunakan Alamat IP Tetap

Last Updated:Jun 21, 2026

Beberapa aplikasi memerlukan pod yang mempertahankan alamat IP konsisten. Topik ini menjelaskan cara mengonfigurasi pod Elastic Container Instance (ECI) agar menggunakan alamat IP tetap.

Cara Kerja

Secara default, saat Anda membuat pod ECI, sistem menetapkan alamat IP acak dari Blok CIDR vSwitch yang ditentukan dalam eci-profile. Jika pod dilepas akibat kegagalan, alamat IP-nya akan dilepaskan dan alamat baru diberikan kepada pod penggantinya. Dalam skenario tertentu—misalnya ketika layanan diekspos langsung melalui alamat IP-nya—pod mungkin memerlukan alamat IP tetap untuk memastikan kelangsungan bisnis.

Untuk mengatasi hal tersebut, ECI menyediakan fitur alamat IP tetap. Saat Anda membuat pod ECI dengan fitur ini diaktifkan, sistem mengalokasikan dua alamat IP dari vSwitch yang dikonfigurasi: alamat IP dinamis (tidak terlihat di dalam kluster) dan alamat IP tetap. Setelah pod dilepas, sistem menyimpan alamat IP tetap tersebut selama periode retensi—secara default 48 jam. Jika pod baru dibuat dalam periode retensi ini dengan ID kluster, namespace, dan nama pod yang sama seperti pod sebelumnya serta juga mengaktifkan fitur alamat IP tetap, sistem akan menetapkan kembali alamat IP yang disimpan ke pod baru. Hal ini memastikan konsistensi alamat IP pod.

Catatan

Dalam skenario ini, Anda dapat menggunakan StatefulSet untuk men-deploy aplikasi Anda. Saat sebuah pod dalam StatefulSet dilepas, sistem secara otomatis membuat pod baru dengan namespace dan nama pod yang sama.

Konfigurasi

Tambahkan Anotasi ke metadata pod untuk mengaktifkan fitur alamat IP tetap dan mengonfigurasi periode retensi alamat IP tersebut. Tabel berikut menjelaskan anotasi-anotasi tersebut.

Anotasi

Contoh

Deskripsi

k8s.aliyun.com/eci-fixed-ip

"true"

Atur ke "true" untuk mengaktifkan fitur alamat IP tetap.

k8s.aliyun.com/eci-fixed-ip-retain-hour

"24"

Jumlah jam untuk menyimpan alamat IP tetap setelah pod dilepas.

Jika tidak ditentukan, nilai default-nya adalah 48 jam.

Prosedur

  1. Buat Service dan StatefulSet.

    kubectl apply -f fixedIp.yaml

    File fixedIp.yaml berikut mendefinisikan Service dan StatefulSet. StatefulSet mencakup pod ECI dengan anotasi yang mengaktifkan fitur alamat IP tetap.

    apiVersion: v1
    kind: Service
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      ports:
      - port: 80
        name: web
      clusterIP: None
      selector:
        app: nginx
    ---
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: web
    spec:
      selector:
        matchLabels:
          app: nginx
      serviceName: "nginx"
      minReadySeconds: 10
      template:
        metadata:
          annotations:
            k8s.aliyun.com/eci-fixed-ip: "true"  # Aktifkan fitur alamat IP tetap.
          labels:
            app: nginx
            alibabacloud.com/eci: "true"
        spec:
          containers:
          - name: nginx
            image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/nginx:1.14.2
            ports:
            - containerPort: 80
              name: web
  2. Jalankan perintah berikut untuk memantau perubahan status pod.

    kubectl get pod -o wide -w

    Output menunjukkan bahwa StatefulSet membuat pod bernama web-0 dengan alamat IP 172.16.0.129.

    d:~$ kubectl get pod -o wide -w
    NAME    READY   STATUS              RESTARTS   AGE   IP              NODE                         NOMINATED NODE   READINESS GATES
    web-0   0/1     Pending             0                9s    <none>          <none>                       <none>           <none>
    web-0   0/1     Pending             0               20s    <none>          <none>                       <none>           <none>
    web-0   0/1     Pending             0               20s    <none>          virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   0/1     Pending             0               20s    <none>          virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   0/1     ContainerCreating   0               69s    172.16.0.129   virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   1/1     Running             0               76s    172.16.0.129   virtual-kubelet-cn-beijing-h   <none>           <none>
  3. Buka terminal baru untuk terhubung ke kluster dan jalankan perintah berikut untuk menghapus pod dalam StatefulSet.

    kubectl delete pod web-0
  4. Kembali ke terminal pertama dan terus amati perubahan status pod.

    Output menunjukkan bahwa setelah pod asli dihapus, StatefulSet secara otomatis membuat pod baru yang menggunakan kembali alamat IP aslinya.

    Catatan

    Pembuatan pod baru mungkin tertunda karena alamat IP tetap masih dalam keadaan terpakai hingga pod sebelumnya benar-benar dihapus.

    1:~$ kubectl get pod -o wide -w
    NAME    READY   STATUS              RESTARTS   AGE     IP              NODE                          NOMINATED NODE   READINESS GATES
    web-0   0/1     Pending             0          9s      <none>          <none>                        <none>           <none>
    web-0   0/1     Pending             0          20s     <none>          <none>                        <none>           <none>
    web-0   0/1     Pending             0          20s     <none>          virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   0/1     Pending             0          20s     <none>          virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   0/1     ContainerCreating   0          69s     172.16.0.129    virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   1/1     Running             0          76s     172.16.0.129    virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   1/1     Terminating         0          2m37s   172.16.0.129    virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   0/1     Terminating         0          2m39s   172.16.0.129    virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   0/1     Terminating         0          2m55s   172.16.0.129    virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   0/1     Terminating         0          2m55s   172.16.0.129    virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   0/1     Pending             0          0s      <none>                                        <none>           <none>
    web-0   0/1     Pending             0          0s      <none>                                        <none>           <none>
    web-0   0/1     Pending             0          1s      <none>                                        <none>           <none>
    web-0   0/1     Pending             0          1s      <none>                                        <none>           <none>
    web-0   0/1     Pending             0          17s     <none>                                        <none>           <none>
    web-0   0/1     Pending             0          17s     <none>          virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   0/1     Pending             0          17s     <none>          virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   0/1     ContainerCreating   0          69s     172.16.0.129    virtual-kubelet-cn-beijing-h   <none>           <none>
    web-0   1/1     Running             0          76s     172.16.0.129    virtual-kubelet-cn-beijing-h   <none>           <none>