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
- Akun cloud gratis
- Unduh dan instal Node.js dan npm
- Akun GitHub, kami akan menggunakan aplikasi catatan sampel kami
- Akses cluster Kubernetes, Anda dapat menggunakan Minikube atau Kind untuk membuat cluster node tunggal
Tutorial
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.
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.
Tambahkan nama ke proyek, simpan dan lanjutkan.
Pilih modul 'Pengiriman Berkelanjutan' dan mulai paket gratis Anda.
Buka modul dan mulai perjalanan penerapan Anda.
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'.
Hubungkan ke lingkungan Kubernetes Anda dengan Delegate. Delegate adalah layanan yang berjalan pada infrastruktur Anda untuk menjalankan tugas atas nama platform 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.yaml
di jalur yang benar tempat Anda mengunduh berkas YAML delegasi Anda.
Pastikan instalasi Delegate Anda berhasil.
Berikutnya, konfigurasikan layanan dan tambahkan rincian manifes.
Setelah menambahkan semua rincian, klik 'Buat Alur'.
Periksa apakah semua koneksi berhasil. Setelah semuanya tampak baik-baik saja, klik 'Jalankan Pipeline'.
Klik 'Jalankan Pipeline' untuk melihat penerapan yang berhasil.
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.
Klik 'Tambahkan Pemicu Baru' dan pilih 'GitHub'.
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.
Anda dapat melihat pemicu yang baru Anda buat di tab 'Pemicu'.
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.
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.
Masalah komunitas
Tidak ada komentar:
Posting Komentar