Merge pull request #23802 from supirman/id-tutorial-expose

Add ID translation for Exposing Your App tutorial
pull/23917/head
Kubernetes Prow Robot 2020-09-15 17:35:19 -07:00 committed by GitHub
commit bb200488fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 187 additions and 14 deletions

View File

@ -23,13 +23,13 @@ card:
<div class="row">
<div class="col-md-9">
<h2>Panduan Dasar Kubernetes</h2>
<p>Tutorial ini menyediakan panduan dasar mekanisme orkestrasi klaster Kubernetes. Setiap modul memliki beberapa informasi mengenai latar belakang bagi konsep mendasar dan <i>feature</i> Kubernetes, termasuk mode interaktif yang dapat digunakan sebagai metode pembelajaran <i>online</i>. Mode tutorial interaktif ini memberikan kesempatan pengguna untuk melakukan manajemen klaster sederhana beserta aplikasi dalam kontainer yang kamu miliki.</p>
<p>Tutorial ini menyediakan panduan dasar mekanisme orkestrasi klaster Kubernetes. Setiap modul memliki beberapa informasi mengenai latar belakang bagi konsep mendasar dan <i>feature</i> Kubernetes, termasuk mode interaktif yang dapat digunakan sebagai metode pembelajaran <i>online</i>. Mode tutorial interaktif ini memberikan kesempatan pengguna untuk melakukan manajemen klaster sederhana beserta aplikasi terkontainerisasi yang kamu miliki.</p>
<p>Dengan menggunakan mode tutorial interaktif ini, pengguna diharapkan dapat memahami:</p>
<ul>
<li><i>Deploy</i>i> sebuah aplikasi yang sudah dikontainerisasi pada klaster</li>
<li><i>Deploy</i> sebuah aplikasi yang sudah dikontainerisasi pada klaster</li>
<li>Melakukan <i>scale</i> <i>deployment</i></li>
<li>Meng-update aplikasi yang sudah dikontainerisasi dengan menggunakan versi aplikasi terbaru</li>
<li>Men-debug aplikasi yang sudah dikontainerisasi</li>
<li>Memperbarui aplikasi yang sudah dikontainerisasi dengan menggunakan versi aplikasi terbaru</li>
<li>Men-<i>debug</i> aplikasi yang sudah dikontainerisasi</li>
</ul>
<p>Tutorial ini menggunakan Katakoda untuk menjalankan terminal virtual diatas Minikube pada <i>web browser</i> kamu. Dengan demikian, kamu tidak perlu melakukan instalasi perangkat lunak apa pun, segala modul yang ada dijalankan secara langsung melalui <i>web browser</i> yang kamu miliki.</p>
</div>
@ -44,32 +44,34 @@ card:
</div>
</div>
<br>
<div id="basics-modules" class="content__modules">
<h2>Kubernetes Basics Modules</h2>
<h2>Modul Dasar Kubernetes</h2>
<div class="row">
<div class="col-md-12">
<div class="row">
<div class="col-md-4">
<div class="thumbnail">
<a href="/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_01.svg?v=1469803628347" alt=""></a>
<a href="/id/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_01.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/"><h5>1. Create a Kubernetes cluster</h5></a>
<a href="/id/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/"><h5>1. Membuat klaster Kubernetes</h5></a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="thumbnail">
<a href="/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_02.svg?v=1469803628347" alt=""></a>
<a href="/id/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_02.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/"><h5>2. Deploy an app</h5></a>
<a href="/id/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/"><h5>2. Menyebarkan (Deploy) Aplikasi</h5></a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="thumbnail">
<a href="/docs/tutorials/kubernetes-basics/explore/explore-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_03.svg?v=1469803628347" alt=""></a>
<a href="/id/docs/tutorials/kubernetes-basics/explore/explore-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_03.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/docs/tutorials/kubernetes-basics/explore/explore-intro/"><h5>3. Explore your app</h5></a>
<a href="/id/docs/tutorials/kubernetes-basics/explore/explore-intro/"><h5>3. Menjelajahi aplikasimu</h5></a>
</div>
</div>
</div>
@ -79,13 +81,33 @@ card:
<div class="row">
<div class="col-md-4">
<div class="thumbnail">
<a href="/docs/tutorials/kubernetes-basics/expose/expose-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_04.svg?v=1469803628347" alt=""></a>
<a href="/id/docs/tutorials/kubernetes-basics/expose/expose-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_04.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/id/docs/tutorials/kubernetes-basics/expose/expose-intro/"><h5>4. Mengekspos aplikasimu secara publik</h5></a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="thumbnail">
<a href="/docs/tutorials/kubernetes-basics/scale/scale-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_05.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/docs/tutorials/kubernetes-basics/scale/scale-intro/"><h5>5. Penyekalaan naik aplikasimu</h5></a>
</div>
</div>
</div>
<div class="col-md-4">
<div class="thumbnail">
<a href="/docs/tutorials/kubernetes-basics/update/update-intro/"><img src="/docs/tutorials/kubernetes-basics/public/images/module_06.svg?v=1469803628347" alt=""></a>
<div class="caption">
<a href="/docs/tutorials/kubernetes-basics/update/update-intro/"><h5>6. Memperbarui aplikasimu</h5></a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
</div>

View File

@ -24,12 +24,12 @@ weight: 20
Untuk berinteraksi dengan Terminal, tolong gunakan dalam desktop/tablet
</div>
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/4" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-lang="id" data-katacoda-id="kubernetes-bootcamp/4" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
</div>
</div>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/expose/expose-intro/" role="button">Lanjut ke Modul 4<span class="btn__next"></span></a>
<a class="btn btn-lg btn-success" href="/id/docs/tutorials/kubernetes-basics/expose/expose-intro/" role="button">Lanjut ke Modul 4<span class="btn__next"></span></a>
</div>
</div>

View File

@ -0,0 +1,4 @@
---
title: Mengekspos Aplikasimu Secara Publik
weight: 40
---

View File

@ -0,0 +1,38 @@
---
title: Tutorial Interaktif - Mengekspos Aplikasimu
weight: 20
---
<!DOCTYPE html>
<html lang="id">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<link href="/docs/tutorials/kubernetes-basics/public/css/overrides.css" rel="stylesheet">
<script src="https://katacoda.com/embed.js"></script>
<div class="layout" id="top">
<main class="content katacoda-content">
<div class="katacoda">
<div class="katacoda__alert">
Untuk berinteraksi dengan Terminal, harap gunakan desktop/tablet
</div>
<div class="katacoda__box" id="inline-terminal-1" data-katacoda-id="kubernetes-bootcamp/8" data-katacoda-color="326de6" data-katacoda-secondary="273d6d" data-katacoda-hideintro="false" data-katacoda-font="Roboto" data-katacoda-fontheader="Roboto Slab" data-katacoda-prompt="Kubernetes Bootcamp Terminal" style="height: 600px;">
</div>
</div>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/docs/tutorials/kubernetes-basics/scale/scale-intro/" role="button">Lanjutkan ke Modul 5<span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>

View File

@ -0,0 +1,109 @@
---
title: Menggunakan Service untuk Mengekspos Aplikasimu
weight: 10
---
<!DOCTYPE html>
<html lang="id">
<body>
<link href="/docs/tutorials/kubernetes-basics/public/css/styles.css" rel="stylesheet">
<div class="layout" id="top">
<main class="content">
<div class="row">
<div class="col-md-8">
<h3>Tujuan</h3>
<ul>
<li>Belajar tentang Service di Kubernetes</li>
<li>Memahami bagaimana label dan objek LabelSelector berhubungan dengan sebuah Service</li>
<li>Mengekspos sebuah aplikasi keluar klaster Kubernetes menggunakan sebuah Service</li>
</ul>
</div>
<div class="col-md-8">
<h3>Ikhtisar Service Kubernetes</h3>
<p><a href="/id/docs/concepts/workloads/pods/">Pod-Pod</a> Kubernetes itu fana. Pod pada kenyataannya punya <a href="/id/docs/concepts/workloads/pods/pod-lifecycle/">siklus hidup</a>. Ketika sebuah Node pekerja mati, Pod yang berjalan dalam Node itu juga hilang. <a href="/id/docs/concepts/workloads/controllers/replicaset/">ReplicaSet</a> mungkin kemudian secara dinamis mendorong klaster kembali ke keadaan yang diinginkan melalui penciptaan Pod baru untuk memastikan aplikasimu berjalan. Contoh lainnya, katakanlah ada <i>backend</i> pengolahan citra dengan 3 replika. Replika tersebut dapat ditukar; sistem <i>front-end</i> seharusnya tidak peduli tentang replika <i>backend</i> atau bahkan jika Pod hilang dan dibuat ulang. Walaupun demikian, tiap Pod dalam sebuah klaster Kubernetes memiliki alamat IP unik, meskipun Pod-Pod itu berada dalam satu Node yang sama, sehingga seharusnya ada jalan untuk mencocokan perubahan antara Pod-Pod itu sehingga aplikasimu tetap berfungsi.</p>
<p>Service di Kubernetes merupakan abstraksi yang mendefinisikan satu set Pod secara logis dan aturan untuk mengakses mereka. Service memungkinkan keterkaitan renggang antara Pod-Pod. Sebuah Service didefinisikan menggunakan YAML <a href="/id/docs/concepts/configuration/overview/#tip-konfigurasi-secara-umum">(lebih disukai)</a> atau JSON, sebagaimana semua objek Kubernetes. Kumpulan Pod yang ditargetkan oleh Service biasanya ditentukan oleh <i>LabelSelector</i> (lihat di bawah mengapa kamu mungkin ingin Service tanpa <code>selector</code> dalam <i>spec</i>).</p>
<p>Meskipun tiap Pod memiliki alamat IP unik, IP tersebut tidak diekpos ke luar klaster tanpa sebuah Service. Service memperbolehkan aplikasimu untuk menerima kunjungan. Service dapat diekspos dengan cara yang berbeda menggunakan <code>type</code> di ServiceSpec:
<ul>
<li><i>ClusterIP</i> (bawaan) - Mengekspos Service dengan internal IP dalam klaster. <i>Type</i> ini membuat Service hanya bisa diakses dalam klaster.</li>
<li><i>NodePort</i> - Mengekspos Service dengan porta yang sama untuk tiap Node dalam klaster menggunakan NAT. Ini membuat Service dapat diakses dari luar dengan <code>&lt;NodeIP&gt;:&lt;NodePort&gt;</code>. <i>Superset</i> dari ClusterIP.</li>
<li><i>LoadBalancer</i> - Membuat <i>load balancer</i> eksternal di <i>cloud</i> saat ini (jika didukung) dan memberikan IP eksternal tetap kepada Service. <i>Superset</i> dari NodePort.</li>
<li><i>ExternalName</i> - Mengekpos Service menggunakan nama sesuai keinginan (ditentukan oleh <code>externalName</code> dalam <i>spec</i>) dengan mengembalikan catatan CNAME dengan nama tersebut. Tidak menggunakan proksi. <i>Type</i> ini membutuhkan <code>kube-dns</code> versi v1.7 atau lebih tinggi.</li>
</ul>
<p>Informasi lebih tentang <i>type</i> Service berbeda dapat ditemukan di tutorial <a href="/docs/tutorials/services/source-ip/">Menggunakan IP pengirim</a>. Lihat juga <a href="/id/docs/concepts/services-networking/connect-applications-service">Menghubungkan aplikasi dengan Service</a>.</p>
<p>Selain itu, catat bahwa ada kasus penggunaan Service yang tidak mendefinisikan <code>selector</code> di <i>spec</i>. Sebuah Service yang dibuat tanpa <code>selector</code> juga tidak akan membuat objek Endpoint yang sesuai. Ini mengizinkan pengguna untuk memetakan Service secara manual ke <i>endpoint</i> spesifik. Kemungkinan lain kenapa dimungkinan tanpa <i>selector</i> adalah kamu dengan tegas menggunakan <code>type: ExternalName</code>.</p>
</div>
<div class="col-md-4">
<div class="content__box content__box_lined">
<h3>Ringkasan</h3>
<ul>
<li>Mengekspos Pod ke kunjungan eksternal</li>
<li><i>Load balancing</i> kunjungan melintasi beberapa Pod</li>
<li>Menggunakan label</li>
</ul>
</div>
<div class="content__box content__box_fill">
<p><i>Service Kubernetes adalah lapisan abstraksi yang mendefinisikan kumpulan Pod secara logis dan mengijinkan paparan kunjungan eksternal, <i>load balancing</i>, dan <i>service discovery</i> untuk Pod-Pod tersebut.</i></p>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<h3>Service dan Label</h3>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_04_services.svg" width="150%" height="150%"></p>
</div>
</div>
<div class="row">
<div class="col-md-8">
<p>Service mengarahkan kunjungan melintasi sekumpulan Pod. Service merupakan abstraksi yang mengizinkan Pod-Pod untuk mati dan replikasi dalam Kubernetes tanpa memengaruhi aplikasimu. Menemukan dan <i>routing</i> antara Pod dependen (seperti komponen <i>frontend</i> dan <i>backend</i>) yang ditangani oleh Service Kubernetes.</p>
<p>Service mencocokan satu set Pod menggunakan <a href="/id/docs/concepts/overview/working-with-objects/labels/">label dan selektor</a>, mengelompokan primitif yang mengizinkan operasi logika pada objek-objek dalam Kubernetes. Label adalah pasangan <i>key/value</i> yang melekat pada objek-objek dan dapat digunakan untuk beberapa tujuan:</p>
<ul>
<li>Menandai objek-objek untuk lingkungan <i>development</i>, <i>test</i>, dan <i>production</i></li>
<li>Melekatkan label versi</li>
<li>Klasifikasi sebuah objek dengan label-label</li>
</ul>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<p><img src="/docs/tutorials/kubernetes-basics/public/images/module_04_labels.svg"></p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-8">
<p>Label-label dapat dilekatkan pada objek-objek pada waktu pembuatan ataupun setelahnya. Mereka dapat diubah kapanpun. Mari kita ekspos aplikasi kita sekarang dengan sebuah Service dan menerapkan beberapa label.</p>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12">
<a class="btn btn-lg btn-success" href="/id/docs/tutorials/kubernetes-basics/expose/expose-interactive/" role="button">Mulai Tutorial Interaktif<span class="btn__next"></span></a>
</div>
</div>
</main>
</div>
</body>
</html>