--- title: Halo Minikube content_type: tutorial weight: 5 menu: main: title: "Mulai" weight: 10 post: >
Siap untuk mengotori tanganmu? Yuk kita buat klaster Kubernetes sederhana yang menjalankan Node.js aplikasi "Halo Dunia".
card: name: tutorials weight: 10 --- Tutorial ini menunjukkan bagaimana caranya menjalankan aplikasi sederhana Node.js Halo Dunia di Kubernetes, dengan [Minikube](/docs/getting-started-guides/minikube) dan Katacoda. Katacoda menyediakan environment Kubernetes secara gratis di dalam browser. {{< note >}} Kamupun bisa mengikuti tutorial ini kalau sudah instalasi [Minikube di lokal](/id/docs/tasks/tools/install-minikube/) kamu. {{< /note >}} ## {{% heading "objectives" %}} * Deploy aplikasi halo dunia pada Minikube. * Jalankan aplikasinya. * Melihat log aplikasi. ## {{% heading "prerequisites" %}} Tutorial ini menyediakan image Kontainer yang dibuat melalui barisan kode berikut: {{< codenew language="js" file="minikube/server.js" >}} {{< codenew language="conf" file="minikube/Dockerfile" >}} Untuk info lebih lanjut tentang perintah `docker build`, baca [dokumentasi Docker](https://docs.docker.com/engine/reference/commandline/build/). ## Membuat sebuah klaster Minikube 1. Tekan **Launch Terminal** {{< kat-button >}} {{< note >}}Kalau kamu memilih instalasi Minikube secara lokal, jalankan `minikube start`.{{< /note >}} 2. Buka dasbor Kubernetes di dalam browser: ```shell minikube dashboard ``` 3. Hanya untuk environment Katacoda: Di layar terminal paling atas, tekan tombol plus, lalu lanjut tekan **Select port to view on Host 1**. 4. Hanya untuk environment Katacoda: Ketik `30000`, lalu lanjut tekan **Display Port**. ## Membuat sebuah Deployment Sebuah Kubernetes [*Pod*](/id/docs/concepts/workloads/pods/pod/) adalah kumpulan dari satu atau banyak Kontainer, saling terhubung untuk kebutuhan administrasi dan jaringan. Pod dalam tutorial ini hanya punya satu Kontainer. Sebuah Kubernetes [*Deployment*](/id/docs/concepts/workloads/controllers/deployment/) selalu memeriksa kesehatan Pod kamu dan melakukan restart saat Kontainer di dalam Pod tersebut mati. Deployment adalah cara jitu untuk membuat dan mereplikasi Pod. 1. Gunakan perintah `kubectl create` untuk membuat Deployment yang dapat mengatur Pod. Pod menjalankan Kontainer sesuai dengan image Docker yang telah diberikan. ```shell kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4 ``` 2. Lihat Deployment: ```shell kubectl get deployments ``` Keluaran: ```shell NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE hello-node 1 1 1 1 1m ``` 3. Lihat Pod: ```shell kubectl get pods ``` Keluaran: ```shell NAME READY STATUS RESTARTS AGE hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m ``` 4. Lihat event klaster: ```shell kubectl get events ``` 5. Lihat konfigurasi `kubectl`: ```shell kubectl config view ``` {{< note >}}Untuk info lebih lanjut tentang perintah `kubectl`, lihat [ringkasan kubectl](/docs/user-guide/kubectl-overview/).{{< /note >}} ## Membuat sebuah Servis Secara default, Pod hanya bisa diakses melalui alamat IP internal di dalam klaster Kubernetes. Supaya Kontainer `hello-node` bisa diakses dari luar jaringan virtual Kubernetes, kamu harus ekspos Pod sebagai [*Servis*](/id/docs/concepts/services-networking/service/) Kubernetes. 1. Ekspos Pod pada internet publik menggunakan perintah `kubectl expose`: ```shell kubectl expose deployment hello-node --type=LoadBalancer --port=8080 ``` Tanda `--type=LoadBalancer` menunjukkan bahwa kamu ingin ekspos Servis keluar dari klaster. 2. Lihat Servis yang baru kamu buat: ```shell kubectl get services ``` Keluaran: ```shell NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node LoadBalancer 10.108.144.78