Home Mobile Pengenalan Kubernetes dan Langkah-langkah Build, Push, dan Run Container dengan Kubernetes

Pengenalan Kubernetes dan Langkah-langkah Build, Push, dan Run Container dengan Kubernetes

0

Kubernetes adalah sistem manajemen orkestrasi open-source yang digunakan untuk otomatisasi deployment, skalabilitas, dan manajemen aplikasi kontainer. Kubernetes menyediakan cara untuk mengelola dan menyelaraskan kontainer Docker di lingkungan yang besar dan dinamis.

Mengenal Kubernetes

  1. Node dan Cluster:
    • Kubernetes bekerja dengan konsep node, yang bisa berupa mesin fisik atau virtual.
    • Node-node ini dikelompokkan ke dalam sebuah cluster yang dikelola oleh master node.
  2. Master Node:
    • Master node bertanggung jawab atas manajemen cluster dan mengatur kerja node-node lainnya.
  3. Pod:
    • Unit dasar dalam Kubernetes.
    • Pod dapat berisi satu atau beberapa kontainer yang berbagi sumber daya dan jaringan.
  4. Service:
    • Cara untuk mengekspos aplikasi ke luar cluster atau di antara pod di dalam cluster.

Langkah-langkah Build, Push, dan Run Container dengan Kubernetes

1. Persiapkan Aplikasi dan Dockerfile:

  • Buat aplikasi sederhana dan buat Dockerfile yang mendefinisikan cara menjalankan aplikasi tersebut dalam container.
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

2. Build Image:

  • Gunakan perintah docker build untuk membangun image dari Dockerfile.
docker build -t nama_pengguna/nama_aplikasi:tag .

3. Push Image ke Registry:

  • Note : Pastikan ketika mau push image ke registry di beri tag dlu image localnya sesuai dengan repository misalnya fadhellya/app:1.0 kemudian baru di push
  • Upload image ke Docker Hub atau registry lainnya.
docker push nama_pengguna/nama_aplikasi:tag

4. Konfigurasi Kubernetes Deployment:

  • Buat file YAML untuk Deployment.
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nama-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nama-aplikasi
  template:
    metadata:
      labels:
        app: nama-aplikasi
    spec:
      containers:
      - name: nama-container
        image: nama_pengguna/nama_aplikasi:tag
        ports:
        - containerPort: 3000

5. Deploy Aplikasi:

  • Gunakan perintah kubectl apply untuk menerapkan konfigurasi deployment.
kubectl apply -f nama_file.yaml

6. Expose Aplikasi melalui Service:

  • Buat file YAML untuk Service.
apiVersion: v1
kind: Service
metadata:
  name: nama-service
spec:
  selector:
    app: nama-aplikasi
  ports:
    - protocol: TCP
      port: 80
      targetPort: 3000
  type: LoadBalancer

7. Expose Aplikasi:

  • Gunakan perintah kubectl apply untuk menerapkan konfigurasi service.
kubectl apply -f nama_file.yaml

8. Cek Status Aplikasi:

  • Gunakan perintah kubectl get untuk melihat status pod dan service.
kubectl get pods kubectl get services

9. Akses Aplikasi:

  • Dapatkan alamat IP atau URL yang diberikan oleh LoadBalancer untuk mengakses aplikasi.