Pokud se nejedna o serial, clanek imho opomiji jednu dulezitou vec. Je nutne mit rozjety funkcni ingress controller, na ktery bude povesena bud svc typu loadbalancer (externi cloud prociser nebo treba metallb), pripadne obycejna clusterip s externi ip adresou, kterou ale musite nejak nahodit (rucne, keepalived apod).
Dale mi prijde ponekud neefektivni mit api mimo k8s cluster a resit to uvnitr k8s, protoze traffic jde do kubernetes, a odtamtud zase ven, musite mit prostupy na Vase k8s nody (pripadne naky hezky cni plugin) a vubec cele se to zeslozituje. Bud bych umistil api taktez do k8s a nebo bych routovani api resil jeste pred ingresem na urovni treba servername a externiho loadbalanceru (pokud ho mate),
Jinak ingress controler je v podstate takovy sofistikovanejsi templetator, ktery na zaklade ingress objektu vytvori nginx komfiguraci a reloadne nginx uvnitr podu.
Máte pravdu bez ingress controlleru si ingress neužijete. Myslím ale že veřejně dostupné cloudy ho běžně poskytují, minimálně v GKE k dispozici je. Konfigurace vlastního Kubernetes clusteru je obávám se mimo záběr článku, a osobně z ní seriál asi spíš tvořit nebudu, protože nerad píšu o věcech kterým skoro nerozumím.
Jinak API samozřejmě uvnitř Kubernetes clusteru mít můžete a dává to i smysl, prostě deploymentu s proxy podstrčíte adresu ClusterIP na které máte API vystrčené.