2019-04-23 14:22:16 +00:00
---
title: Konsep
main_menu: true
content_template: templates/concept
weight: 40
---
{{% capture overview %}}
2019-10-10 04:48:52 +00:00
Bagian konsep ini membantu kamu belajar tentang bagian-bagian sistem serta abstraksi
2019-12-16 13:11:37 +00:00
yang digunakan Kubernetes untuk merepresentasikan klaster kamu, serta membantu
2019-04-23 14:22:16 +00:00
kamu belajar lebih dalam bagaimana cara kerja Kubernetes.
{{% /capture %}}
{{% capture body %}}
## Ikhtisar
2020-04-10 10:17:33 +00:00
Untuk menggunakan Kubernetes, kamu menggunakan objek-objek *Kubernetes API* untuk merepresentasikan
2019-10-10 04:48:52 +00:00
*state* yang diinginkan: apa yang aplikasi atau *workload* lain yang ingin kamu
jalankan, *image* kontainer yang digunakan, jaringan atau *resource disk* apa yang ingin
kamu sediakan, dan lain sebagainya. Kamu membuat *state* yang diinginkan dengan cara membuat
2020-04-10 10:17:33 +00:00
objek dengan menggunakan API Kubernetes, dan biasanya menggunakan `command-line interface` , yaitu `kubectl` .
2019-12-16 13:11:37 +00:00
Kamu juga dapat secara langsung berinteraksi dengan klaster untuk membuat atau mengubah
2019-04-23 14:22:16 +00:00
*state* yang kamu inginkan.
2019-10-10 04:48:52 +00:00
Setelah kamu membuat *state* yang kamu inginkan, *Control Plane* Kubernetes
menggunakan `Pod Lifecycle Event Generator (PLEG)` untuk mengubah
*state* yang ada saat ini supaya sama dengan *state* yang diinginkan.
Untuk melakukan hal tersebut, Kubernetes melakukan berbagai *task* secara otomatis,
misalnya dengan mekanisme `start` atau `stop` kontainer, melakukan *scale* replika dari
suatu aplikasi, dan lain sebagainya. *Control Plane* Kubernetes terdiri dari sekumpulan
2019-12-16 13:11:37 +00:00
`process` yang dijalankan di klaster:
2019-04-23 14:22:16 +00:00
2019-12-16 13:11:37 +00:00
* **Kubernetes Master** terdiri dari tiga buah *process* yang dijalankan pada sebuah *node* di klaster kamu, *node* ini disebut sebagai *master* , yang terdiri [kube-apiserver ](/docs/admin/kube-apiserver/ ), [kube-controller-manager ](/docs/admin/kube-controller-manager/ ) dan [kube-scheduler ](/docs/admin/kube-scheduler/ ).
* Setiap *node* non-master pada klaster kamu menjalankan dua buah *process* :
2019-04-23 14:22:16 +00:00
* **[kubelet](/docs/admin/kubelet/)**, yang menjadi perantara komunikasi dengan *master* .
* **[kube-proxy](/docs/admin/kube-proxy/)**, sebuah *proxy* yang merupakan representasi jaringan yang ada pada setiap *node* .
2020-04-10 10:17:33 +00:00
## Objek Kubernetes
2019-04-23 14:22:16 +00:00
2019-10-10 04:48:52 +00:00
Kubernetes memiliki beberapa abstraksi yang merepresentasikan *state* dari sistem kamu:
apa yang aplikasi atau *workload* lain yang ingin kamu jalankan, jaringan atau *resource disk* apa yang ingin
2019-12-16 13:11:37 +00:00
kamu sediakan, serta beberapa informasi lain terkait apa yang sedang klaster kamu lakukan.
2020-04-10 10:17:33 +00:00
Abstraksi ini direpresentasikan oleh objek yang tersedia di API Kubernetes;
lihat [ikhtisar objek-objek Kubernetes ](/docs/concepts/abstractions/overview/ )
2019-04-23 14:22:16 +00:00
untuk penjelasan yang lebih mendetail.
2020-04-10 10:17:33 +00:00
Objek mendasar Kubernetes termasuk:
2019-04-23 14:22:16 +00:00
* [Pod ](/docs/concepts/workloads/pods/pod-overview/ )
* [Service ](/docs/concepts/services-networking/service/ )
* [Volume ](/docs/concepts/storage/volumes/ )
* [Namespace ](/docs/concepts/overview/working-with-objects/namespaces/ )
Sebagai tambahan, Kubernetes memiliki beberapa abstraksi yang lebih tinggi yang disebut kontroler.
2020-04-10 10:17:33 +00:00
Kontroler merupakan objek mendasar dengan fungsi tambahan, contoh dari kontroler ini adalah:
2019-04-23 14:22:16 +00:00
* [ReplicaSet ](/docs/concepts/workloads/controllers/replicaset/ )
* [Deployment ](/docs/concepts/workloads/controllers/deployment/ )
* [StatefulSet ](/docs/concepts/workloads/controllers/statefulset/ )
* [DaemonSet ](/docs/concepts/workloads/controllers/daemonset/ )
* [Job ](/docs/concepts/workloads/controllers/jobs-run-to-completion/ )
## *Control Plane* Kubernetes
2019-10-10 04:48:52 +00:00
Berbagai bagian *Control Plane* Kubernetes, seperti *master* dan *process-process* kubelet,
2019-12-16 13:11:37 +00:00
mengatur bagaimana Kubernetes berkomunikasi dengan klaster kamu. *Control Plane*
2020-04-10 10:17:33 +00:00
menjaga seluruh *record* dari objek Kubernetes serta terus menjalankan
iterasi untuk melakukan manajemen *state* objek. *Control Plane* akan memberikan respon
2019-12-16 13:11:37 +00:00
apabila terdapat perubahan pada klaster kamu dan mengubah *state* saat ini agar sesuai
2019-04-23 14:22:16 +00:00
dengan *state* yang diinginkan.
2019-10-10 04:48:52 +00:00
Contohnya, ketika kamu menggunakan API Kubernetes untuk membuat sebuah *Deployment* ,
kamu memberikan sebuah *state* baru yang harus dipenuhi oleh sistem. *Control Plane*
2020-04-10 10:17:33 +00:00
kemudian akan mencatat objek apa saja yang dibuat, serta menjalankan instruksi yang kamu berikan
2019-10-10 04:48:52 +00:00
dengan cara melakukan `start` aplikasi dan melakukan `scheduling` aplikasi tersebut
2019-04-23 14:22:16 +00:00
pada *node* , dengan kata lain mengubah *state* saat ini agar sesuai dengan *state* yang diinginkan.
### Master
2019-12-16 13:11:37 +00:00
Master Kubernetes bertanggung jawab untuk memelihara *state* yang diinginkan pada klaster kamu.
2019-10-10 04:48:52 +00:00
Ketika kamu berinteraksi dengan Kubernetes, misalnya saja menggunakan perangkat `kubectl` ,
2019-12-16 13:11:37 +00:00
kamu berkomunikasi dengan *master* klaster Kubernetes kamu.
2019-04-23 14:22:16 +00:00
2019-12-16 13:11:37 +00:00
> "master" merujuk pada tiga buah *process* yang dijalankan pada sebuah *node* pada klaster kamu, *node* ini disebut sebagai *master*, yang terdiri [kube-apiserver](/docs/admin/kube-apiserver/), [kube-controller-manager](/docs/admin/kube-controller-manager/) dan [kube-scheduler](/docs/admin/kube-scheduler/).
2019-04-23 14:22:16 +00:00
### Node
2019-12-16 13:11:37 +00:00
*Node* di dalam klaster Kubernetes adalah mesin (mesin virtual maupun fisik) yang
2019-10-10 04:48:52 +00:00
menjalankan aplikasi kamu. Master mengontrol setiap node; kamu akan jarang berinteraksi
2019-04-23 14:22:16 +00:00
dengan *node* secara langsung.
2020-04-10 10:17:33 +00:00
#### Metadata objek
2019-04-23 14:22:16 +00:00
* [Anotasi ](/docs/concepts/overview/working-with-objects/annotations/ )
{{% /capture %}}
{{% capture whatsnext %}}
Jika kamu ingin menulis halaman konsep, perhatikan
[cara penggunaan template pada laman ](/docs/home/contribute/page-templates/ )
untuk informasi mengenai konsep tipe halaman dan *template* konsep.
{{% /capture %}}