Ada beberapa cara untuk melakukannya:
- Tentukan layanan NodePort Kubernetes
- Gunakan perintah kubefwd atau penerusan port
- Gunakan perintah proxy (Hanya mendukung HTTP & HTTPS)
Dalam jawaban ini, saya menjelaskan cara mendefinisikan Layanan NodePort.
Layanan NodePort dijelaskan seperti di bawah ini (Layanan - Kubernetes)
NodePort: Mengekspos Layanan pada setiap IP Node di port statis (NodePort). Layanan ClusterIP, yang dirutekan oleh Layanan NodePort, dibuat secara otomatis. Anda akan dapat menghubungi Layanan NodePort, dari luar cluster, dengan meminta :.
Berikut adalah contoh layanan NodePort untuk PostgreSQL:
apiVersion: v1
kind: Service
metadata:
name: postgres
namespace: postgres
labels:
app: postgres
spec:
ports:
- port: 5432
type: NodePort
selector:
app: postgres
Bidang port
berarti port layanan dan port target default. Ada juga kolom nodePort
yang memungkinkan Anda memilih port untuk mengakses layanan dari luar cluster (melalui IP node dan nodePort)
Untuk melihat Port node (jika Anda tidak menentukannya dari manifes), Anda dapat menjalankan perintah:
kubectl get services -n postgres
Outputnya akan terlihat seperti:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
postgres NodePort 10.96.156.75 <none> 5432:30864/TCP 6d9h app=postgres
Dalam hal ini, nodePort adalah 30864
, ini adalah port untuk mengakses layanan dari luar cluster.
Untuk mengetahui IP node, perintah yang digunakan adalah:
kubectl get nodes -o wide
Outputnya akan terlihat seperti:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
homedev-control-plane Ready master 30d v1.19.1 172.18.0.2 <none> Ubuntu Groovy Gorilla (development branch) 5.9.1-arch1-1 containerd://1.4.0
Jika yang Anda butuhkan hanyalah IP saja:
kubectl get nodes -o wide --no-headers | awk '{print $6}'
Dalam hal ini, IP node adalah 172.18.0.2
. Oleh karena itu, untuk terhubung ke Postgres di cluster Kubernetes lokal dari mesin host Anda, perintahnya akan terlihat seperti ini:
psql -U postgres -h 172.18.0.2 -p 30864-d postgres
person
duykhoa
schedule
26.11.2020