Information in this document may be out of date

This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Use Port Forwarding to Access Applications in a Cluster

Menggunakan Port Forwarding untuk Mengakses Aplikasi di sebuah Klaster

Halaman ini menunjukkan bagaimana menggunakan kubectl port-forward untuk menghubungkan sebuah server Redis yang sedang berjalan di sebuah klaster Kubernetes. Tipe dari koneksi ini dapat berguna untuk melakukan debugging basis data.

Sebelum kamu memulai

Kamu harus memiliki klaster Kubernetes, dan perangkat baris perintah kubectl juga harus dikonfigurasikan untuk berkomunikasi dengan klastermu. Jika kamu belum memiliki klaster, kamu dapat membuatnya dengan menggunakan minikube, atau kamu juga dapat menggunakan salah satu dari tempat mencoba Kubernetes berikut ini:

Kubernetes servermu harus dalam versi yang sama atau lebih baru dari v1.10.

Untuk melihat versi, tekan kubectl version.

Membuat Deployment dan Service Redis

  1. Buat sebuah Deployment yang menjalankan Redis:

    kubectl apply -f https://k8s.io/examples/application/guestbook/redis-master-deployment.yaml 

    Keluaran dari sebuah perintah yang sukses akan memverifikasi bahwa Deployment telah terbuat:

    deployment.apps/redis-master created 

    Lihat status Pod untuk memeriksa apakah sudah siap:

    kubectl get pods 

    Keluaran menampilkan Pod yang telah terbuat:

    NAME READY STATUS RESTARTS AGE redis-master-765d459796-258hz 1/1 Running 0 50s 

    Lihat status Deployment:

    kubectl get deployment 

    Keluaran menampilkan bahwa Deployment telah terbuat:

    NAME READY UP-TO-DATE AVAILABLE AGE redis-master 1/1 1 1 55s 

    Deployment secara otomatis mengatur sebuah ReplicaSet. Lihat status ReplicaSet menggunakan:

    kubectl get replicaset 

    Keluaran menampilkan bahwa ReplicaSet telah terbuat:

    NAME DESIRED CURRENT READY AGE redis-master-765d459796 1 1 1 1m 
  2. Buat sebuah Service untuk mengekspos Redis di jaringan:

    kubectl apply -f https://k8s.io/examples/application/guestbook/redis-master-service.yaml 

    Keluaran dari perintah yang sukses akan memverifikasi bahwa Service telah terbuat:

    service/redis-master created 

    Lihat Service yang telah terbuat menggunakan:

    kubectl get service redis-master 

    Keluaran menampilkan service yang telah terbuat:

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE redis-master ClusterIP 10.0.0.213 <none> 6379/TCP 27s 
  3. Periksa apakah server Redis berjalan di Pod, dan mendengarkan porta 6379:

    # Ubah redis-master-765d459796-258hz menjadi nama Podkubectl get pod redis-master-765d459796-258hz --template='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'

    Keluaran akan menampilkan porta dari Redis di Pod tersebut:

    6379 

    (ini adalah porta TCP yang dialokasi untuk Redis di internet)

Meneruskan sebuah porta lokal ke sebuah porta pada Pod

  1. kubectl port-forward memungkinkan penggunaan nama sumber daya, seperti sebuah nama Pod, untuk memilih Pod yang sesuai untuk melakukan penerusan porta.

    # Ubah redis-master-765d459796-258hz menjadi nama Podkubectl port-forward redis-master-765d459796-258hz 7000:6379 

    yang sama seperti

    kubectl port-forward pods/redis-master-765d459796-258hz 7000:6379 

    atau

    kubectl port-forward deployment/redis-master 7000:6379 

    atau

    kubectl port-forward replicaset/redis-master 7000:6379 

    atau

    kubectl port-forward service/redis-master 7000:6379 

    Semua perintah di atas berfungsi. Keluarannya mirip dengan ini:

    I0710 14:43:38.274550 3655 portforward.go:225] Forwarding from 127.0.0.1:7000 -> 6379 I0710 14:43:38.274797 3655 portforward.go:225] Forwarding from [::1]:7000 -> 6379 
  2. Memulai antarmuka baris perintah (command line) Redis:

    redis-cli -p 7000
  3. Pada baris perintah di Redis, masukkan perintah ping:

    ping 

    Sebuah permintaan ping yang sukses akan mengembalikan:

    PONG 

Diskusi

Koneksi-koneksi yang dibuat ke porta lokal 7000 diteruskan ke porta 6379 dari Pod yang menjalankan server Redis. Dengan koneksi ini, kamu dapat menggunakan workstation lokal untuk melakukan debug basis data yang berjalan di Pod.

Selanjutnya

Belajar lebih tentang kubectl port-forward.

Last modified May 30, 2020 at 3:41 PM PST: add id pages (7d03134456)