All Products
Search
Document Center

Container Service for Kubernetes:Kelola namespace dan kuota

Last Updated:Mar 26, 2026

Dalam kluster ACK multi-tenant, beberapa tim yang berbagi kluster yang sama dapat menghabiskan sumber daya tanpa batasan. Namespace memungkinkan Anda membagi sumber daya kluster menjadi kelompok terisolasi sehingga Anda dapat menerapkan kuota, mengelola izin, dan melacak biaya per tim atau lingkungan.

Namespace

Di kluster ACK, namespace membagi sumber daya kluster menjadi kelompok terisolasi. Saat beberapa tim berbagi satu kluster, buat namespace untuk mengklasifikasikan sumber daya berdasarkan tim atau lingkungan, lalu gunakan resource quotas guna membatasi konsumsi setiap namespace.

Secara default, Pod dalam status berjalan dapat mengonsumsi sumber daya CPU dan memori pada node tanpa batas. Pod dalam satu namespace bahkan dapat menghabiskan seluruh sumber daya kluster. Untuk mencegah hal ini, konfigurasikan kuota sumber daya per namespace—termasuk CPU, memori, dan jumlah Pod.

Alokasi contoh: Dalam kluster dengan RAM 32 GiB dan 16 core CPU, alokasikan 20 GiB dan 10 core untuk tim A, 10 GiB dan 4 core untuk tim B, serta sisakan 2 GiB dan 2 core sebagai cadangan. Sebagai alternatif, berikan namespace testing 1 core dan RAM 1 GiB, dan biarkan namespace production menggunakan sisa sumber daya.

Buat namespace

Gunakan Konsol ACK

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Konsol ACK Clusters.

  2. Pada halaman Clusters, temukan kluster yang ingin Anda kelola lalu klik namanya. Di panel navigasi kiri, klik Namespaces and Quotas.

  3. Klik Create. Pada kotak dialog yang muncul, konfigurasikan nama dan label namespace lalu klik OK.

Gunakan kubectl

  1. Buat namespace.

    kubectl create namespace test
  2. Verifikasi bahwa namespace telah dibuat.

    kubectl get namespaces

    Output yang diharapkan:

    NAME              STATUS   AGE
    default           Active   46h
    kube-node-lease   Active   46h
    kube-public       Active   46h
    kube-system       Active   46h
    test              Active   9s

    Namespace test kini aktif dalam daftar.

Konfigurasikan kuota dan batas sumber daya

Catatan

Setelah Anda mengonfigurasi kuota CPU dan memori untuk suatu namespace, semua Pod yang dibuat di namespace tersebut harus menentukan batas CPU dan memori. Agar pembuatan Pod tidak gagal, konfigurasikan batas sumber daya default untuk kontainer dalam namespace tersebut.

Konfigurasikan melalui Konsol ACK

  1. Pada halaman Namespace, klik Resource Quotas and Limits di kolom Actions untuk namespace yang ingin Anda kelola.

  2. Pada kotak dialog Resource Quotas and Limits, konfigurasikan kuota sumber daya dan batas sumber daya default. Untuk detail konfigurasi, lihat Resource Quotas dan Configure Default Memory Requests and Limits for a Namespace.

Praktik terbaik untuk mengubah kuota

Penting

Praktik terbaik: Ubah kuota selama jam sepi. Periksa penggunaan sumber daya dari beban kerja yang ada sebelum melakukan perubahan.

  • Sisihkan sumber daya yang cukup untuk auto scaling Penyekala Pod Horizontal (HPA).

  • Monitor kluster setidaknya selama 30 menit setelah menyesuaikan kuota untuk memastikan HPA berjalan sesuai harapan.

Hapus namespace

Peringatan

Namespace bawaan (default, kube-system, kube-public, kube-node-lease) tidak dapat dihapus. Kosongkan semua sumber daya dalam namespace sebelum menghapusnya. Jika namespace tetap dalam status Terminating dalam waktu lama, lihat Apa yang harus saya lakukan jika namespace terjebak dalam status Terminating?.

Gunakan Konsol ACK

  1. Pada halaman Namespace, temukan namespace yang ingin Anda hapus lalu klik image > Delete di kolom Actions. Untuk menonaktifkan perlindungan penghapusan terlebih dahulu, klik image > Disable Deletion Protection di kolom Actions.

  2. Pada kotak dialog Confirm, konfirmasi sumber daya terkait dalam namespace lalu klik Confirm Deletion.

Gunakan kubectl

kubectl delete namespace test

FAQ

Apa yang harus saya lakukan jika namespace terjebak dalam status Terminating?

Saat Anda menghapus namespace yang masih memiliki sumber daya, proses penghapusan akan tetap dalam status Terminating tanpa henti. Solusinya adalah mengosongkan array finalizers dalam spesifikasi namespace — Kubernetes kemudian secara otomatis menghapus namespace tersebut. Perlu diperhatikan bahwa tindakan ini mungkin menyisakan sumber daya yatim di kluster, jadi bersihkan beban kerja dalam namespace sebelum melanjutkan.

Ikuti langkah-langkah berikut untuk memaksa penghapusan namespace (namespace istio-system digunakan sebagai contoh):

  1. Buka terminal dan mulai reverse proxy untuk kluster Anda.

    kubectl proxy

    Output yang diharapkan:

    Starting to serve on 127.0.0.1:8001
  2. Buka terminal kedua. Ekspor token dan verifikasi konektivitas ke server API.

    export TOKEN=$(kubectl describe secret $(kubectl get secrets | grep default | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d '\t')
    curl http://localhost:8001/api/v1/namespaces --header "Authorization: Bearer $TOKEN" --insecure
  3. Ekspor konfigurasi namespace ke file JSON.

    kubectl get namespace istio-system -o json > istio-system.json
  4. Buka file istio-system.json dan kosongkan array finalizers dalam bagian spec.

    "spec": {
        "finalizers": []
    }
  5. Terapkan konfigurasi yang diperbarui untuk menghapus finalizers.

    curl -X PUT --data-binary @istio-system.json http://localhost:8001/api/v1/namespaces/istio-system/finalize -H "Content-Type: application/json" --header "Authorization: Bearer $TOKEN" --insecure

Langkah selanjutnya

Referensi