ClusterIP: les Services sont accessibles par des cosses et des services dans le Cluster
Si je fais un service appelé myservice dans l'espace de noms par défaut de type: ClusterIP alors la suivante prévisible adresse DNS statique pour le service va être créé:
myservice.par défaut.svc.cluster.local (ou juste myservice.par défaut, ou par des cosses dans l'espace de noms par défaut juste "myservice" de travail)
Et que nom DNS ne peuvent être résolus que par des cosses et des services à l'intérieur du cluster.
NodePort: les Services sont accessibles par les clients sur le même LAN/clients qui peuvent ping la K8s Hôte Nœuds (et les gousses et des services dans le cluster) (Note pour la sécurité de votre k8s hôte les nœuds doivent être sur un sous-réseau privé, ainsi les clients sur internet ne sera pas en mesure d'atteindre ce service)
Si je fais un service appelé mynodeportservice dans l'espace de noms mynamespace de type: NodePort sur un Nœud 3 Kubernetes Cluster. Ensuite, un Service de type: ClusterIP sera créé et il sera accessible par les clients à l'intérieur de la grappe à la suite prévisible adresse DNS statique:
mynodeportservice.mynamespace.svc.cluster.local (ou juste mynodeportservice.mynamespace)
Pour chaque port mynodeportservice écoute sur un nodeport dans la gamme de 30000 - 32767 sera choisi au hasard. De sorte que les clients Externes qui sont en dehors du cluster peut frapper que ClusterIP service qui existe à l'intérieur du cluster.
Permet de dire que nos 3 K8s hôte nœuds ont des adresses ip 10.10.10.1, 10.10.10.2, 10.10.10.3, le Kubernetes service est à l'écoute sur le port 80, et le Nodeport choisi au hasard, a été 31852.
Un client qui existe à l'extérieur de la grappe pu visiter 10.10.10.1:31852, 10.10.10.2:31852, ou 10.10.10.3:31852 (comme NodePort est écouté par tous les Kubernetes Nœud d'Hôte) Kubeproxy transmettra la demande à mynodeportservice sur le port 80.
LoadBalancer: les Services sont accessibles par tout le monde connecté à internet* (architecture Commune est L4 LB est accessible au public sur internet en le mettant dans une DMZ ou de le donner à la fois privée et publique, propriété intellectuelle et k8s hôte noeuds sont sur un sous-réseau privé)
(Note: C'est le seul type de service qui ne fonctionne pas dans 100% de Kubernetes implémentations, comme le métal nu Kubernetes, ça marche quand Kubernetes a cloud fournisseur de intégrations.)
Si vous faites mylbservice, puis un L4 LB VM seront pondus (un cluster de service IP, et un NodePort Service sera implicitement donné naissance). Cette fois, notre NodePort est 30222. l'idée est que le L4 LB aura une IP publique de 1.2.3.4 et il se charge de l'équilibre et de transférer le trafic de la 3 K8s hôte nœuds qui ont des adresses IP privées. (10.10.10.1:30222, 10.10.10.2:30222, 10.10.10.3:30222) et puis Kube Proxy transmettra au service de type ClusterIP qui existe à l'intérieur du cluster.
Vous m'avez également demandé:
Le NodePort type de service toujours utiliser le ClusterIP? Oui*
Ou est le NodeIP en fait l'IP trouvée lorsque vous exécutez kubectl obtenir des nœuds? Aussi Oui*
Permet de tracer un parallèle entre les principes Fondamentaux:
Un conteneur est à l'intérieur d'un conteneur. un pod est à l'intérieur d'un jeu de réplication. un jeu de réplication est à l'intérieur d'un déploiement.
Eh bien de la même façon:
Un ClusterIP Service fait partie d'un NodePort Service. Un NodePort Service fait Partie d'un Service d'Équilibrage de Charge.
Dans ce diagramme vous a montré, le Client serait une dosette à l'intérieur du cluster.