Kamis, 19 September 2024

KUBERNETES-add aplikasi

 

Gambar sampul untuk Menyebarkan Aplikasi di Kubernetes: Panduan Lengkap!
Pavan Belagatti
Pavan Belagatti

Diposting pada • Diperbarui pada

17411

Menyebarkan Aplikasi di Kubernetes: Panduan Lengkap!

Kubernetes adalah platform sumber terbuka untuk mengotomatiskan penyebaran, penskalaan, dan pengelolaan aplikasi yang dikontainerisasi. Ini adalah alat yang populer untuk orkestrasi kontainer dan menyediakan cara untuk mengelola sejumlah besar kontainer sebagai satu unit daripada harus mengelola setiap kontainer secara individual.

Pentingnya Kubernetes

Kubernetes telah menjadi alat penting untuk mengelola dan menerapkan aplikasi modern, dan pentingnya terletak pada kemampuannya untuk menyediakan platform terpadu untuk mengotomatiskan dan meningkatkan skala penerapan, pengelolaan, dan penskalaan aplikasi. Dengan Kubernetes, organisasi dapat mencapai peningkatan efisiensi dan ketangkasan dalam proses pengembangan dan penerapan mereka, yang menghasilkan waktu pemasaran yang lebih cepat dan biaya operasional yang lebih rendah. Kubernetes juga menyediakan skalabilitas tingkat tinggi, yang memungkinkan organisasi untuk meningkatkan skala aplikasi mereka seiring dengan pertumbuhan dan evolusi bisnis mereka dengan mudah.

Selain itu, Kubernetes menawarkan fitur keamanan yang tangguh, yang memastikan bahwa aplikasi terlindungi dari potensi ancaman dan kerentanan. Dengan komunitasnya yang aktif dan ekosistem yang luas, Kubernetes memberi organisasi akses ke berbagai sumber daya, alat, dan layanan yang dapat membantu mereka meningkatkan dan menyempurnakan aplikasi mereka secara terus-menerus. Secara keseluruhan, pentingnya penggunaan Kubernetes terletak pada kemampuannya untuk menyediakan platform yang fleksibel, dapat diskalakan, dan aman untuk mengelola aplikasi modern dan memungkinkan organisasi untuk tetap unggul dalam lanskap digital yang berkembang pesat.

Berikut gambaran dasar tentang cara menggunakan Kubernetes:

  • Siapkan kluster :

Untuk menggunakan Kubernetes, Anda perlu menyiapkan kluster, yaitu serangkaian mesin yang menjalankan bidang kontrol Kubernetes dan kontainer. Anda dapat menyiapkan kluster pada infrastruktur Anda sendiri atau menggunakan penyedia cloud seperti Amazon Web Services (AWS), Google Cloud Platform (GCP), atau Microsoft Azure.

  • Kemas aplikasi Anda ke dalam kontainer :

Untuk menjalankan aplikasi Anda di Kubernetes, Anda perlu mengemasnya ke dalam satu atau beberapa kontainer. Kontainer adalah paket yang dapat dieksekusi secara mandiri yang mencakup semua yang diperlukan untuk menjalankan aplikasi Anda, termasuk kode, runtime, alat sistem, pustaka, dan pengaturan.

  • Tentukan status yang diinginkan dari aplikasi Anda menggunakan manifest :

Kubernetes menggunakan manifest, yaitu file yang menjelaskan status aplikasi yang diinginkan, untuk mengelola penyebaran dan penskalaan kontainer. Manifes menentukan jumlah replika setiap kontainer, cara memperbaruinya, dan cara berkomunikasi satu sama lain.

  • Dorong kode Anda ke platform SCM :

Dorong kode aplikasi Anda ke platform SCM seperti GitHub.

  • Gunakan alat CI/CD untuk mengotomatiskan :

Gunakan platform CI/CD khusus seperti Harness untuk mengotomatiskan penerapan aplikasi Anda. Setelah Anda mengaturnya, selesai; Anda dapat dengan mudah dan sering menerapkan kode aplikasi Anda dalam beberapa bagian setiap kali kode baru dimasukkan ke repositori proyek.

  • Paparkan aplikasinya :

Setelah Anda menerapkan aplikasi, Anda perlu mengekspos aplikasi tersebut ke dunia luar dengan membuat Layanan dengan jenis LoadBalancer atau ExternalName. Hal ini memungkinkan pengguna untuk mengakses aplikasi melalui alamat IP atau nama host yang stabil.

  • Pantau dan kelola aplikasi Anda :

Setelah aplikasi Anda disebarkan, Anda dapat menggunakan alat kubectl untuk memantau status kontainer Anda, membuat perubahan pada status yang diinginkan, dan meningkatkan atau menurunkan skala aplikasi Anda.

Berikut ini adalah langkah-langkah umum untuk menerapkan aplikasi di Kubernetes. Bergantung pada kompleksitas aplikasi, langkah-langkah tambahan mungkin diperlukan, seperti mengonfigurasi penyimpanan, kebijakan jaringan, atau keamanan. Namun, ini akan menjadi titik awal yang baik untuk menerapkan aplikasi Anda di Kubernetes.

Hari ini, kita akan melihat cara mengotomatiskan penerapan aplikasi sederhana pada Kubernetes menggunakan Harness.

Prasyarat

Tutorial

Penerapan Kubernetes

Kami akan menggunakan contoh aplikasi yang sudah ada di repositori GitHub. Kami akan menggunakan kluster Kubernetes untuk menyebarkan aplikasi kami. Selanjutnya, kami akan menggunakan platform CI/CD, Harness, dalam tutorial ini untuk menunjukkan cara mengotomatiskan proses pengiriman perangkat lunak dengan mudah.

Langkah 1: Uji aplikasi sampel secara lokal

Fork dan klon aplikasi catatan sampel

Buka folder aplikasi dengan perintah berikut

cd notes-app-cicd

Instal dependensi dengan perintah berikut

npm install 

Jalankan aplikasi secara lokal untuk melihat apakah aplikasi berfungsi dengan baik

node app.js

Langkah 2: Kontainerisasi aplikasi

Anda dapat melihat Dockerfile di repositori aplikasi contoh.

FROM node:14-alpine

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 3000

CMD [ "npm", "start" ]

Gunakan perintah berikut untuk membuat, memberi tag, dan mengunggah gambar ke registri kontainer pilihan Anda. Kami akan mengunggahnya ke Docker Hub dalam tutorial ini.

Untuk Mac M1, gunakan perintah berikut

docker buildx build --platform=linux/arm64 --platform=linux/amd64  -t docker.io/$your docker hub user name/$image name:$tag name --push  -f ./Dockerfile .

Untuk selain Mac M1, gunakan perintah di bawah ini untuk membangun dan mendorong gambar,

docker build -t $your docker hub user name/$image name .
docker push $your docker hub user name/$image name .

Langkah 3: Buat atau dapatkan akses ke kluster Kubernetes

Pastikan Anda memiliki akses ke kluster Kubernetes dari penyedia cloud mana pun. Anda bahkan dapat menggunakan Minikube atau Kind untuk membuat kluster. Dalam tutorial ini, kita akan menggunakan kluster Kubernetes dari Google Cloud (GCP)

Saya sudah punya akun di Google Cloud, jadi membuat klaster akan mudah.

Langkah 4: Pastikan file manifest Kubernetes rapi dan bersih

Anda memerlukan file deployment yaml dan service yaml untuk menyebarkan dan mengekspos aplikasi Anda. Pastikan kedua file dikonfigurasi dengan benar.

Anda dapat melihat bahwa kami memiliki file deployment.yaml dan service.yaml yang sudah ada di repositori aplikasi contoh.

Di bawah ini adalah berkas deployment.yaml kami.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: notes-app-deployment
  labels:
    app: notes-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: notes-app
  template:
    metadata:
      labels:
        app: notes-app
    spec:
      containers:
      - name: notes-app-deployment
        image: pavansa/notes-app
        resources:
          requests:
            cpu: "100m"
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3000

Di bawah ini adalah file service.yaml kami

apiVersion: v1
# Indicates this as a service
kind: Service
metadata:
 # Service name
 name: notes-app-deployment
spec:
 selector:
   # Selector for Pods
   app: notes-app
 ports:
   # Port Map
 - port: 80
   targetPort: 3000
   protocol: TCP
 type: LoadBalancer

Terapkan file manifest dengan perintah berikut. Dimulai dengan deployment lalu file yaml layanan.

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Verifikasi apakah pod berjalan dengan benar seperti yang diharapkan setelah menerapkan perintah kubectl apply.

kubectl get pods

Anda seharusnya melihat pod dan statusnya.
pod lari

Langkah 5: Mari mengotomatiskan penyebaran menggunakan Harness

Anda memerlukan alat CI/CD untuk mengotomatiskan proses integrasi dan penerapan berkelanjutan. Harness dikenal karena inovasi dan kesederhanaannya dalam bidang CI/CD. Oleh karena itu, kami akan menggunakan platform ini untuk menyiapkan penerapan berkelanjutan otomatis aplikasi kami.

Setelah Anda mendaftar dan memverifikasi akun, Anda akan diberikan pesan selamat datang dan pengaturan pembuatan proyek. Lanjutkan untuk membuat proyek.
membuat proyek

Tambahkan nama ke proyek, simpan dan lanjutkan.
tentang proyek

Pilih modul 'Pengiriman Berkelanjutan' dan mulai paket gratis Anda.
Modul CD Harness

Buka modul dan mulai perjalanan penerapan Anda.
jalur penyebaran

Pengaturannya sangat mudah, seperti ditunjukkan pada gambar di atas; Anda dapat menerapkan aplikasi hanya dalam empat langkah sederhana.

Pilih jenis penerapan Anda, yaitu Kubernetes, lalu klik 'Hubungkan ke Lingkungan'.
jenis penyebaran

Hubungkan ke lingkungan Kubernetes Anda dengan Delegate. Delegate adalah layanan yang berjalan pada infrastruktur Anda untuk menjalankan tugas atas nama platform Harness.
Hubungkan Harness

Unduh file Delegate YAML dan instal pada kluster Kubernetes Anda dengan menerapkan perintah kubectl apply seperti yang dinyatakan pada langkah di atas.

Pastikan untuk menjalankan perintah kubectl apply -f harness-delegate.yamldi jalur yang benar tempat Anda mengunduh berkas YAML delegasi Anda.

Pastikan instalasi Delegate Anda berhasil.

Berikutnya, konfigurasikan layanan dan tambahkan rincian manifes.
konfigurasikan layanan

Setelah menambahkan semua rincian, klik 'Buat Alur'.
membuat jalur pipa

Periksa apakah semua koneksi berhasil. Setelah semuanya tampak baik-baik saja, klik 'Jalankan Pipeline'.
jalankan cd pipeline

Klik 'Jalankan Pipeline' untuk melihat penerapan yang berhasil.
Jalur Harness yang Sukses

Selamat! Kami berhasil menerapkan aplikasi kami di Kubernetes menggunakan Harness. Sekarang, kami dapat dengan mudah mengotomatiskan penerapan menggunakan modul Harness CD.

Anda dapat mengotomatiskan proses CD dengan menambahkan Pemicu. Saat orang yang berwenang mengirim kode baru ke repositori Anda, alur kerja Anda akan terpicu dan melakukan CD. Mari kita lihat cara melakukannya.

Di studio alur kerja, Anda dapat mengeklik tab 'Pemicu' dan menambahkan pemicu yang diinginkan.
pemicu baru

semua terkait pemicu

Klik 'Tambahkan Pemicu Baru' dan pilih 'GitHub'.
daftar pemicu

Tambahkan detail yang diperlukan dan lanjutkan. Seperti yang Anda lihat, kami memilih 'Push' sebagai event kami. Jadi, setiap kali terjadi push yang sah pada repositori kami, pipeline akan terpicu dan berjalan.
pengaturan pemicu

pemicu webhook

Anda dapat melihat pemicu yang baru Anda buat di tab 'Pemicu'.
pemicu baru terdaftar

Sekarang, kapan pun orang yang berwenang mengirim perubahan kode ke repositori utama/master Anda, jalur tersebut akan otomatis terpicu.

Jika Anda belum melihat dua artikel saya lainnya tentang integrasi berkelanjutan dan pengujian otomatis, silakan lihat.

👋 Sebelum kamu pergi

Berikanlah bantuan besar pada karier Anda. Bergabunglah dengan DEV.(Situs web tempat Anda berada saat ini)

Hanya butuh satu menit , gratis, dan bermanfaat bagi karier Anda.

Oke ayo berangkat

Masalah komunitas

Tidak ada komentar:

Posting Komentar