全部产品
Search
文档中心

Elastic Container Instance:Konfigurasikan layanan NTP

更新时间:Jun 29, 2025

Untuk skenario bisnis yang sensitif terhadap waktu, sinkronisasi waktu yang tidak akurat pada kontainer dapat memengaruhi operasi bisnis. Sebagai contoh, ketidakkonsistenan waktu kontainer dalam sistem terdistribusi dapat menyebabkan inkonsistensi data. Jika timestamp log tidak akurat saat men-debug program berdasarkan log, log mungkin diurutkan secara tidak benar sehingga sulit mengidentifikasi penyebab kesalahan. Saat menerapkan aplikasi berbasis kontainer dalam skenario bisnis yang sensitif terhadap waktu, Anda dapat mengonfigurasi layanan Network Time Protocol (NTP) untuk pod berbasis Elastic Container Instance (ECI) guna memastikan sinkronisasi waktu yang akurat. Ini menyelesaikan masalah yang disebabkan oleh ketidakakuratan waktu dan memastikan keakuratan data serta kelancaran operasi bisnis.

Deskripsi konfigurasi

Saat membuat pod berbasis Elastic Container Instance, Anda dapat menambahkan anotasi k8s.aliyun.com/eci-ntp-server ke pod untuk menentukan alamat server NTP. Dengan cara ini, waktu kontainer dalam pod dapat disinkronkan dengan waktu layanan NTP, memastikan keakuratan waktu kontainer.

Penting
  • Anotasi harus ditambahkan ke metadata dalam file konfigurasi pod. Sebagai contoh, saat membuat Deployment, tambahkan anotasi di bagian spec.template.metadata.

  • Untuk menggunakan fitur Elastic Container Instance, Anda hanya dapat menambahkan anotasi saat membuat pod berbasis Elastic Container Instance. Jika anotasi ditambahkan atau dimodifikasi saat memperbarui pod, anotasi tersebut tidak akan berlaku.

Contoh konfigurasi

  1. Buat aplikasi untuk mengonfigurasi layanan NTP.

    kubectl create -f set-ntp.yaml

    Berikut adalah isi dari file set-ntp.yaml contoh:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test-ntp
      labels:
        app: test
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: test-ntp
          labels:
            app: nginx
            alibabacloud.com/eci: "true" 
          annotations:
            k8s.aliyun.com/eci-ntp-server: 100.100.XX.XX  # Menentukan alamat IP server NTP.
        spec:
          containers:
          - name: nginx
            image: registry.cn-shanghai.aliyuncs.com/eci_open/centos:7
            ports:
            - containerPort: 80
            command: ["/bin/sh","-c","sleep 3600" ]
  2. Masuk ke kontainer dan periksa apakah layanan NTP bekerja sesuai harapan.

    1. Kueri informasi tentang pod.

      kubectl get pod

      Keluaran perintah berikut dikembalikan:

      NAME                        READY   STATUS    RESTARTS   AGE
      test-ntp-599d5ff9f5-9kb56   1/1     Running   0          3m59s
    2. Akses kontainer.

      kubectl exec -it test-ntp-599d5ff9f5-9kb56 -- bash
    3. Kueri sumber dari mana waktu kontainer disinkronkan.

      chronyc sources
      Catatan

      Jika chrony belum diinstal, jalankan perintah yum -y install chrony untuk menginstal chrony.

      Jika alamat IP server NTP dikembalikan, layanan NTP telah dikonfigurasi untuk pod. Kode berikut menunjukkan keluaran contoh.

      210 Number of sources = 1
      MS Name/IP address         Stratum Poll Reach LastRx Last                            sample
      ===============================================================================
      ^* 100.100.XX.XX                    2           6     377     35       +40us[ +135us] +/-   14ms