Jenis Service: ClusterIP, NodePort, LoadBalancer
Pelajari berbagai cara untuk membuka akses service di dalam dan di luar cluster Kubernetes.
Jenis Service: ClusterIP, NodePort, LoadBalancer adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 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.
Kebutuhan Eksposur Layanan
Di Kubernetes, Pod bersifat sementara dan memiliki alamat IP yang dinamis. Layanan menyediakan akses jaringan yang stabil ke aplikasi Anda. Namun, bagaimana cara mengeksposnya?
Bergantung pada apakah aplikasi Anda perlu diakses dari dalam atau luar klaster, serta cara aksesnya, Kubernetes menyediakan berbagai jenis Layanan. Mari pelajari tiga jenis utamanya!
ClusterIP: Akses Internal
ClusterIP adalah jenis Layanan bawaan. ClusterIP memberikan alamat IP internal yang stabil untuk Layanan Anda, yang hanya dapat diakses dari dalam klaster Kubernetes.
- Pod dapat menjangkau Pod lain menggunakan ClusterIP dan nama Layanan.
- Jenis ini sangat cocok untuk Layanan backend yang tidak memerlukan eksposur langsung ke luar.
- Anggaplah ini sebagai penyeimbang beban internal untuk Pod Anda.
YAML Layanan ClusterIP
Berikut cara mendefinisikan Layanan bertipe ClusterIP. Perhatikan kolom type: ClusterIP, meskipun kolom ini bersifat opsional karena ClusterIP adalah tipe bawaan.
apiVersion: v1
kind: Service
metadata:
name: my-internal-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIPMengakses Layanan ClusterIP
Setelah diterapkan, Kubernetes secara otomatis menetapkan alamat IP internal unik (ClusterIP) ke Layanan ini. Pod lain kemudian dapat menggunakan nama Layanan (misalnya, my-internal-service) atau alamat IP-nya untuk terhubung.
Layanan DNS Kubernetes menerjemahkan nama Layanan menjadi ClusterIP, sehingga komunikasi internal menjadi mudah dan andal.
NodePort: Akses Eksternal
Bagaimana jika Anda perlu mengakses aplikasi dari luar klaster? Di sinilah NodePort digunakan.
Layanan NodePort mengekspos aplikasi Anda pada porta statis di alamat IP setiap node dalam klaster. Semua lalu lintas yang dikirim ke NodeIP:NodePort akan diarahkan ke Layanan Anda.
- Berguna untuk pengembangan dan penerapan berskala kecil.
- NodePort biasanya berada dalam rentang 30000-32767.
YAML Layanan NodePort
Untuk membuat Layanan NodePort, tetapkan type: NodePort secara eksplisit. Jika Anda tidak menentukan porta, Kubernetes akan memilih porta yang tersedia secara otomatis dalam rentang NodePort.
apiVersion: v1
kind: Service
metadata:
name: my-nodeport-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
nodePort: 30080 # Optional: K8s picks if omitted
type: NodePortTerhubung melalui NodePort
Setelah menerapkan Layanan NodePort, Anda dapat mengakses aplikasi dari luar klaster menggunakan <AnyNodeIP>:<NodePort>.
Misalnya, jika alamat IP sebuah node adalah 192.168.1.100 dan NodePort yang ditetapkan adalah 30080, Anda dapat mengakses aplikasi di http://192.168.1.100:30080.
LoadBalancer: Integrasi Cloud
Untuk lingkungan produksi pada penyedia cloud (AWS, GCP, Azure), jenis Layanan LoadBalancer sering kali lebih disukai. Jenis ini secara otomatis menyediakan penyeimbang beban cloud eksternal.
Penyeimbang beban ini memperoleh alamat IP publik dan mendistribusikan lalu lintas eksternal ke Pod Layanan Anda. Penyeimbang ini menangani semua perutean yang rumit untuk Anda.
YAML Layanan LoadBalancer
Mendefinisikan Layanan LoadBalancer cukup mudah. Penyedia cloud Anda akan menangani proses penyediaan penyeimbang beban eksternal.
apiVersion: v1
kind: Service
metadata:
name: my-loadbalancer-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancerAkses Eksternal dengan LoadBalancer
Setelah diterapkan, penyedia cloud Anda akan membuat penyeimbang beban khusus dan menetapkan alamat IP eksternal atau nama host. Anda kemudian dapat menggunakan titik akhir publik ini untuk mengakses aplikasi.
Dengan cara ini, Anda memperoleh metode yang tangguh, dapat diskalakan, dan memiliki ketersediaan tinggi untuk mengekspos Layanan ke internet.
Pemeriksaan Singkat: Jenis Layanan
Jenis Layanan Kubernetes mana yang memungkinkan akses eksternal langsung ke aplikasi dari luar klaster?
Ringkasan: Memilih Layanan
Anda telah mempelajari tiga jenis Layanan Kubernetes utama:
- ClusterIP: Untuk akses internal saja di dalam klaster.
- NodePort: Mengekspos Layanan pada porta statis di alamat IP setiap node sehingga memungkinkan akses eksternal.
- LoadBalancer: Terintegrasi dengan penyedia cloud untuk menyediakan penyeimbang beban eksternal dengan IP publik.
Pilih jenis yang tepat berdasarkan kebutuhan eksposur aplikasi dan lingkungan penerapan Anda!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Jenis Service: ClusterIP, NodePort, LoadBalancer” gratis?
Ya — teks lengkap “Jenis Service: ClusterIP, NodePort, LoadBalancer” 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 “Jenis Service: ClusterIP, NodePort, LoadBalancer”?
Pelajari berbagai cara untuk membuka akses service di dalam dan di luar cluster Kubernetes. 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 2 dari 4.
Berapa lama pelajaran “Jenis Service: ClusterIP, NodePort, LoadBalancer” 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
- Membuka Akses Aplikasi dengan Service
- Jenis Service: ClusterIP, NodePort, LoadBalancer
- Ingress untuk Akses Eksternal
- DNS dan Penemuan Layanan