This commit is contained in:
irvifa
2019-12-16 20:11:37 +07:00
committed by Kubernetes Prow Robot
parent a7f6a78d55
commit 39fe327423
65 changed files with 459 additions and 458 deletions
+13 -13
View File
@@ -9,25 +9,25 @@ card:
{{% capture overview %}}
Dokumen ini merupakan ikhtisar yang mencakup berbagai komponen
yang dibutuhkan agar kluster Kubernetes dapat berjalan secara fungsional.
yang dibutuhkan agar klaster Kubernetes dapat berjalan secara fungsional.
{{% /capture %}}
{{% capture body %}}
## Komponen <i>Master</i>
Komponen <i>master</i> menyediakan <i>control plane</i> bagi kluster.
Komponen <i>master</i> menyediakan <i>control plane</i> bagi klaster.
Komponen ini berperan dalam proses pengambilan secara global
pada kluster (contohnya, mekanisme <i>schedule</i>), serta berperan dalam proses
deteksi serta pemberian respons terhadap <i>events</i> yang berlangsung di dalam kluster
pada klaster (contohnya, mekanisme <i>schedule</i>), serta berperan dalam proses
deteksi serta pemberian respons terhadap <i>events</i> yang berlangsung di dalam klaster
(contohnya, penjadwalan pod baru apabila jumlah replika yang ada pada
<i>replication controller</i> tidak terpenuhi).
Komponen master dapat dijalankan di mesin manapun yang ada di kluster. Meski begitu,
Komponen master dapat dijalankan di mesin manapun yang ada di klaster. Meski begitu,
untuk memudahkan proses yang ada, <i>script</i> inisiasi awal yang dijalankan
biasanya memulai komponen master pada mesin yang sama, serta tidak menjalankan
kontainer bagi pengguna di mesin ini. Contoh konfigurasi <i>multi-master VM</i>
dapat dilihat di modul [Membangun Kluster HA] (/docs/admin/high-availability/).
dapat dilihat di modul [Membangun Klaster HA] (/docs/admin/high-availability/).
### kube-apiserver
@@ -109,18 +109,18 @@ Kubernetes mendukung beberapa <i>runtime</i>, diantaranya adalah: [Docker](http:
## <i>Addons</i>
<i>Addons</i> merupakan pod dan service yang mengimplementasikan fitur-fitur yang diperlukan kluster.
<i>Addons</i> merupakan pod dan service yang mengimplementasikan fitur-fitur yang diperlukan klaster.
Beberapa <i>addons</i> akan dijelaskan selanjutnya.
### DNS
Meskipun tidak semua <i>addons</i> dibutuhkan, semua kluster Kubernetes hendaknya
memiliki DNS kluster. Komponen ini penting karena banyak dibutuhkan oleh komponen
Meskipun tidak semua <i>addons</i> dibutuhkan, semua klaster Kubernetes hendaknya
memiliki DNS klaster. Komponen ini penting karena banyak dibutuhkan oleh komponen
lainnya.
[Kluster DNS](/en/docs/concepts/cluster-administration/addons/ ) adalah server DNS, selain beberapa server DNS lain yang sudah ada di
[Klaster DNS](/en/docs/concepts/cluster-administration/addons/ ) adalah server DNS, selain beberapa server DNS lain yang sudah ada di
<i>environment</i> kamu, yang berfungsi sebagai catatan DNS bagi Kubernetes <i>services</i>
Kontainer yang dimulai oleh kubernetes secara otomatis akan memasukkan server DNS ini
@@ -129,9 +129,9 @@ ke dalam mekanisme pencarian DNS yang dimilikinya.
### <i>Web UI</i> (Dasbor)
[Dasbor](/en/docs/tasks/access-application-cluster/web-ui-dashboard/) adalah antar muka berbasis web multifungsi yang ada pada kluster Kubernetes.
Dasbor ini memungkinkan user melakukan manajemen dan <i>troubleshooting</i> kluster maupun
aplikasi yang ada pada kluster itu sendiri.
[Dasbor](/en/docs/tasks/access-application-cluster/web-ui-dashboard/) adalah antar muka berbasis web multifungsi yang ada pada klaster Kubernetes.
Dasbor ini memungkinkan user melakukan manajemen dan <i>troubleshooting</i> klaster maupun
aplikasi yang ada pada klaster itu sendiri.
### <i>Container Resource Monitoring</i>
@@ -64,7 +64,7 @@ GET /swagger-2.0.0.pb-v1.gz | GET /openapi/v2 **Accept**: application/com.github
Kubernetes juga menyediakan alternatif mekanisme serialisasi lain,
yaitu dengan menggunakan <i>Protobuf</i>, yang secara umum digunakan untuk mekanisme komunikasi
intra-kluster, hal ini didokumentasikan di dalam [proposal desain](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/protobuf.md)
intra-klaster, hal ini didokumentasikan di dalam [proposal desain](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/protobuf.md)
serta berkas IDL sebagai bentuk spesifikasi skema berada dalam <i>package</i> Go
Sebelum Kubernetes versi 1.14, <i>apiserver</i> Kubernetes juga mengekspos API
@@ -97,7 +97,7 @@ Kriteria untuk setiap tingkatan dideskripsikan secara lebih detail di dalam
- Bisa jadi terdapat <i>bug</i>. Secara <i>default</i> fitur ini tidak diekspos.
- Ketersediaan untuk fitur yang ada bisa saja dihilangkan pada suatu waktu tanpa pemberitahuan sebelumnya.
- API yang ada mungkin saja berubah tanpa memperhatikan kompatibilitas dengan versi perangkat lunak sebelumnya.
- Hanya direkomendasikan untuk kluster yang digunakan untuk tujuan <i>testing</i>.
- Hanya direkomendasikan untuk klaster yang digunakan untuk tujuan <i>testing</i>.
- Tingkatan <i>Beta</i>:
- Nama dari versi ini mengandung string `beta` (misalnya `v2beta3`).
- Kode yang ada sudah melalui mekanisme <i>testing</i> yang cukup baik. Menggunakan fitur ini dianggap cukup aman. Fitur ini diekspos secara <i>default</i>.
@@ -33,7 +33,7 @@ dalam dokumen ini:
- *objek file konfigurasi / file konfigurasi*: Sebuah *file* yang
mendefinisikan konfigurasi untuk sebuah objek Kubernetes. Dokumen ini akan memperlihatkan cara menggunakan *file* konfigurasi dengan perintah `kubectl apply`. *File-file* konfigurasi biasanya disimpan di sebuah *source control* seperti Git.
- *konfigurasi objek live / konfigurasi live*: nilai konfigurasi *live* dari sebuah objek, sebagaimana yang tersimpan di kluster Kubernetes. Nilai-nilai ini disimpan di *storage* kluster Kubernetes, biasanya etcd.
- *konfigurasi objek live / konfigurasi live*: nilai konfigurasi *live* dari sebuah objek, sebagaimana yang tersimpan di klaster Kubernetes. Nilai-nilai ini disimpan di *storage* klaster Kubernetes, biasanya etcd.
- *writer konfigurasi deklaratif / writer deklaratif*: Seseorang atau sebuah komponen perangkat lunak yang membuat pembaruan ke objek *live*. *Live writer* yang disebut pada dokumen ini adalah *writer* yang membuat perubahan terhadap *file* konfigurasi objek dan menjalankan perintah `kubectl apply` untuk menulis perubahan-perubahan tersebut.
## Cara membuat objek
@@ -69,7 +69,7 @@ Perangkat `kubectl` juga mendukung beberapa cara lain untuk memperbarui objek *l
## Cara menghapus objek
Kamu bisa menggunakan perintah `delete` pada sebuah objek dari sebuah kluster:
Kamu bisa menggunakan perintah `delete` pada sebuah objek dari sebuah klaster:
- `delete <type>/<name>`
@@ -29,7 +29,7 @@ Kamu bisa menggunakan perintah `kubectl create -f` untuk membuat sebuah objek da
## Cara memperbarui objek
{{< warning >}}
Memperbarui objek dengan perintah `replace` akan menghilangkan semua bagian dari spesifikasi objek yang tidak dispesifikasikan pada file konfigurasi. Oleh karena itu, perintah ini sebaiknya tidak digunakan terhadap objek-objek yang spesifikasinya sebagian dikelola oleh kluster, misalnya Service dengan tipe `LoadBalancer`, di mana *field* `externalIPs` dikelola secara terpisah dari file konfigurasi. *Field-field* yang dikelola secara terpisah harus disalin ke file konfigurasi untuk mencegah terhapus oleh perintah `replace`.
Memperbarui objek dengan perintah `replace` akan menghilangkan semua bagian dari spesifikasi objek yang tidak dispesifikasikan pada file konfigurasi. Oleh karena itu, perintah ini sebaiknya tidak digunakan terhadap objek-objek yang spesifikasinya sebagian dikelola oleh klaster, misalnya Service dengan tipe `LoadBalancer`, di mana *field* `externalIPs` dikelola secara terpisah dari file konfigurasi. *Field-field* yang dikelola secara terpisah harus disalin ke file konfigurasi untuk mencegah terhapus oleh perintah `replace`.
{{< /warning >}}
Kamu bisa menggunakan perintah `kubectl replace -f` untuk memperbarui sebuah objek *live* sesuai dengan sebuah file konfigurasi.
@@ -60,7 +60,7 @@ metadata:
## Aplikasi dan Instans Aplikasi
Sebuah aplikasi dapat diinstal sekali atau beberapa kali di dalam kluster Kubernetes dan,
Sebuah aplikasi dapat diinstal sekali atau beberapa kali di dalam klaster Kubernetes dan,
pada beberapa kasus, di dalam sebuah _namespace_ yang sama. Misalnya, wordpress dapat
diinstal lebih dari satu kali dimana situs web yang berbeda merupakan hasil instalasi yang berbeda.
@@ -17,7 +17,7 @@ dan bagaimana kamu dapat merepresentasikannya di dalam format `.yaml`.
Objek-objek Kubernetes adalah entitas persisten di dalam sistem Kubernetes.
Kubernetes menggunakan entitas ini untuk merepresentasikan _state_ yang ada pada
kluster kamu. Secara spesifik, hal itu dapat dideskripsikan sebagai:
klaster kamu. Secara spesifik, hal itu dapat dideskripsikan sebagai:
* Aplikasi-aplikasi kontainer apa sajakah yang sedang dijalankan (serta pada _node_ apa aplikasi tersebut dijalankan)
* _Resource_ yang tersedia untuk aplikasi tersebut
@@ -26,8 +26,8 @@ kluster kamu. Secara spesifik, hal itu dapat dideskripsikan sebagai:
Objek Kubernetes merupakan sebuah _"record of intent"_--yang mana sekali kamu membuat suatu objek,
sistem Kubernetes akan bekerja secara konsisten untuk menjamin
bahwa objek tersebut akan selalu ada. Dengan membuat sebuah objek, secara tak langsung kamu
memberikan informasi pada sistem Kubernetes mengenai perilaku apakah yang kamu inginkan pada _workload_ kluster yang kamu miliki;
dengan kata lain ini merupakan definisi _state_ kluster yang kamu inginkan.
memberikan informasi pada sistem Kubernetes mengenai perilaku apakah yang kamu inginkan pada _workload_ klaster yang kamu miliki;
dengan kata lain ini merupakan definisi _state_ klaster yang kamu inginkan.
Untuk menggunakan objek-objek Kubernetes--baik membuat, mengubah, atau menghapus objek-objek tersebut--kamu
harus menggunakan [API Kubernetes](/docs/concepts/overview/kubernetes-api/).
@@ -44,7 +44,7 @@ Status mendeskripsikan _state_ yang sebenarnya dari sebuah objek, dan hal ini di
sistem Kubernetes. Setiap saat, _Control Plane_ Kubernetes selalu memantau apakah _state_ aktual sudah sesuai dengan
_state_ yang diinginkan.
Sebagai contoh, _Deployment_ merupakan sebuah objek yang merepresentasikan sebuah aplikasi yang dijalankan di kluster kamu.
Sebagai contoh, _Deployment_ merupakan sebuah objek yang merepresentasikan sebuah aplikasi yang dijalankan di klaster kamu.
Ketika kamu membuat sebuah _Deployment_, kamu bisa saja memberikan _spec_ bagi _Deployment_ untuk memberikan spesifikasi
berapa banyak _replica_ yang kamu inginkan. Sistem Kubernetes kemudian akan membaca konfigurasi yang kamu berikan
dan mengaktifkan tiga buah instans untuk aplikasi yang kamu inginkan--mengubah status yang ada saat ini agar sesuai dengan apa yang kamu inginkan.
@@ -6,7 +6,7 @@ weight: 30
{{% capture overview %}}
Kubernetes mendukung banyak kluster virtual di dalam satu kluster fisik. Kluster virtual tersebut disebut dengan *namespace*.
Kubernetes mendukung banyak klaster virtual di dalam satu klaster fisik. Klaster virtual tersebut disebut dengan *namespace*.
{{% /capture %}}
@@ -15,11 +15,11 @@ Kubernetes mendukung banyak kluster virtual di dalam satu kluster fisik. Kluster
## Kapan menggunakan banyak Namespace
*Namespace* dibuat untuk digunakan di *environment* dengan banyak pengguna yang berada di dalam banyak tim ataupun proyek. Untuk sebuah kluster dengan beberapa pengguna saja, kamu tidak harus membuat ataupun memikirkan tentang *namespace*. Mulai gunakan *namespace* saat kamu membutuhkan fitur dari *namespace* itu sendiri.
*Namespace* dibuat untuk digunakan di *environment* dengan banyak pengguna yang berada di dalam banyak tim ataupun proyek. Untuk sebuah klaster dengan beberapa pengguna saja, kamu tidak harus membuat ataupun memikirkan tentang *namespace*. Mulai gunakan *namespace* saat kamu membutuhkan fitur dari *namespace* itu sendiri.
*Namespace* menyediakan ruang untuk nama objek. Nama dari *resource* atau objek harus berbeda di dalam sebuah *namespace*, tetapi boleh sama jika berbeda *namespace*. *Namespace* tidak bisa dibuat di dalam *namespace* lain dan setiap *resource* atau objek Kubernetes hanya dapat berada di dalam satu *namespace*.
*Namespace* merupakan cara yang digunakan untuk memisahkan *resource* kluster untuk beberapa pengguna (dengan [*resource quota*](/docs/concepts/policy/resource-quotas/)).
*Namespace* merupakan cara yang digunakan untuk memisahkan *resource* klaster untuk beberapa pengguna (dengan [*resource quota*](/docs/concepts/policy/resource-quotas/)).
Dalam versi Kubernetes yang akan datang, objek di dalam satu *namespace* akan mempunyai *access control policies* yang sama secara *default*.
@@ -32,7 +32,7 @@ Pembuatan dan penghapusan *namespace* dijelaskan di [dokumentasi panduan admin u
### Melihat namespace
Kamu dapat melihat daftar *namespace* di dalam kluster menggunakan:
Kamu dapat melihat daftar *namespace* di dalam klaster menggunakan:
```shell
kubectl get namespace
@@ -48,7 +48,7 @@ Kubernetes berjalan dengan tiga *namespace* awal:
* `default`, *namespace default* untuk objek yang dibuat tanpa mencantumkan *namespace* pada spesifikasinya.
* `kube-system`, *namespace* yang digunakan untuk objek yang dibuat oleh sistem Kubernetes.
* `kube-public`, *namespace* ini dibuat secara otomatis dan dapat diakses oleh semua pengguna (termasuk yang tidak diautentikasi). *Namespace* ini disediakan untuk penggunaan kluster, jika beberapa *resouce* harus terlihat dan dapat dibaca secara publik di seluruh kluster. Aspek publik dari *namespace* ini hanya sebuah konvensi, bukan persyaratan.
* `kube-public`, *namespace* ini dibuat secara otomatis dan dapat diakses oleh semua pengguna (termasuk yang tidak diautentikasi). *Namespace* ini disediakan untuk penggunaan klaster, jika beberapa *resouce* harus terlihat dan dapat dibaca secara publik di seluruh klaster. Aspek publik dari *namespace* ini hanya sebuah konvensi, bukan persyaratan.
### Mengkonfigurasi namespace untuk request
@@ -28,10 +28,10 @@ beberapa metode untuk objek yang sama dapat menghasilkan perilaku yang tidak dii
## Perintah imperatif
Ketika menggunakan perintah-perintah imperatif, seorang pengguna menjalankan operasi secara langsung
pada objek-objek _live_ dalam sebuah kluster. Pengguna menjalankan operasi tersebut melalui
pada objek-objek _live_ dalam sebuah klaster. Pengguna menjalankan operasi tersebut melalui
argumen atau _flag_ pada perintah `kubectl`.
Ini merupakan cara yang paling mudah untuk memulai atau menjalankan tugas "sekali jalan" pada sebuah kluster.
Ini merupakan cara yang paling mudah untuk memulai atau menjalankan tugas "sekali jalan" pada sebuah klaster.
Karena metode ini dijalankan secara langsung pada objek _live_, tidak ada _history_ yang menjelaskan konfigurasi-konfigurasi terkait sebelumnya.
### Contoh
@@ -53,7 +53,7 @@ kubectl create deployment nginx --image nginx
Beberapa kelebihan metode ini dibandingkan metode konfigurasi objek:
- Sederhana, mudah dipelajari dan diingat.
- Hanya memerlukan satu langkah untuk membuat perubahan pada kluster.
- Hanya memerlukan satu langkah untuk membuat perubahan pada klaster.
Beberapa kekurangan metode ini dibandingkan metode konfigurasi objek:
@@ -78,7 +78,7 @@ membuang semua perubahan terhadap objek tersebut yang tidak didefinisikan pada b
Metode ini sebaiknya tidak dilakukan pada tipe sumber daya yang spek-nya diperbarui
secara independen di luar berkas konfigurasi. Service dengan tipe `LoadBalancer`, sebagai contoh,
memiliki _field_ `externalIPs` yang diperbarui secara independen di luar konfigurasi, dilakukan
oleh kluster.
oleh klaster.
{{< /warning >}}
### Contoh