Namespaces memungkinkan Anda membagi sumber daya di kluster yang sama ke dalam ruang kerja yang berbeda. Hal ini memungkinkan Anda mengisolasi sumber daya serta mengelola kuota, izin, dan pembukuan. Ini mengurangi biaya pengelolaan dan pemeliharaan kluster Container Service for Kubernetes (ACK) dalam skenario multi-pengguna.
Namespaces
Dalam kluster ACK, Anda dapat menggunakan namespaces sebagai mekanisme untuk membagi sumber daya di kluster yang sama menjadi grup-grup terisolasi. Jika beberapa pengguna berbagi kluster, Anda dapat membuat namespaces untuk mengklasifikasikan sumber daya kluster yang digunakan untuk menyelesaikan tugas-tugas berbeda dan menggunakan kuota sumber daya untuk membatasi dan mengelola alokasi sumber daya dalam namespaces tersebut.
Secara default, pod yang berada dalam status running dapat menggunakan sumber daya CPU dan memori node tanpa batasan. Dalam kasus ini, pod dalam sebuah namespace mungkin menghabiskan sumber daya kluster. Anda dapat mengonfigurasi beberapa kuota sumber daya untuk sebuah namespace, termasuk kuota CPU, memori, dan pod.
Buat sebuah namespace
Gunakan konsol ACK
Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi di sebelah kiri, klik Namespaces and Quotas.
Klik Create. Di kotak dialog yang muncul, konfigurasikan nama dan label namespace lalu klik OK.
Gunakan kubectl
Buat sebuah namespace.
kubectl create namespace testVerifikasi bahwa namespace telah dibuat.
kubectl get namespacesOutput yang diharapkan:
NAME STATUS AGE default Active 46h kube-node-lease Active 46h kube-public Active 46h kube-system Active 46h test Active 9sOutput perintah menunjukkan bahwa namespace baru bernama test ada dalam daftar.
Setelah membuat namespace, Anda dapat memodifikasi konfigurasi namespace tersebut, seperti memodifikasi label, menetapkan kuota dan batas sumber daya, menghapus namespace, dan melakukan operasi lainnya.
Konfigurasikan kuota sumber daya dan batas
Setelah membuat namespace, Anda dapat mengonfigurasi kuota dan rentang batas untuk mengontrol penggunaan sumber daya dan biaya dari pod dalam namespace tersebut.
Di halaman Namespace, klik Resource Quotas and Limits di kolom Actions untuk namespace yang ingin dikelola.
Di kotak dialog Resource Quotas and Limits, konfigurasikan kuota sumber daya dan batas sumber daya default.
Untuk informasi lebih lanjut tentang cara mengonfigurasi kuota sumber daya dan batas, lihat Kuota Sumber Daya dan Konfigurasikan Permintaan Memori Default dan Batas untuk Sebuah Namespace.
CatatanSetelah mengonfigurasi kuota CPU dan memori untuk sebuah namespace, Anda harus menentukan batas CPU dan memori saat membuat pod. Anda juga dapat mengonfigurasi batas sumber daya default untuk semua kontainer dalam namespace.
Saran untuk memodifikasi kuota sumber daya sebuah namespace
Kami merekomendasikan Anda melakukan modifikasi selama jam-jam sepi. Periksa penggunaan sumber daya beban kerja yang ada sebelum operasi.
Pastikan cukup sumber daya dicadangkan untuk mendukung penskalaan otomatis HPA.
Kami merekomendasikan Anda memantau sistem setidaknya selama 30 menit setelah penyesuaian untuk memastikan HPA berjalan sesuai harapan.
Hapus sebuah namespace
Namespaces bawaan tidak dapat dihapus.
Untuk mengaktifkan perlindungan penghapusan pada sebuah namespace, pilih
> Disable Deletion Protection di kolom Tindakan.Saat menghapus sebuah namespace, pastikan sumber daya di dalam namespace tersebut telah dibersihkan. Jika namespace berada dalam status Terminating untuk waktu yang lama, Anda dapat memaksa penghapusan namespace. Untuk informasi lebih lanjut, lihat Apa yang harus saya lakukan jika namespace berada dalam status Terminating?
Gunakan konsol ACK
Pada halaman Namespace, temukan namespace yang ingin Anda hapus dan klik
> Delete di kolom Actions.Di kotak dialog Confirm, konfirmasikan sumber daya terkait dalam namespace dan klik Confirm Deletion.
Gunakan kubectl
Jalankan perintah berikut untuk menghapus sebuah namespace:
kubectl delete namespace testFAQ
Apa yang harus saya lakukan jika namespace berada dalam status Terminating?
Saat menghapus namespace yang memiliki sumber daya, operasi penghapusan tetap berada dalam status Terminating untuk waktu yang lama. Anda dapat menghapus field finalizers dari namespace untuk dengan cepat mengakhiri status ini. Operasi ini dapat menyebabkan sumber daya namespace tetap ada di kluster. Kami merekomendasikan Anda membersihkan sumber daya dalam namespace sebelum operasi.
Saat array field finalizers kosong dan statusnya adalah Terminating, Kubernetes secara otomatis akan menghapus namespace. Anda dapat menggunakan salah satu metode berikut untuk memaksa penghapusan namespace:
Buka terminal shell. Jalankan perintah berikut untuk membuat reverse proxy untuk kluster Kubernetes Anda:
kubectl proxyContoh output perintah:
Starting to serve on 127.0.0.1:8001Buka terminal shell baru. Definisikan variabel lingkungan untuk terhubung ke kluster Kubernetes. Lalu, jalankan perintah curl untuk memeriksa konektivitas dan otorisasi.
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" --insecureKueri konfigurasi sebuah namespace. Dalam contoh ini, istio-system digunakan.
kubectl get namespace istio-system -o json > istio-system.jsonHapus array field finalizers dan simpan konfigurasi.
"spec": { "finalizers": [ ] },Hapus field finalizers. Dalam contoh ini, namespace istio-system digunakan.
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
Referensi
Untuk informasi lebih lanjut tentang kuota dan batas kluster, seperti batas layanan cloud dan konfigurasi kluster, batas kapasitas kluster individu, kuota kluster, dan kuota layanan cloud dependen, lihat Kuota dan Batas.
Untuk informasi lebih lanjut tentang cara mengonfigurasi kuota untuk sebuah namespace, lihat Konfigurasikan Kuota untuk Objek API.
Anda dapat menggunakan Resource Access Management (RAM) user atau RAM role dikombinasikan dengan izin kontrol akses berbasis peran (RBAC) untuk mengimplementasikan manajemen izin terperinci untuk kluster atau namespaces. Untuk informasi lebih lanjut, lihat Gunakan RAM untuk mengotorisasi akses ke kluster dan sumber daya cloud dan Gunakan RBAC untuk mengelola izin operasi pada sumber daya dalam kluster.