All Products
Search
Document Center

Container Compute Service:Troubleshoot masalah Service

Last Updated:Jun 04, 2026

Pelajari cara mendiagnosis dan mengatasi masalah Service LoadBalancer di kluster ACS.

Informasi latar belakang

Saat Anda membuat Service Type=LoadBalancer, ACS Cloud Controller Manager (CCM) secara otomatis membuat dan mengonfigurasi resource SLB, termasuk instans, Pendengar (listener), dan kelompok server backend. Kebijakan pembaruan otomatis SLB dijelaskan secara rinci dalam Pertimbangan saat mengonfigurasi Service LoadBalancer.

Prosedur

Pastikan versi CCM adalah 1.9.3.276-g372aa98-aliyun atau lebih baru. Perbarui CCM. Catatan rilis CCM: Cloud Controller Manager.

Service troubleshooting process

  1. Jalankan perintah berikut untuk menemukan Service yang terkait dengan instans SLB:

    kubectl get svc -A |grep -i LoadBalancer|grep ${XXX.XXX.XXX.XXX}  #XXX.XXX.XXX.XXX adalah alamat IP instans SLB.
  2. Jalankan perintah berikut untuk memeriksa event error Service:

    kubectl -n {your-namespace} describe svc {your-svc-name}
    Penting

    Jika tidak ada event error yang muncul, verifikasi bahwa versi CCM adalah 1.9.3.276-g372aa98-aliyun atau lebih baru. Perbarui CCM.

  3. Jika masalah tetap berlanjut, hubungi grup dukungan ACS di DingTalk.

Error Service dan solusinya

Tabel berikut mencantumkan error Service umum beserta solusinya.

Pesan error

Deskripsi dan solusi

The loadbalancer does not support backend servers of eni type

Instans SLB shared-resource tidak mendukung server backend tipe ENI.

Solusi: Untuk menggunakan server backend ENI, buat instans SLB berkinerja tinggi dengan menambahkan anotasi annotation: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.s1.small" ke Service tersebut.

Penting

Pastikan anotasi sesuai dengan versi CCM Anda. Daftar anotasi yang didukung per versi tercantum dalam Tambahkan anotasi ke file YAML Service untuk mengonfigurasi instans CLB.

There are no available nodes for LoadBalancer

Tidak ada server backend yang terkait dengan instans SLB. Periksa apakah pod terkait dengan Service dan berjalan normal.

Solusi:

  • Jika tidak ada pod yang terkait dengan Service, kaitkan pod aplikasi Anda.

  • Jika pod yang terkait tidak berjalan normal, lakukan troubleshooting. Pod troubleshooting.

  • Jika pod berjalan normal tetapi tidak ada server backend yang terkait, periksa apakah pod berada di node master. Jika iya, migrasikan ke node pekerja. Jika tidak, hubungi grup dukungan ACS di DingTalk.

  • alicloud: not able to find loadbalancer named [%s] in openapi, but it's defined in service.loaderbalancer.ingress. this may happen when you removed loadbalancerid annotation

  • alicloud: can not find loadbalancer, but it's defined in service

Sistem tidak dapat menemukan instans SLB yang terkait dengan Service.

Solusi: Login ke Konsol SLB dan cari instans SLB di wilayah Service berdasarkan EXTERNAL-IP.

  1. Jika instans SLB tidak ada dan Service sudah tidak digunakan, hapus Service tersebut.

  2. Jika instans SLB ada, lakukan langkah-langkah berikut:

    1. Jika instans SLB dibuat di Konsol SLB, tambahkan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id ke Service. Daftar anotasi yang didukung tercantum dalam Tambahkan anotasi ke file YAML Service untuk mengonfigurasi instans CLB.

    2. Jika instans SLB dibuat secara otomatis oleh CCM, periksa apakah instans memiliki label kubernetes.do.not.delete. Jika tidak, tambahkan label ini. Bagaimana cara mengganti nama instans SLB saat menggunakan versi CCM yang lebih lama?.

ORDER.ARREARAGE Message: The account is arrearage.

Akun Anda memiliki pembayaran tertunda.

PAY.INSUFFICIENT_BALANCE Message: Your account does not have enough balance.

Saldo akun tidak mencukupi.

Status Code: 400 Code: Throttlingxxx

Pembatasan kecepatan API dipicu untuk SLB.

Solusi:

  1. Buka Halaman Manajemen Kuota di Konsol SLB dan periksa apakah kuota resource SLB mencukupi.

  2. Jalankan perintah berikut untuk memeriksa error Service. Jika terjadi error, gunakan tabel di atas untuk melakukan troubleshooting.

    kubectl -n {your-namespace} describe svc {your-svc-name}

Status Code: 400 Code: RspoolVipExist Message: there are vips associating with this vServer group.

Pendengar (listener) yang terkait dengan kelompok vServer tidak dapat dihapus.

Solusi:

  1. Periksa apakah anotasi Service berisi ID instans SLB. Contoh: service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: {your-slb-id}.

    Jika anotasi Service berisi ID instans SLB, maka instans SLB tersebut digunakan ulang.

  2. Login ke Konsol SLB dan hapus pendengar menggunakan Port Service. Untuk menghapus pendengar SLB, ikuti Kelola aturan pengalihan untuk pendengar.

Status Code: 400 Code: NetworkConflict

Instans SLB internal-facing yang digunakan ulang dan kluster tidak berada dalam VPC yang sama.

Solusi: Pastikan instans SLB dan kluster dideploy dalam VPC yang sama.

Status Code: 400 Code: VSwitchAvailableIpNotExist Message: The specified VSwitch has no available ip.

vSwitch tidak memiliki alamat IP yang tersedia.

Solusi: Gunakan service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}" untuk menentukan vSwitch lain dalam VPC yang sama.

The specified Port must be between 1 and 65535.

Field targetPort tidak mendukung nilai bertipe STRING dalam mode ENI.

Solusi: Atur field targetPort dalam file YAML Service ke nilai INTEGER, atau tingkatkan CCM. Perbarui CCM.

Status Code: 400 Code: ShareSlbHaltSales Message: The share instance has been discontinued.

Secara default, versi CCM yang lebih lama membuat instans SLB shared-resource, yang sudah tidak tersedia untuk pembelian.

Solusi: Perbarui CCM.

can not change ResourceGroupId once created

Anda tidak dapat mengubah kelompok sumber daya instans SLB setelah dibuat.

Solusi: Hapus anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id:"rg-xxxx" dari Service.

can not find eniid for ip x.x.x.x in vpc vpc-xxxx

Alamat IP ENI yang ditentukan tidak ditemukan dalam VPC.

Solusi: Periksa apakah anotasi service.beta.kubernetes.io/backend-type: eni ditambahkan ke Service. Jika anotasi tersebut ditambahkan ke Service, periksa apakah Flannel digunakan sebagai plugin jaringan kluster. Jika Flannel digunakan, hapus anotasi tersebut dari Service. Flannel tidak mendukung mode ENI.

  • The operation is not allowed because the instanceChargeType of loadbalancer is PayByCLCU.

  • User does not have permission modify InstanceChargeType to spec.

Anda tidak dapat mengubah metode penagihan instans SLB yang digunakan oleh Service dari pay-as-you-go ke pay-by-specification.

Solusi:

  • Hapus anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec dari Service.

  • Jika service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type ditambahkan ke Service, atur nilainya menjadi PayByCLCU.

SyncLoadBalancerFailed the loadbalancer xxx can not be reused, can not reuse loadbalancer created by kubernetes.

Instans SLB yang dibuat oleh CCM digunakan ulang.

Solusi:

  1. Periksa file YAML Service terkait dan catat ID instans SLB dalam anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id.

  2. Lakukan troubleshooting berdasarkan status Service.

    • Jika Service berada dalam status Pending, ubah nilai anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id menjadi ID instans SLB yang dibuat secara manual di Konsol CLB.

    • Jika Service tidak berada dalam status Pending, lakukan operasi berikut:

      • Jika alamat IP instans SLB sama dengan alamat IP eksternal Service, hapus anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id.

      • Jika alamat IP instans SLB berbeda dari alamat IP eksternal Service, login ke Konsol CLB, pilih wilayah tempat kluster berada, temukan instans SLB berdasarkan IP eksternal Service, lalu ubah nilai anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id menjadi ID instans SLB yang dibuat secara manual. Jika tidak ditemukan instans SLB yang sesuai, ubah nilai anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id menjadi ID instans SLB yang dibuat secara manual di Konsol SLB. Kemudian, buat ulang Service tersebut.

alicloud: can not change LoadBalancer AddressType once created. delete and retry

Anda tidak dapat mengubah tipe instans SLB setelah dibuat.

Solusi: Buat ulang Service terkait.

the loadbalancer lb-xxxxx can not be reused, service has been associated with ip [xxx.xxx.xxx.xxx], cannot be bound to ip [xxx.xxx.xxx.xxx]

Anda tidak dapat mengaitkan instans SLB dengan Service yang sudah dikaitkan dengan instans SLB lain.

Solusi: Anda tidak dapat menggunakan ulang instans SLB yang ada dengan mengubah nilai anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id. Untuk mengubah instans SLB yang dikaitkan dengan Service, Anda harus menghapus dan membuat ulang Service tersebut.

Troubleshooting

Tabel berikut mencantumkan skenario troubleshooting umum beserta solusinya.

Kategori

Masalah

Solusi

Masalah yang terjadi saat mengakses instans SLB

Instans SLB tidak mendistribusikan traffic secara merata.

Instans SLB tidak mendistribusikan traffic secara merata

Error 503 terjadi saat saya mengakses instans SLB selama pembaruan aplikasi.

Error 503 terjadi saat saya mengakses instans SLB selama pembaruan aplikasi

Instans SLB tidak dapat diakses dari dalam kluster.

Alamat IP instans SLB yang dikaitkan dengan Service LoadBalancer tidak dapat diakses dari dalam kluster

Instans SLB tidak dapat diakses dari luar kluster.

Instans SLB tidak dapat diakses dari luar kluster

Error The plain HTTP request was sent to HTTPS port terjadi saat permintaan dikirim ke port HTTPS

Error terjadi saat permintaan dikirim ke port HTTPS

Masalah terkait konfigurasi SLB

Anotasi Service tidak berlaku.

Apa yang harus saya lakukan jika anotasi Service tidak berlaku?

Konfigurasi instans SLB dimodifikasi.

Mengapa konfigurasi instans SLB dimodifikasi?

Sistem gagal menggunakan ulang instans SLB yang ada.

Mengapa sistem gagal menggunakan instans SLB yang ada untuk lebih dari satu Service?

Tidak ada pendengar yang dibuat saat instans SLB yang ada digunakan ulang.

Mengapa tidak ada pendengar yang dibuat saat saya menggunakan ulang instans SLB yang ada?

Titik akhir (endpoint) Service berbeda dari yang ditentukan untuk server backend instans SLB.

Apa yang harus saya lakukan jika kelompok vServer instans SLB tidak diperbarui?

Masalah terkait penghapusan SLB

Instans SLB dihapus.

Kapan instans SLB dihapus secara otomatis?

Instans SLB tidak dihapus bersamaan dengan Service.

Kapan instans SLB dihapus secara otomatis?

Instans SLB tidak mendistribusikan traffic secara merata

Penyebab

Algoritma penjadwalan instans SLB tidak tepat.

Gejala

Traffic tidak didistribusikan secara merata ke server backend instans SLB.

Solusi

  • Jika koneksi berdurasi panjang (long-lived connections) dibuat ke Service Anda, atur algoritma penjadwalan instans SLB ke Weighted Least Connections (WLC) dengan menambahkan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler:"wlc".

Error 503 terjadi saat saya mengakses instans SLB selama pembaruan aplikasi

Penyebab

Pengurasan koneksi (connection draining) tidak dikonfigurasi untuk pendengar SLB atau shutdown yang mulus (graceful shutdown) tidak dikonfigurasi untuk pod.

Gejala

Error 503 terjadi saat Anda mengakses instans SLB selama pembaruan aplikasi.

Solusi

  1. Tambahkan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain untuk mengonfigurasi pengurasan koneksi pada pendengar SLB. Detail anotasi terdapat dalam Operasi umum untuk mengelola pendengar.

  2. Atur parameter preStop dan readinessProbe untuk pod berdasarkan mode jaringan pod.

    • readinessProbe memeriksa apakah kontainer siap menerima traffic. Pod hanya ditambahkan ke endpoint setelah lulus pemeriksaan kesiapan, lalu dikaitkan ke instans SLB. Atur interval probing, periode delay, dan ambang batas tidak sehat yang sesuai untuk readinessProbe — aplikasi dengan waktu startup lama dapat menyebabkan restart berulang jika ambang batas terlalu singkat.

    • Atur preStop sesuai waktu yang dibutuhkan pod untuk menangani permintaan yang tersisa. Atur terminationGracePeriodSeconds minimal 30 detik lebih lama dari preStop.

    Contoh konfigurasi pod:

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      namespace: default
    spec:
      containers:
      - name: nginx
        image: nginx
        # Liveness probe
        livenessProbe:
          failureThreshold: 3
          initialDelaySeconds: 30
          periodSeconds: 30
          successThreshold: 1
          tcpSocket:
            port: 80
          timeoutSeconds: 1
        # Readiness probe
        readinessProbe:
          failureThreshold: 3
          initialDelaySeconds: 30
          periodSeconds: 30
          successThreshold: 1
          tcpSocket:
            port: 80
          timeoutSeconds: 1
        # Graceful shutdown
        lifecycle:
          preStop:
            exec:
              command:
              - sleep
              - "30"
      terminationGracePeriodSeconds: 60

Instans SLB tidak dapat diakses dari luar kluster

Penyebab

Anda mengonfigurasi aturan ACL untuk instans SLB, atau instans SLB tidak berjalan dengan baik.

Gejala

Anda tidak dapat mengakses instans SLB dari luar kluster.

Solusi

  1. Jalankan perintah berikut untuk mengkueri event Service dan melakukan troubleshooting error. Error Service dan solusinya.

    kubectl -n {your-namespace} describe svc {your-svc-name}
  2. Periksa apakah aturan ACL dikonfigurasi untuk instans SLB.

    Jika aturan ACL dikonfigurasi untuk instans SLB, periksa apakah alamat IP klien diizinkan. Detail konfigurasi ACL terdapat dalam Kontrol akses.

  3. Periksa apakah instans SLB dikaitkan dengan kelompok vServer.

    Jika tidak ada kelompok vServer yang dikaitkan, periksa apakah pod aplikasi dikaitkan dengan Service dan berjalan normal. Jika pod tidak berjalan normal, lakukan troubleshooting. Pod troubleshooting.

  4. Periksa apakah server backend yang tidak sehat terdeteksi oleh pendengar SLB.

    Jika server backend yang tidak sehat terdeteksi, periksa apakah pod aplikasi berjalan normal. Untuk detail pemeriksaan kesehatan SLB, lihat Jalankan skrip pemeriksaan kesehatan.

  5. Jika masalah tetap berlanjut, hubungi grup dukungan ACS di DingTalk.

Layanan HTTPS backend tidak dapat diakses

Penyebab

Setelah Anda menentukan sertifikat di instans SLB, instans SLB mendekripsi permintaan HTTPS dan meneruskan permintaan HTTP ke pod backend.

Gejala

Anda tidak dapat mengakses layanan HTTPS backend.

Solusi

Atur targetPort ke port HTTP dalam Service. Misalnya, port HTTPS adalah 443 dalam Service NGINX berikut. Dalam kasus ini, Anda harus mengubah nilai targetPort menjadi 80.

Contoh:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
  name: nginx
  namespace: default
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    run: nginx
  type: LoadBalancer