0Pricing
DevOps Bootcamp · Pelajaran

Menerapkan ke Kubernetes dengan Actions

Siapkan Penerapan Berkelanjutan ke klaster Kubernetes dan kelola penerapan serta layanan langsung dari GitHub Actions.

Menerapkan ke Kubernetes dengan Actions adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Pengantar CD K8s dengan Actions

Selamat datang! Dalam pelajaran ini, Anda akan mempelajari cara menyiapkan Continuous Deployment (CD) ke cluster Kubernetes menggunakan GitHub Actions.

Dengan mengotomatiskan deployment, perubahan aplikasi Anda dapat segera digunakan secara cepat dan andal, tanpa langkah manual.

Kita akan membahas autentikasi, penerapan manifest Kubernetes, dan pengelolaan pembaruan.

Dasar-Dasar Deployment K8s

Sebelum melakukan deployment, mari kita mengingat kembali dua resource inti Kubernetes:

  • Deployment: Resource ini mengelola Pod aplikasi Anda dan memastikan jumlah replika yang diinginkan selalu berjalan. Resource ini juga menangani pembaruan dan pengembalian ke versi sebelumnya.
  • Service: Resource ini menentukan cara mengakses aplikasi Anda, misalnya secara internal di dalam cluster atau secara eksternal melalui LoadBalancer.

Tujuan kita adalah menerapkan file YAML yang mendefinisikan resource tersebut ke cluster dari GitHub Actions.

Mengautentikasi Actions ke K8s

Untuk melakukan deployment, alur kerja GitHub Actions Anda perlu berkomunikasi dengan server API cluster Kubernetes.

Hal ini memerlukan autentikasi. Cara standar untuk mengautentikasi ke Kubernetes adalah menggunakan file kubeconfig.

Kita perlu menyediakan isi file ini dengan aman kepada runner alur kerja.

Mengamankan Kubeconfig

File kubeconfig berisi informasi sensitif seperti endpoint cluster dan kredensial pengguna. File ini harus dirahasiakan!

GitHub Actions menyediakan Secrets untuk tujuan ini. Anda akan menyimpan isi file kubeconfig sebagai secret repositori.

Bagaimana cara mendapatkan kubeconfig? Caranya bergantung pada penyedia K8s Anda, misalnya aws eks update-kubeconfig atau gcloud container clusters get-credentials.

Menyiapkan Konteks K8s

Setelah kubeconfig disimpan sebagai secret, misalnya dengan nama KUBE_CONFIG_DATA, alur kerja Anda dapat menggunakannya.

Praktik yang umum adalah menulis isi secret ke file sementara pada runner, lalu mengatur variabel lingkungan KUBECONFIG agar menunjuk ke file tersebut.

Dengan demikian, kubectl mengetahui lokasi detail koneksi cluster.

Menggunakan `kubectl` dalam Alur Kerja

kubectl adalah alat baris perintah resmi untuk berinteraksi dengan cluster Kubernetes. Runner GitHub Actions telah dilengkapi kubectl.

Setelah menyiapkan kubeconfig, Anda dapat menjalankan perintah kubectl apa pun dalam langkah-langkah alur kerja Anda.

Mari kita lihat contoh dasar:

name: K8s Setup Test

on: [workflow_dispatch]

jobs:
  test-kubeconfig:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Kubeconfig
        env:
          KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
        run: |
          mkdir -p ~/.kube
          echo "$KUBE_CONFIG_DATA" > ~/.kube/config
          chmod 600 ~/.kube/config
          echo "KUBECONFIG=$HOME/.kube/config" >> $GITHUB_ENV

      - name: Verify kubectl access
        run: kubectl version --client

Manifest Deployment K8s Sederhana

Berikut adalah manifest Kubernetes dasar untuk Deployment dan Service aplikasi "hello-world". Manifest inilah yang akan kita minta untuk dijalankan oleh Kubernetes.

Contoh ini menggunakan image Nginx sederhana dan mengeksposnya pada port 80.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-app-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello-app
  template:
    metadata:
      labels:
        app: hello-app
    spec:
      containers:
      - name: hello-app
        image: nginx:latest
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: hello-app-service
spec:
  selector:
    app: hello-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

Alur Kerja Deployment Lengkap

Sekarang, mari kita integrasikan langkah deployment ke dalam alur kerja. Setelah membuat dan mendorong image container Anda dari pelajaran sebelumnya, Anda dapat melakukan deployment.

Alur kerja ini mengasumsikan bahwa secret kubeconfig Anda telah diatur dan file manifest, misalnya k8s/deployment.yaml, tersedia di repositori Anda.

name: Deploy to Kubernetes

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Kubeconfig
        env:
          KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
        run: |
          mkdir -p ~/.kube
          echo "$KUBE_CONFIG_DATA" > ~/.kube/config
          chmod 600 ~/.kube/config
          echo "KUBECONFIG=$HOME/.kube/config" >> $GITHUB_ENV

      - name: Deploy application to K8s
        run: kubectl apply -f k8s/deployment.yaml

Memperbarui Aplikasi Anda

Salah satu fitur hebat kubectl apply adalah sifat idempotennya. Jika resource yang didefinisikan dalam YAML Anda sudah ada, kubectl apply akan memperbaruinya, bukan membuat resource baru.

Untuk melakukan deployment versi baru aplikasi, cukup perbarui tag image dalam deployment.yaml, lalu dorong perubahan tersebut. GitHub Actions kemudian akan terpicu, dan Kubernetes akan melakukan pembaruan bergulir, mengganti pod lama dengan pod baru secara bertahap untuk memastikan waktu henti seminimal mungkin.

Pemeriksaan Singkat

Anda telah mempelajari langkah-langkah penting untuk melakukan deployment aplikasi ke Kubernetes menggunakan GitHub Actions.

Manakah dari urutan berikut yang benar untuk langkah-langkah alur kerja GitHub Actions dalam melakukan deployment manifest Kubernetes?

Rangkuman & Langkah Berikutnya

Kerja bagus! Anda telah mempelajari cara menyiapkan Continuous Deployment ke Kubernetes menggunakan GitHub Actions.

  • Kita menyimpan data sensitif kubeconfig di GitHub Secrets.
  • Alur kerja menggunakan secret ini untuk mengonfigurasi kubectl.
  • kubectl apply -f digunakan untuk melakukan deployment atau memperbarui manifest K8s.
  • Kubernetes menangani pembaruan bergulir saat perubahan diterapkan.

Kombinasi yang kuat ini mengotomatiskan deployment Anda sehingga proses pengembangan menjadi lebih lancar dan cepat. Teruslah menjelajahi fitur K8s yang lebih canggih!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menerapkan ke Kubernetes dengan Actions” gratis?

Ya — teks lengkap “Menerapkan ke Kubernetes dengan Actions” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menerapkan ke Kubernetes dengan Actions”?

Siapkan Penerapan Berkelanjutan ke klaster Kubernetes dan kelola penerapan serta layanan langsung dari GitHub Actions. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Menerapkan ke Kubernetes dengan Actions” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membangun Citra Docker dengan Actions
  2. Mengirim Citra ke Registri
  3. Menerapkan ke Kubernetes dengan Actions
  4. Chart Helm dan Manifes Kubernetes dalam CI/CD
← Kembali ke DevOps Bootcamp