Langsung ke konten utama

Postingan

Menampilkan postingan dari November, 2024

Day 91 : Cluster IP dalam kubernetes

ClusterIP adalah salah satu jenis Service yang tersedia di Kubernetes, digunakan untuk memungkinkan komunikasi antar-pod di dalam cluster Kubernetes. Service ini membuat alamat IP virtual (disebut Cluster IP ) yang hanya dapat diakses dari dalam cluster. Ini berguna untuk menghubungkan aplikasi atau layanan backend yang berjalan di pod-pod Kubernetes. Cara Kerja ClusterIP Mendefinisikan ClusterIP : Ketika Anda membuat Service dengan jenis ClusterIP , Kubernetes akan secara otomatis menetapkan sebuah IP virtual dari range IP yang telah didefinisikan di konfigurasi cluster. Service ini bertindak sebagai load balancer internal yang mendistribusikan lalu lintas ke pod-pod yang cocok dengan selector . Resolusi DNS : ClusterIP juga terdaftar dalam DNS internal Kubernetes. Anda dapat mengakses Service melalui nama DNS-nya (biasanya dalam format <nama-service>.<namespace>.svc.cluster.local ). Seleksi Pod dengan Label : ClusterIP menggunakan selector untuk menentukan pod mana yang...

Day 90 : Daemonset dalam Kubernetes

Halo semuanya! Hari ini, di hari ke-90 dari perjalanan saya belajar DevOps, saya akan melanjutkan eksplorasi di dunia Kubernetes. Setelah kemarin menulis tentang ReplicaSet , kali ini saya ingin mengajak kalian mengenal lebih dekat dengan salah satu komponen penting di Kubernetes, yaitu DaemonSet . Apa sih sebenarnya DaemonSet itu, dan kenapa ia begitu penting dalam pengelolaan cluster Kubernetes?  Apa itu DaemonSet? Bayangkan kalian memiliki sebuah cluster Kubernetes yang terdiri dari banyak node (server). Di setiap node, kalian ingin menjalankan satu aplikasi atau proses tertentu, seperti log collector , monitoring agent , atau network proxy . Tugas inilah yang diselesaikan oleh DaemonSet . DaemonSet adalah salah satu tipe objek dalam Kubernetes yang memastikan bahwa setiap node di cluster menjalankan exactly one instance dari pod yang ditentukan. Bahkan, jika ada node baru yang ditambahkan ke cluster, Kubernetes akan secara otomatis membuatkan pod baru berdasarkan konfiguras...

Day 89 : Membuat replicaset

Pada hari ke- 87 , saya telah menulis apa itu ReplicaSet dan Deployment. Untuk hari ke-89 ini, saya akan melanjutkan dengan membahas cara membuat ReplicaSet menggunakan Kubernetes, serta menjelaskan secara detail langkah-langkahnya, termasuk implementasi di VSCode. Tulisan ini juga dilengkapi dengan pemahaman mendalam terkait program YAML yang digunakan. Contoh Program ReplicaSet Di bawah ini adalah file YAML sederhana untuk membuat ReplicaSet bernama nginx-diaz dengan empat replika Pod yang menjalankan image nginx . apiVersion : apps/v1 kind : ReplicaSet metadata :   name : nginx-diaz spec :   replicas : 4   selector :     matchLabels :       app : nginx   template :     metadata :       name : nginx       labels :         app : nginx     spec :       containers :         - name : nginx           image : nginx ...

Day 88 : Service dalam kubernetes

Dalam ekosistem Kubernetes, salah satu komponen yang tidak boleh dilewatkan adalah Service . Service menjadi elemen penting yang memungkinkan aplikasi dalam kluster Kubernetes untuk berkomunikasi satu sama lain dengan cara yang sederhana dan efisien. Tanpa service , pengelolaan komunikasi antar- pod dalam kluster akan menjadi tugas yang sangat rumit, terutama dalam skenario skala besar. Namun, apa sebenarnya service itu? Mengapa ia menjadi begitu penting dalam Kubernetes? Dan, ada berapa jenis service yang bisa kita gunakan? Mari kita bahas lebih dalam. Apa Itu Service dalam Kubernetes? Secara sederhana, service dalam Kubernetes adalah abstraksi yang mendefinisikan satu set pod logis dan menyediakan cara yang konsisten untuk mengaksesnya. Hal ini menjadi penting karena pod dalam Kubernetes bersifat dinamis; mereka dapat di- create , di- destroy , atau berpindah-pindah antar- node kapan saja. Jika aplikasi harus terus-menerus mencari tahu lokasi pod tertentu, ini akan menjadi ...

Day 87 : Apa Itu Deployment dan ReplicaSet di Kubernetes?

 Dalam lanjutan pembelajaran DevOps saya di materi Kubernetes, saya sudah mempelajari topik tentang Deployment dan ReplicaSet. Di tulisan kali ini, saya akan membahas apa itu Deployment dan ReplicaSet, serta bagaimana kedua hal ini bekerja dalam pengelolaan aplikasi di Kubernetes. Apa Itu Deployment? Deployment di Kubernetes adalah objek yang membantu kita mengelola aplikasi atau layanan dalam cluster. Dengan Deployment, kita bisa dengan mudah memperbarui, memulihkan, atau menskalakan aplikasi tanpa mengganggu layanan yang sedang berjalan. Deployment mengatur jumlah pod yang sedang berjalan, jadi kita bisa pastikan aplikasi tetap berjalan dengan baik. Beberapa hal yang bisa dilakukan dengan Deployment: Update Aplikasi : Ketika ada pembaruan, Deployment memungkinkan kita untuk melakukan update bertahap tanpa downtime. Rollback : Kalau setelah update ada masalah, kita bisa dengan mudah kembali ke versi sebelumnya. Scaling : Kita bisa menambah atau mengurangi jumlah pod berdasarkan ke...

Day 86 : Tips install live server di vscode

Hari ini, saya sedang menikmati waktu belajar Kubernetes melalui video di YouTube. Namun, saat saya menjelajahi beberapa video lain, saya menemukan satu yang sangat menarik. Judulnya adalah ASMR Programming  Tanpa berpikir panjang, saya langsung memutuskan untuk menontonnya dan mencoba mengikuti langkah-langkahnya. Selama menonton, saya mengikuti setiap instruksi dengan hati-hati, mulai dari menulis kode HTML untuk mendesain tampilan game, hingga menambahkan logika JavaScript untuk membuat game berjalan. Setelah selesai menulis beberapa baris kode, saya ingin segera melihat hasilnya di browser. Namun, begitu saya mengklik kanan pada file HTML dan mencoba memilih opsi untuk membuka dengan browser, saya merasa ada yang aneh. Ternyata, saya tidak melihat opsi untuk membuka file dengan live server. Setelah sedikit berpikir, saya baru sadar bahwa saya belum menginstal Live Server di editor kode saya. Live Server adalah ekstensi di Visual Studio Code yang memungkinkan kita untuk meliha...

Day 85 : Masalah tombol tab yang tidak berfungsi

Hari ini, saya melanjutkan perjalanan pembelajaran DevOps dengan fokus pada materi Kubernetes. Topik ini sangat menarik karena Kubernetes menawarkan solusi orkestrasi container yang canggih dan efisien, terutama bagi pengembang yang bekerja dengan aplikasi berbasis microservices. Namun, ada sedikit gangguan yang saya alami saat bekerja dengan Visual Studio Code (VSCode), yaitu tombol Tab di editor tidak berfungsi seperti yang seharusnya. Masalah kecil ini cukup mengganggu, terutama saat menulis file YAML yang membutuhkan indentasi rapi. YAML sangat sensitif terhadap indentasi, sehingga jika ada kesalahan, kode sering kali tidak dapat dijalankan. Situasi ini membuat saya berpikir untuk berbagi tips dalam menghadapi bug kecil seperti ini di VSCode. Langkah-Langkah Mengatasi Masalah Tab di VSCode Periksa Pengaturan Tab di VSCode Masalah tombol Tab sering kali berkaitan dengan konfigurasi di editor. Saya membuka menu Settings ( Ctrl+, ) dan memeriksa pengaturan editor.tabCompletion . Pen...

Day 84 : Membuat pod dalam kubernetes

Setelah sebelumnya berhasil menginstal Kubernetes di Docker Desktop, kali ini kita akan membahas langkah-langkah membuat Pod di Kubernetes. Namun, sebelum itu, mari kita pahami dulu apa sebenarnya yang dimaksud dengan Pod. Apa Itu Pod? Pod adalah unit terkecil dalam Kubernetes yang merepresentasikan aplikasi yang berjalan. Pod berisi satu atau lebih container (seperti container Docker) yang berbagi sumber daya seperti jaringan, penyimpanan, dan konfigurasi. Jika dianalogikan, Pod adalah wadah atau rumah bagi container. Dalam sebuah Pod, semua container dapat saling berkomunikasi dengan mudah dan berbagi resource. Mengapa Pod Penting? Menjalankan Aplikasi : Pod menjadi dasar untuk menjalankan aplikasi berbasis container di Kubernetes. Mendukung Komunikasi Antar Container : Pod dapat menjalankan beberapa container yang saling melengkapi, seperti aplikasi utama dan pengelola log. Mempermudah Orkestrasi : Kubernetes dapat mengontrol replikasi, pembaruan, dan pemulihan container melalui Po...

Day 83 : How to Install Kubernetes on Localhost Using Docker Desktop

Hari ini, pembelajaran DevOps saya telah sampai pada materi Kubernetes . Sebelum melanjutkan ke tahap praktek, penting untuk memahami apa itu Kubernetes dan fungsinya. Kubernetes, sering disebut K8s, adalah platform orkestrasi container yang membantu mengelola aplikasi berbasis container. Bayangkan Anda memiliki banyak aplikasi berjalan di container, tersebar di berbagai server. Mengelola container secara manual tentu rumit, terutama jika ada kebutuhan untuk skalabilitas, load balancing, atau menangani kegagalan. Kubernetes hadir untuk mengatasi tantangan ini dengan cara mengotomatiskan manajemen container. Fungsi Kubernetes: Orkestrasi Container: Mengatur dan menjalankan container sehingga aplikasi berjalan secara efisien. Autoscaling: Menyesuaikan jumlah container secara dinamis berdasarkan kebutuhan trafik. Load Balancing: Membagi beban secara merata di antara container aktif. Deployment yang Mudah: Memungkinkan proses deployment aplikasi otomatis dan mendukung rollback jika ada...

Day 82 : Membuat image dengan bahasa pemrograman golang

Hari ini, saya melanjutkan perjalanan belajar Docker dengan memanfaatkan Visual Studio Code (VSCode), editor favorit saya. Fokus utama saya adalah memahami cara membuat Docker image menggunakan alur kerja yang terintegrasi dengan VSCode. Proses ini tidak hanya efisien tetapi juga menyenangkan karena VSCode memiliki ekosistem yang kaya, termasuk berbagai ekstensi pendukung yang mempermudah pekerjaan. Mengapa Menggunakan VSCode untuk Docker? VSCode menyediakan lingkungan pengembangan yang lengkap dengan berbagai fitur, seperti: Docker Extension : Mempermudah pengelolaan image, container, dan jaringan Docker langsung dari editor. Terminal Terintegrasi : Menjalankan perintah Docker langsung dari VSCode tanpa perlu beralih aplikasi. Debugging Tools : Membantu melacak masalah aplikasi yang berjalan di dalam container, terutama bagi pengembang Golang. Dengan semua keunggulan ini, VSCode menjadi alat yang sangat mendukung dalam pengembangan berbasis Docker. Langkah-langkah Membuat Docker Image...

Day 81: Mengubungkan 2 container dengan network

Pada hari ke-81 ini, saya melanjutkan pembahasan dari konsep jaringan di Docker yang sudah dibahas kemarin. Jika di hari ke-80 saya menjelaskan cara membuat network dalam Docker, hari ini saya akan menjelaskan cara menghubungkan container satu dengan container lainnya menggunakan network tersebut. Dengan memahami langkah-langkah ini, kita bisa membangun aplikasi yang terdiri dari beberapa container yang saling terhubung dengan mudah dan aman tanpa perlu mengekspos port ke host. Docker network adalah salah satu fitur paling kuat dalam Docker. Dengan network ini, kita bisa menghubungkan beberapa container sehingga mereka bisa saling berkomunikasi dalam lingkungan yang aman dan terisolasi. Bayangkan saja, Anda memiliki aplikasi yang menggunakan berbagai layanan, misalnya aplikasi backend, database, dan cache. Dengan Docker network, kita bisa membuat mereka berkomunikasi tanpa konflik atau masalah keamanan. Langkah-Langkah Menghubungkan Container Menggunakan Network 1. Membuat Docker Netwo...

Day 80 : Membuat network dalam docker

Pada hari ini, kita akan mendalami konsep network dalam Docker dan bagaimana cara membuat network untuk menghubungkan container atau mengisolasi mereka sesuai kebutuhan aplikasi. Docker network memungkinkan kita mengatur pola komunikasi yang efektif antara container-container dalam lingkungan yang aman dan terisolasi. Docker menyediakan tiga jenis network utama, yaitu host , none , dan bridge , yang masing-masing memiliki fungsi dan kegunaan khusus. Mari kita bahas secara rinci mengenai network dalam Docker dan fungsi dari setiap jenis network. Pengertian Network dalam Docker Docker network adalah mekanisme yang memungkinkan container untuk berkomunikasi satu sama lain atau dengan jaringan eksternal, termasuk jaringan host. Dengan adanya jaringan dalam Docker, kita bisa menghubungkan container secara fleksibel di dalam satu host atau beberapa host. Docker mendukung beberapa jenis jaringan yang dapat dipilih dan disesuaikan dengan kebutuhan aplikasi, baik untuk keamanan, performa, ata...

Day 79 : Command dasar Docker

Pada hari ke-79 ini, Anda kembali mendalami Docker dari dasar untuk memahami lebih dalam konsep, fungsi, dan perintah-perintah dasarnya. Mempelajari ulang Docker akan sangat membantu, terutama jika nantinya Anda membutuhkan referensi cepat tentang command-command Docker yang sering digunakan. Apa Itu Docker? Docker adalah platform open-source yang memungkinkan pengembang untuk mengotomatiskan penyebaran aplikasi dalam bentuk "container." Container adalah lingkungan yang ringan dan portabel, berisi semua yang diperlukan aplikasi agar bisa berjalan dari kode hingga library dan dependensi lainnya. Berbeda dengan virtual machine (VM) yang membutuhkan sistem operasi terpisah, Docker container berbagi kernel OS yang sama, menjadikannya lebih cepat dan efisien. Mengapa Menggunakan Docker? Docker memungkinkan pengembang untuk membangun, mengemas, dan menjalankan aplikasi di lingkungan yang konsisten, tidak tergantung pada OS atau pengaturan lainnya. Beberapa alasan utama menggunakan ...

Day 78 : Fitur scheduled job dalam jenkins

 Penjadwalan otomatis di Jenkins, atau Build Triggers , adalah fitur yang memungkinkan kita mengatur job agar berjalan sesuai jadwal yang ditentukan, tanpa perlu menjalankannya secara manual. Fitur ini sangat penting bagi tim pengembang dan DevOps, karena membantu menghemat waktu dan memastikan build selalu up-to-date, mendukung alur Continuous Integration (CI) dengan lebih baik. Dengan Build Triggers, Jenkins dapat menjalankan job secara berkala atau memeriksa perubahan di kode sumber dan melakukan build otomatis saat ada perubahan. Berikut adalah panduan langkah demi langkah untuk mengatur penjadwalan otomatis di Jenkins, baik berdasarkan waktu tertentu maupun berdasarkan perubahan kode: Langkah-langkah Mengatur Penjadwalan Build Otomatis di Jenkins Masuk ke Jenkins dan Pilih Job yang Akan Dijadwalkan Buka Jenkins melalui browser dan login dengan akun Anda. Navigasikan ke job yang ingin Anda atur penjadwalannya. Jika belum memiliki job, buat job baru dengan mengklik New Item dan...

Day 77 : Cara instalasi Jenkins di ubuntu 20.04

 Sebagai bagian dari perjalanan saya dalam pembelajaran DevOps, saya sudah sampai di materi Jenkins, salah satu alat penting dalam dunia pengembangan perangkat lunak. Artikel ini akan membahas pengertian Jenkins serta panduan langkah demi langkah cara menginstalnya di Ubuntu 20.04. Apa Itu Jenkins? Jenkins adalah alat otomatisasi open-source yang dirancang untuk membantu tim pengembangan perangkat lunak melakukan integrasi berkelanjutan (CI) dan pengiriman berkelanjutan (CD). Dalam praktik DevOps, Jenkins memungkinkan proses pembangunan, pengujian, dan penerapan aplikasi dapat berjalan secara otomatis, cepat, dan konsisten. Dengan menggunakan Jenkins, proses manual yang rumit dan memakan waktu dapat diotomatisasi, yang pada akhirnya menghemat waktu dan meningkatkan kualitas perangkat lunak. Jenkins memiliki fitur seperti sistem manajemen plug-in yang luas, yang memungkinkannya terintegrasi dengan hampir semua alat pengembangan yang ada, mulai dari kontrol versi (Git) hingga platfor...

Day 76 : Projek Akhir : Intalasi email server menggunakan zimbra collaboration (Daffodil, versi 10) pada OS ubuntu 20.04

Hari ke-75 PKL di PT Excellent, hari ini saya akan menulis panduan instalasi Zimbra di Ubuntu 20.04 sebagai bagian dari laporan PKL untuk sekolah dan projek akhir. Sebelum itu, mari kita bahas sedikit mengenai apa itu Zimbra. Apa itu Zimbra Mail Server? Zimbra Mail Server adalah solusi manajemen email yang menyediakan layanan email yang kuat dan terpadu, lengkap dengan fitur kolaborasi tambahan. Dengan Zimbra, pengguna tak hanya mendapat layanan email tetapi juga akses ke fitur seperti kalender, kontak, dan pengelolaan tugas. Ini memungkinkan setiap anggota organisasi atau perusahaan untuk berkomunikasi dan berkolaborasi lebih efisien dalam satu platform. Zimbra dirancang untuk memenuhi kebutuhan komunikasi dari berbagai jenis organisasi, mulai dari usaha kecil hingga perusahaan besar, serta lembaga pendidikan. Dengan kapabilitasnya yang fleksibel dan mudah disesuaikan, Zimbra menjadi pilihan tepat untuk meningkatkan produktivitas dan kolaborasi dalam lingkungan profesional. Lanjutkan ...