25 Nisan 2022 Pazartesi

minikube service seçeneği - NodePort'a Erişim İçindir

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.
2. kubectl port-forward Alternatifi
"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

Cluster Propotional Autoscaler - ReplicaSet Ekler/Siler

Giriş Açıklaması şöyle CPA aims to horizontally scale the number of Pod replicas based on the cluster’s scale. A common example is DNS ser...