全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan readiness gates untuk meluncurkan pod yang terkait dengan ALB Ingresses secara mulus selama pembaruan bergulir

更新时间:Jul 02, 2025

Selama pembaruan bergulir, pastikan bahwa pod yang diperbarui sudah siap sebelum diluncurkan untuk menerima lalu lintas. Anda dapat mengonfigurasi readiness gates untuk memastikan kesiapan pod sebelum peluncuran. Pengontrol Application Load Balancer (ALB) Ingress memungkinkan Anda mengaktifkan readiness gates untuk memantau status pod dalam klaster Container Service for Kubernetes (ACK). Setelah status pod menjadi Ready, pod tersebut diluncurkan dan ditambahkan ke grup server backend, kemudian lalu lintas diteruskan ke pod tersebut.

Prasyarat

Cara kerjanya

ACK menggunakan liveness probes, readiness probes, dan startup probes untuk memeriksa status kesehatan, kesiapan, dan kondisi startup pod guna meningkatkan ketersediaan aplikasi. Saat mengonfigurasi liveness probes, readiness probes, dan startup probes, Anda dapat menentukan interval probing, periode timeout, ambang batas sehat, dan ambang batas tidak sehat. Anda dapat mendefinisikan probe ini dengan perintah, soket TCP, atau permintaan HTTP untuk memverifikasi kesehatan kontainer. Untuk informasi lebih lanjut, lihat Konfigurasikan Liveness, Readiness dan Startup Probes.

Jenis Probe

Deskripsi

Liveness probe

Kubelet menggunakan liveness probes untuk memeriksa apakah kontainer hidup, membunuh kontainer yang tidak sehat, dan kemudian memulai ulang kontainer berdasarkan kebijakan restart. Jika sebuah kontainer tidak diprobing oleh liveness probes, kubelet menganggap bahwa kontainer tersebut mengembalikan Success untuk liveness probes dan oleh karena itu kontainer tersebut hidup.

Readiness probe

Readiness probes digunakan untuk memeriksa apakah sebuah kontainer siap menerima permintaan. Hanya pod yang berada dalam status Ready yang dapat menerima permintaan. Hubungan antara Layanan dan titik akhir bergantung pada status Ready dari pod:

  • Jika nilai bidang Ready adalah False, Kubernetes menghapus alamat IP pod dari daftar titik akhir yang terkait dengan Layanan.

  • Setelah nilai bidang Ready berubah menjadi True, Kubernetes menambahkan alamat IP pod ke daftar titik akhir yang terkait dengan Layanan.

Startup probe

Kubelet menggunakan startup probes untuk mengetahui kapan sebuah kontainer telah diluncurkan. Anda dapat menggunakan startup probes untuk memastikan bahwa liveness probes dan readiness probes hanya dikirim ke kontainer setelah kontainer tersebut diluncurkan. Startup probes dapat digunakan untuk melakukan pemeriksaan liveness pada kontainer yang lambat memulai sehingga kontainer tersebut tidak dibunuh oleh kubelet sebelum dimulai.

Jika readiness probes digunakan, nilai bidang Ready dari sebuah pod ditentukan oleh kubelet berdasarkan status kontainer dalam pod tersebut. Namun, untuk aplikasi kompleks, Anda mungkin perlu mengontrol Layanan kesiapan dalam kontainer secara lebih rinci. Untuk melakukannya, Anda perlu mengontrol nilai bidang Ready dari pod.

Readiness gates memungkinkan Anda menetapkan satu atau beberapa kondisi kesiapan kustom untuk memeriksa apakah sebuah pod siap. Kondisi kustom ini disetel pada pengontrol eksternal. Kubernetes menganggap bahwa sebuah pod siap hanya ketika semua kondisi yang ditentukan dalam readiness gates bernilai True.

Anda dapat mengonfigurasi readiness gates pada pengontrol ALB Ingress untuk memungkinkan klaster ACK terus memantau status pod. Pod tidak dianggap telah diluncurkan hingga memasuki status Ready. Pod yang telah diluncurkan akan ditambahkan ke grup server backend, dan lalu lintas akan diteruskan ke pod tersebut.

Catatan

Anda dapat mengonfigurasi kondisi kustom target-health.alb.k8s.alibabacloud untuk readiness gates dalam Deployment. Ini memungkinkan klaster ACK terus memantau status pod. Klaster ACK menganggap pod siap dan mulai meneruskan lalu lintas ke pod tersebut hanya setelah pengontrol ALB Ingress menambahkan pod ke grup server backend.

Prosedur

  1. Buat file bernama tea-service.yaml dan konfigurasikan kondisi kustom untuk readiness gates.

    Buat file bernama tea-service.yaml dan tambahkan konten berikut ke dalam file untuk menerapkan Deployment bernama tea dan Layanan bernama tea-svc. Konfigurasikan kondisi kustom untuk readiness gates dalam Deployment: target-health.alb.Kubernetes.alibabacloud. Ini memungkinkan klaster ACK terus memantau status pod. Pod tidak dianggap telah diluncurkan hingga memasuki status Ready. Pod yang telah diluncurkan ditambahkan ke grup server backend.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: tea
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: tea
      template:
        metadata:
          labels:
            app: tea
        spec:
          containers:
          - name: tea
            image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest
            ports:
            - containerPort: 80
    # Konfigurasikan readiness gates
          readinessGates:
            - conditionType: target-health.alb.k8s.alibabacloud
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: tea-svc
    spec:
      ports:
      - port: 80
        targetPort: 80
        protocol: TCP
      selector:
        app: tea
      type: NodePort
  2. Jalankan perintah berikut untuk menerapkan Deployment dan Layanan:

    kubectl apply -f tea-service.yaml
  3. Jalankan perintah berikut untuk memeriksa apakah konfigurasi readiness gates berlaku:

    kubectl get pods -o yaml |grep 'target-health'

    Output yang diharapkan:

    -conditionType:target-health.alb.k8s.alibabacloud 
         message:correspondingconditionofpodreadinessgate"target-health.alb.k8s.alibabacLoud"

Referensi