kubectl port-forward: Kubernetes Port Forwarding Guide

kubectl port-forward: Kubernetes Port Forwarding Guide
February 22, 2023 No Comments Kubernetes G6k1JiPxqm

Introduction

Perintah tersebut kubectl port-forward  memungkinkan Anda untuk mengakses proses klaster internal Kubernetes di dalam jaringan lokal Anda. Metode ini membantu memecahkan masalah dan menyiapkan layanan secara lokal tanpa memaparkannya.

Kubectl adalah alat baris perintah utama untuk mengelola kluster Kubernetes. Alat ini penting untuk menerapkan aplikasi, mengelola sumber daya klaster, dan membangun kerangka kerja yang kompleks.

Tutorial singkat ini menunjukkan cara menggunakan kubectl port-forward untuk terhubung ke sumber daya kluster Kubernetes.

Prasyarat

  • Kluster Kubernetes.
  • Alat baris perintah kubectl yang terkonfigurasi penuh .

Bagaimana Cara Kerja Penerusan Port Kubernetes?

Penerusan port Kubernetes adalah cara untuk mengakses sumber daya klaster internal dari luar klaster. Pengguna dapat memetakan port eksternal ke port yang digunakan oleh sumber daya seperti pod, deployment, kumpulan replika, atau layanan. Dengan cara ini, sumber daya dapat diakses dari dalam jaringan lokal.

kubectl menampilkan fungsionalitas port forwarding bawaan. Berikut adalah proses pemetaan port lokal ke cluster di Kubernetes:

  1. Pengguna berinteraksi dengan Kubernetes menggunakan alat baris perintah kubectl di mesin lokal mereka.
  2. Perintah tersebut port-forwardmenentukan nama sumber daya klaster dan menentukan nomor port tujuan penerusan port.
  3. Akibatnya, server API Kubernetes membuat satu koneksi HTTP antara localhost dan sumber daya yang berjalan di cluster.
  4. Pengguna sekarang dapat langsung melibatkan sumber daya khusus tersebut untuk mendiagnosis masalah atau melakukan debug jika perlu.

Dalam beberapa kasus, penerusan porta adalah satu-satunya cara untuk mengakses sumber daya klaster internal.

Perintah port-forward kubectl dasar

Perintah port-forwardmembuat terowongan dari sumber daya target ke localhost Anda. Perintah mengharuskan Anda untuk menentukan jenis dan nama sumber daya di samping nomor port lokal dan sumber daya.

Sintaks dasarnya adalah:

kubectl port-forward [resource-type]/[resource-name] [local-port]:[resource-port]

Jika beberapa sumber daya cocok dengan kriteria jenis/nama, sumber daya acak akan dipilih secara default. Untuk menghindari ketidakkonsistenan seperti itu, tentukan sumber daya setepat mungkin . Misalnya, mulailah mengekspos layanan dengan mencantumkan layanan yang tersedia dalam namespace :

kubectl -n [namespace] get svc

Daftar tersebut memberikan nama layanan di namespace tersebut. Temukan layanan yang ingin Anda teruskan dan catat nama dan nomor port layanannya.

Mencantumkan layanan yang berjalan di namespace default cluster.

kubectl port-forward ke Port Tertentu

Gunakan perintah berikut untuk mengakses penerapan NGINX di dalam klaster Anda. Misalnya, jika nama layanannya adalah test-nginx-svc , dan nomor portnya adalah 80, gunakan perintah berikut untuk mengekspos NGINX di port lokal 8080.

kubectl port-forward svc/test-nginx-svc 8080:80

API Kubernetes sekarang mendengarkan port 8080dan meneruskan data ke port layanan 80.

Penerusan port dari port lokal 8080 ke port sumber daya 80.

Layanan ini tersedia di localhost:8080.

Jendela browser web yang menampilkan halaman pengujian NGINX.

Setelah dieksekusi, kubectl port-forwardperintah secara aktif berjalan di jendela terminal. Untuk mengeluarkan perintah lain saat penerusan port sedang berjalan, buka instance terminal lain.

Catatan : Hentikan penerusan port dengan menekan Ctrl + Cdi jendela terminal asli.

Jalankan kubectl port-forward di Latar Belakang

Mulai proses penerusan port latar belakang dengan menambahkan &simbol di akhir perintah:

kubectl port-forward [resource-name] [local-port]:[resource-port] &
Memulai proses penerusan port latar belakang.

Tekan Ctrl + C setelah perintah ini untuk menggunakan prompt perintah saat proses penerusan port berjalan di latar belakang.

Untuk menghentikan proses latar belakang:

1. Temukan ID proses (PID) dengan menjalankan perintah ini:

ps -ef|grep port-forward

2. Catat nomor ID proses (PID) yang terletak di sebelah proses port-forward.

Menemukan PID dari proses penerusan porta.

3. Hentikan proses dengan mengetik:

kill -9 [PID]

Port Lokal Randome

Biarkan Kubernet memilih port lokal acak untuk mendengarkan dan meneruskannya ke port 80dalam pod yang ditentukan:

kubectl port-forward svc/test-nginx-svc :80

Port yang dipilih Kubernetes muncul di output perintah.

Meneruskan dari port lokal acak.

Gunakan Port Lokal dan Sumber Daya yang Sama

Dengarkan dan teruskan data menggunakan port identik baik secara lokal maupun dalam sumber daya tertentu:

kubectl port-forward [resource-name] [port1] [port2]

Dengarkan di Setiap Alamat IP Lokal

Gunakan perintah berikut untuk mendengarkan port lokal di alamat lokal mana pun dan meneruskan ke port sumber daya:

kubectl port-forward --address 0.0.0.0 [resource-name] [local-port]:[resource-port]
Penerusan port dengan mendengarkan alamat lokal mana pun.

Tentukan Alamat IP Lokal untuk Port Forwarding

Dengarkan port lokal menggunakan IP yang ditentukan dan teruskan ke port sumber daya dengan mengetik:

kubectl port-forward --address [local-ip-address] [resource-name] [local-port]:[resource-port]
Penerusan port dengan mendengarkan alamat lokal tertentu.

Gunakan Deployment untuk Memilih Port-forward Port

Dengarkan dan teruskan data menggunakan port yang sama baik secara lokal maupun di dalam sumber daya. Deployment menentukan pod mana yang akan digunakan:

kubectl port-forward [deployment-name] [port1] [port2]

Kesimpulan

Anda sekarang dapat menggunakan port-forwardperintah untuk terhubung ke sumber daya di dalam kluster Kubernetes Anda. Penerusan port di kluster Kubernetes sangat berguna untuk layanan back-end yang tidak ditujukan untuk paparan jarak jauh.

About The Author

Leave a reply

Your email address will not be published. Required fields are marked *