7,540
edits
Changes
→Service
</pre>
==Service==
===Bevezető===
https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model/
====Pod to Service kommunikáció====
Egy konkrét példán keresztül fogjuk bemutatni, hogy egy pod hogyan tud üzenetet küldeni egy service-nek ami továbbküldi a csomagot a hozzá rendelt pod-nak. Tételezzük föl, hogy létezik egy '''service1''' nevű szolgáltatás, amire a '''pod4''' nevű pod csatlakozik (selectorokon keresztül). A '''service1''' IP virtuális IP címe '''10.109.91.148'''. A mögötte található POD IP címe: '''172.18.0.6'''. A példában a '''pod1''' nevű pod (IP: 172.17.0.5) fog csomagot küldeni a '''service1'''-nek. A '''pod1''' úgy látja, hogy ő kizárólag a '''service1'''-el kommunikál. De a pod4, aki végül meg fogja kapni a csomagokat, ő is úgy fogja látni, hogy kizárólag a service1-től kap csomagokat, csak vele áll kapcsolatban.
# A node2-ön az eth0 interfész továbbítani fogja a csomagot az ottani '''cbr0''' hídnak. Azonban a kube-proxy itt is létrehozott egy IpTables szabályt. Az itten szabály ezúttal a source címet fogja lecserélni a '''service1''' szolgáltatás virtuális IP címére sNat szabályokkal, hogy a '''pod4''' is úgy lássa, hogy ő kizárólag a '''serve1''' szolgáltatással kommunikál.
====Pod to Internet kommunikáció====
* Ingress — pod-ok elérése az internetről
===Service definiálása===
- port: 9376
</pre>
==Ingress==
A service-ekkel önmagukban az a baj, hogy egy Kubernetes klaszterben egy porton csak egy service hallgatózhat. nodePort esetén ezen a porton bármelyik node-ról elérhető a service. Ahhoz egy ugyanazon a porton több szolgáltatást is elérhessünk a klaszerben szükségünk van az úgynevezett '''ingress controller'''-e.
Az ingress komponens végezhet SSL terminálást, név alapú virtuális hosting-ot, és load-balanc-olást. Tipikusan HTTP és HTTPS protokollokat használ. Az ingress objektum nem része a Kubernetes-nek, a Kubernetes csak egy API-t biztosít. Számtalan ingress implementáció érhető el, mind pl a Traefik (https://docs.traefik.io/user-guide/kubernetes/) ami Docker swarm-hoz is biztosít Layer 7-es sticky session load balancer-t.
{{note|Swarm -ban Ingress-nek egy kicsit mást hívnak. Swarm-ban két fő hálózati típus van. Az egyik az '''overly''' hálózat, ahol az overly hálózatra kapcsolódó konténerek elérik egymást. A másik az Ingress hálózat, ahova publikálhatunk swarm szolgáltatásokat megadott portokon. A swarm klaszter bármelyik node-ján a megadott porton elérhető lesz a szolgáltatás. Ha több konténer is van a szolgáltatásban, akkor az ingress load-balance-olni fog. Tehát a Kubernetes service keveréke a swarm overlay és swarm ingress hálózatnak, de a Kubernetes ingress komponensnek semmi köze a swarm ingress hálózathoz. }}
Ingress can provide load balancing, SSL termination and name-based virtual hosting.