Traffine I/O

Bahasa Indonesia

2022-07-10

Namespace Kubernetes

Apa itu Namespace dalam Kubernetes

Di Kubernetes, Namespace adalah abstraksi tingkat tinggi yang memungkinkan beberapa virtual cluster ada dalam satu cluster fisik yang sama. Ini adalah mekanisme untuk membagi resource cluster antara beberapa pengguna atau tim. Namespace menyediakan cakupan untuk nama, sehingga lebih mudah mengelola dan mengisolasi resource dalam cluster yang sama.

Tujuan dan Manfaat Namespace

Namespace memiliki berbagai tujuan dalam cluster Kubernetes. Mereka memungkinkan Anda membagi resource, mengelola kontrol akses, dan memberikan cara untuk membagi resource cluster menjadi grup yang diberi nama secara logis. Hal ini sangat berguna ketika sebuah cluster digunakan oleh beberapa tim atau proyek, masing-masing dengan set resource mereka sendiri.

Ada beberapa manfaat dalam menggunakan Namespace. Pertama, mereka dapat membantu mengelola alokasi resource dan penggunaan dalam cluster yang besar. Mereka juga dapat mengisolasi proses, membantu memastikan bahwa proses dalam satu namespace tidak mengganggu proses dalam namespace lainnya. Hal ini sangat berguna dalam lingkungan multi-tenant di mana banyak pengguna atau tim membagi satu cluster Kubernetes.

Membuat Namespace

Memulai Minikube

Sebelum membuat Namespace, pastikan bahwa cluster Kubernetes Anda sedang berjalan. Minikube, sebuah alat yang memungkinkan Anda menjalankan Kubernetes secara lokal, dapat diinisialisasi dengan perintah berikut:

bash
$ minikube start

Setelah menjalankan perintah ini, Minikube akan memulai mesin virtual dan menginstal cluster Kubernetes satu node di dalamnya.

Memeriksa Namespace yang Ada

Sebelum membuat Namespace baru, kita perlu mengidentifikasi namespace yang ada dalam cluster kita. Hal ini dapat dilakukan dengan menjalankan perintah berikut:

bash
$ kubectl get namespace

NAME              STATUS   AGE
default           Active   8h
kube-node-lease   Active   8h
kube-public       Active   8h
kube-system       Active   8h

Menjalankan perintah ini akan menghasilkan daftar semua namespace yang ada dalam cluster Anda.

Membuat Namespace Baru: staging

Setelah kita mengetahui namespace yang sudah ada, sekarang kita dapat membuat namespace baru. Ini dapat dicapai dengan perintah kubectl create namespace diikuti dengan nama yang diinginkan untuk namespace tersebut. Untuk membuat namespace bernama staging, gunakan perintah berikut:

bash
$ kubectl create namespace staging

namespace/staging created

Perintah di atas akan membuat Namespace baru dengan nama staging di dalam cluster Anda.

Mendeploy Aplikasi di dalam Namespace

Menjalankan Aplikasi

Setelah memiliki Namespace, kita dapat mendeploy aplikasi di dalam Namespace tersebut. Dalam contoh ini, kita akan mendeploy aplikasi contoh yang disebut helloworld.

Pendeployan dapat dilakukan menggunakan perintah kubectl run, seperti yang ditunjukkan di bawah ini:

bash
$ kubectl run \
    --image gcr.io/google-samples/hello-app:1.0 \
    --restart Never \
    --namespace staging \
    helloworld

pod/helloworld created

Menjalankan perintah ini akan memulai pendeployan baru dari aplikasi 'helloworld' di dalam Namespace staging.

Memverifikasi Pendeployan di staging

Perintah berikut akan mencantumkan semua pod yang sedang berjalan di dalam Namespace staging, mengkonfirmasi apakah aplikasi helloworld telah berhasil didapatkan.

bash
$ kubectl get pod --namespace staging

NAME         READY   STATUS    RESTARTS   AGE
helloworld   1/1     Running   0          14s

Namespace default tidak menunjukkan apa pun karena Pod belum dibuat.

bash
$ kubectl get pod --namespace default

No resources found in default namespace.

Menghapus Namespace

Ketika suatu namespace tidak lagi diperlukan, Anda dapat menghapusnya. Di Kubernetes, Anda dapat melakukannya menggunakan perintah kubectl delete namespace diikuti dengan nama namespace. Misalnya, untuk menghapus namespace staging, gunakan perintah berikut:

bash
$ kubectl delete namespace staging

namespace "staging" deleted

Ingatlah, menghapus sebuah namespace juga akan menghapus semua resource di dalam namespace tersebut. Oleh karena itu, pastikan semua data dan aplikasi penting telah dibackup dengan aman atau dipindahkan ke namespace lain sebelum melakukan operasi ini. Setelah namespace staging dihapus, semua Pod yang menjalankan aplikasi helloworld di dalam namespace ini juga akan dihapus.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!