diff --git a/content/id/docs/tasks/configure-pod-container/quality-service-pod.md b/content/id/docs/tasks/configure-pod-container/quality-service-pod.md new file mode 100644 index 0000000000..c5337c8854 --- /dev/null +++ b/content/id/docs/tasks/configure-pod-container/quality-service-pod.md @@ -0,0 +1,259 @@ +--- +title: Konfigurasi Quality of Service untuk Pod +content_type: task +weight: 30 +--- + +Laman ini menunjukkan bagaimana mengonfigurasi Pod agar ditempatkan pada kelas _Quality of Service_ (QoS) tertentu. +Kubernetes menggunakan kelas QoS untuk membuat keputusan tentang +penjadwalan dan pengeluaran Pod. + +## {{% heading "prerequisites" %}} + + +{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} + +## Kelas QoS {#qos-classes} + +Saat membuat Pod, Kubernetes menempatkan salah satu kelas QoS berikut untuknya: + +* Guaranteed +* Burstable +* BestEffort + + +## Membuat sebuah Namespace + +Buat sebuah Namespace sehingga sumber daya yang kamu buat dalam latihan ini +terisolasi dari klaster kamu yang lain. + +```shell +kubectl create namespace qos-example +``` + +## Membuat sebuah Pod yang mendapatkan penempatan kelas QoS Guaranteed + +Agar sebuah Pod memiliki kelas QoS Guaranteed: + +* Setiap Container, termasuk Container pemulai, di dalam Pod harus memiliki batasan memori dan permintaan memori dengan nilai yang sama. +* Setiap Container, termasuk Container pemulai, di dalam Pod harus memiliki batasan CPU dan permintaan CPU dengan nilai yang sama. + +Berikut adalah berkas konfigurasi untuk sebuah Pod dengan satu Container. Container tersebut memiliki sebuah batasan memori dan sebuah +permintaan memori, keduanya sama dengan 200MiB. Container itu juga mempunyai batasan CPU dan permintaan CPU yang sama sebesar 700 milliCPU: + +{{< codenew file="pods/qos/qos-pod.yaml" >}} + + +Buatlah Pod: + +```shell +kubectl create -f https://k8s.io/examples/pods/qos/qos-pod.yaml --namespace=qos-example +``` + + +Tampilkan informasi detail Pod yang telah dibuat: + +```shell +kubectl get pod qos-demo --namespace=qos-example --output=yaml +``` + + +Keluaran dari perintah di atas menunjukkan Kubernetes memberikan kelas QoS Guaranteed pada Pod. Keluaran tersebut juga +membuktikan bahwa Container pada Pod memiliki permintaan memori yang sesuai dengan batasan memori dan permintaan CPU yang juga sesuai dengan batasan CPU yang dispesifikasikan. + +```yaml +spec: + containers: + ... + resources: + limits: + cpu: 700m + memory: 200Mi + requests: + cpu: 700m + memory: 200Mi + ... +status: + qosClass: Guaranteed +``` + +{{< note >}} +Jika sebuah Container hanya menspesifikasikan batasan memori tanpa menentukan permintaan memori, maka Kubernetes akan +secara otomatis menetapkan permintaan memori yang sesuai dengan batasan memori yang dicantumkan. Sama halnya jika sebuah Container menspesifikasikan batasan +CPU tanpa menentukan permintaan CPU, maka Kubernetes akan secara otomatis menetapkan permintaan CPU yang sesuai +dengan batasan CPU yang dicantumkan. +{{< /note >}} + + +Hapuslah Pod: + +```shell +kubectl delete pod qos-demo --namespace=qos-example +``` + +## Membuat sebuah Pod yang mendapatkan penempatan kelas Qos Burstable +Sebuah Pod akan mendapatkan kelas QoS Burstable apabila: + +* Pod tidak memenuhi kriteria untuk kelas QoS Guaranteed. +* Setidaknya ada satu Container di dalam Pod dengan permintaan memori atau CPU. + +Berikut adalah berkas konfigurasi untuk Pod dengan satu Container. Container yang dimaksud memiliki batasan memori sebesar 200MiB +dan permintaan memori sebesar 100MiB. + +{{< codenew file="pods/qos/qos-pod-2.yaml" >}} + + +Buatlah Pod: + +```shell +kubectl create -f https://k8s.io/examples/pods/qos/qos-pod-2.yaml --namespace=qos-example +``` + + +Tampilkan informasi detail Pod yang telah dibuat: + +```shell +kubectl get pod qos-demo-2 --namespace=qos-example --output=yaml +``` + + +Keluaran dari perintah di atas menunjukkan Kubernetes memberikan kelas QoS Burstable pada Pod. + +```yaml +spec: + containers: + - image: nginx + imagePullPolicy: Always + name: qos-demo-2-ctr + resources: + limits: + memory: 200Mi + requests: + memory: 100Mi + ... +status: + qosClass: Burstable +``` + +Hapuslah Pod: + +```shell +kubectl delete pod qos-demo-2 --namespace=qos-example +``` + +## Membuat sebuah Pod yang mendapatkan penempatan kelas QoS BestEffort + +Agar Pod mendapatkan kelas QoS BestEffort, Container dalam pod tidak boleh +memiliki batasan atau permintaan memori atau CPU. + +Berikut adalah berkas konfigurasi untuk Pod dengan satu Container. Container yang dimaksud tidak memiliki batasan atau permintaan memori atau CPU apapun. +{{< codenew file="pods/qos/qos-pod-3.yaml" >}} + +Buatlah Pod: + +```shell +kubectl create -f https://k8s.io/examples/pods/qos/qos-pod-3.yaml --namespace=qos-example +``` + +Tampilkan informasi detail Pod yang telah dibuat: + +```shell +kubectl get pod qos-demo-3 --namespace=qos-example --output=yaml +``` + +Keluaran dari perintah di atas menunjukkan Kubernetes memberikan kelas QoS BestEffort pada Pod. + +```yaml +spec: + containers: + ... + resources: {} + ... +status: + qosClass: BestEffort +``` + +Hapuslah Pod: + +```shell +kubectl delete pod qos-demo-3 --namespace=qos-example +``` + +## Membuat sebuah Pod yang memiliki dua Container + +Berikut adalah konfigurasi berkas untuk Pod yang memiliki dua Container. Satu Container menentukan permintaan memori sebesar 200MiB. Container yang lain tidak menentukan permintaan atau batasan apapun. + +{{< codenew file="pods/qos/qos-pod-4.yaml" >}} + +Perhatikan bahwa Pod ini memenuhi kriteria untuk kelas QoS Burstable. Maksudnya, Container tersebut tidak memenuhi +kriteria untuk kelas QoS Guaranteed, dan satu dari Container tersebut memiliki permintaan memori. + +Buatlah Pod: + +```shell +kubectl create -f https://k8s.io/examples/pods/qos/qos-pod-4.yaml --namespace=qos-example +``` + +Tampilkan informasi detail Pod yang telah dibuat: + +```shell +kubectl get pod qos-demo-4 --namespace=qos-example --output=yaml +``` + +Keluaran dari perintah di atas menunjukkan Kubernetes memberikan kelas QoS Burstable pada Pod. + +```yaml +spec: + containers: + ... + name: qos-demo-4-ctr-1 + resources: + requests: + memory: 200Mi + ... + name: qos-demo-4-ctr-2 + resources: {} + ... +status: + qosClass: Burstable +``` + +Hapuslah Pod: + +```shell +kubectl delete pod qos-demo-4 --namespace=qos-example +``` + +## Membersihkan + +Hapuslah Namespace: + +```shell +kubectl delete namespace qos-example +``` + +## {{% heading "whatsnext" %}} + +### Untuk pengembang aplikasi + +* [Menetapkan sumber daya memori ke Container dan Pod](/id/docs/tasks/configure-pod-container/assign-memory-resource/) + +* [Menetapkan permintaan CPU pada Container dan Pod](/docs/tasks/configure-pod-container/assign-cpu-resource/) + +### Untuk administrator klaster + +* [Mengonfigurasi permintaan dan batasan bawaan memori untuk Namespace](/id/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/) + +* [Mengonfigurasi permintaan dan batasan bawaan CPU untuk Namespace](/id/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace/) + +* [Mengonfigurasi batasan memori minimum dan maksimum untuk Namespace](/id/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/) + +* [Mengonfigurasi batasan CPU minimum dan maksimum untuk Namespace](/id/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/) + +* [Mengonfigurasi kuota CPU dan memori untuk Namespace](/id/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/) + +* [Mengonfigurasi kuota Pod untuk Namespace](/id/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/) + +* [Mengonfigurasi kuota untuk objek API](/id/docs/tasks/administer-cluster/quota-api-object/) + +* [Kebijakan Pengaturan Manajemen Topologi pada sebuah Node](/id/docs/tasks/administer-cluster/topology-manager/) \ No newline at end of file