1 - Sto leggendo la documentazione e sono leggermente confuso con la formulazione. Dice:
ClusterIP : espone il servizio su un IP interno al cluster. La scelta di questo valore rende il servizio raggiungibile solo all'interno del cluster. Questo è il tipo di servizio predefinito
NodePort : espone il servizio sull'IP di ciascun nodo su una porta statica (NodePort). Viene creato automaticamente un servizio ClusterIP a cui indirizzerà il servizio NodePort. Sarai in grado di contattare il servizio NodePort, dall'esterno del cluster, richiedendo
<NodeIP>:<NodePort>
.LoadBalancer : espone il servizio esternamente utilizzando il bilanciamento del carico di un provider cloud. I servizi NodePort e ClusterIP, ai quali indirizzerà il bilanciamento del carico esterno, vengono creati automaticamente.
Il tipo di servizio NodePort utilizza ancora ClusterIP
ma solo su una porta diversa, aperta a client esterni? Quindi in questo caso è <NodeIP>:<NodePort>
uguale a <ClusterIP>:<NodePort>
?
Oppure NodeIP
l'IP viene effettivamente trovato durante l'esecuzione kubectl get nodes
e non l'IP virtuale utilizzato per il tipo di servizio ClusterIP?
2 - Anche nello schema dal link seguente:
http://kubernetes.io/images/docs/services-iptables-overview.svg
C'è qualche motivo particolare per cui Client
è dentro Node
? Ho pensato che avrebbe dovuto essere all'interno di un Cluster
caso nel caso di un tipo di servizio ClusterIP.
Se lo stesso schema è stato redatto per NodePort, sarebbe valida per disegnare il cliente completamente al di fuori sia del Node
e Cluster
o sono io manca completamente il punto?
externalIPs
cambia l'equazione qui? In particolare, è possibile assegnare unexternalIPs
array a unClusterIP
servizio di tipo e quindi il servizio diventa accessibile anche sull'IP esterno? Quando sceglieresti questo su un NodePort?