Giriş
Belirtilen Nodeport servise bir tunnel oluşturur ve varsayılan tarayıcıyı açarak bu adrese yönlendirir. Minikube bir VM üzerinde çalıştığı için farklı bir IP adresine sahip ve yerel bilgisayardan direkt erişilemiyor. Erişmek için tunnel oluşturmak gerekiyor.
Örnek
Bir NodePort service açalım
-- apiVersion: v1 kind: Service metadata: name: “nginx-service” namespace: “default” spec: ports: — port: 80 nodePort: 30001 type: NodePort selector: app: “nginx”
Erişmek için şöyle yaparız
minikube service — url nginx-service
Örnek
İki pod çalıştıralım
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
ve
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
Pod için şöyle yapalım
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
Diğer pod için şöyle yapalım
kubectl expose deployment hello-minikube --type=NodePort --port=8080
Tüm servisleri görmek için şöyle yaparız.
minikube service list
Çıktısı şöyledir. Burada URL 192.168.49 ile başlıyor. Bu IP 172.17.0.3 de olabilirdi. Neticede yerel tarayıcıdan erişilemiyor. Erişmek için tunnel açmak yani port forwarding yapmak gerekir. Bizi ilgilendirenler Target Port alanı dolu olan Node Port servisler. Yani URL alanı dolu olan servisler.
>minikube service list |----------------------|---------------------------|--------------|---------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |----------------------|---------------------------|--------------|---------------------------| | default | hello-minikube | 8080 | http://192.168.49.2:30072 | | default | hello-node | 8080 | http://192.168.49.2:30501 | | default | kubernetes | No node port | | kube-system | kube-dns | No node port | | kubernetes-dashboard | dashboard-metrics-scraper | No node port | | kubernetes-dashboard | kubernetes-dashboard | No node port | |----------------------|---------------------------|--------------|---------------------------|
Sadece belli bir servisi tarayıcı ile açmak için şöyle yaparız
>minikube service hello-node |-----------|------------|-------------|---------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|------------|-------------|---------------------------| | default | hello-node | 8080 | http://192.168.49.2:30501 | |-----------|------------|-------------|---------------------------| * Starting tunnel for service hello-node. |-----------|------------|-------------|------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|------------|-------------|------------------------| | default | hello-node | | http://127.0.0.1:52692 | |-----------|------------|-------------|------------------------| * Opening service default/hello-node in default browser... ! Because you are using a Docker driver on windows, the terminal needs to be open to run it.
Örnek
Şöyle yaparız. Burada vtctld2 dışarıya 3 NodePort sunuyor
>minikube service list |-------------|-----------------------------------------|--------------|---------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-------------|-----------------------------------------|--------------|---------------------------| | default | adv-vitess-cluster-az1-vtgate-498e7697 | No node port | | default | adv-vitess-cluster-az2-vtgate-9ea92c94 | No node port | | default | adv-vitess-cluster-etcd-07a83994-client | No node port | | default | adv-vitess-cluster-etcd-07a83994-peer | No node port | | default | adv-vitess-cluster-vtctld-455ebae3 | No node port | | default | adv-vitess-cluster-vtgate-43485b64 | No node port | | default | adv-vitess-cluster-vttablet-87145749 | No node port | | default | adv-vtgate-az1 | No node port | | default | adv-vtgate-az2 | No node port | | default | kubernetes | No node port | | default | vtctld2 | port-1/15000 | http://192.168.49.2:30562 | | | | port-2/15999 | http://192.168.49.2:31823 | | | | port-3/3306 | http://192.168.49.2:30303 | | kube-system | kube-dns | No node port | |-------------|-----------------------------------------|--------------|---------------------------|
--url seçeneği
Örnek - tunnel
Service ait sadece tunnel url'yi görmek ve daha sonra tarayıcı ile açmak için şöyle yaparız
>minikube service hello-node --url * Starting tunnel for service hello-node. |-----------|------------|-------------|------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|------------|-------------|------------------------| | default | hello-node | | http://127.0.0.1:52687 | |-----------|------------|-------------|------------------------| http://127.0.0.1:52687 ! Because you are using a Docker driver on windows, the terminal needs to be open to run it.
"minikube service" yerine "kubectl port-forward" kullanılır
Örnek
Şöyle yaparız. Artık servisimize http://127.0.0.1:30502/ adresinden erişebiliriz. Burada NodePort servisimiz 8080'i dinliyor. Biz de bunu dış dünyaya 30502 olarak açtık
>kubectl port-forward svc/hello-node 30502:8080 Forwarding from 127.0.0.1:30502 -> 8080 Forwarding from [::1]:30502 -> 8080
Eğer dış dünyaya da 8080 olarak açmak isteseydik şöyle yaparız
kubectl port-forward svc/hello-node 8080
Hiç yorum yok:
Yorum Gönder