J'exécute le cluster CoreOS k8s sur Mac OSX, ce qui signifie qu'il s'exécute dans VirtualBox + Vagrant
J'ai dans mon fichier service.yaml:
spec:
type: NodePort
Quand je tape:
kubectl get services
Je vois:
NAME CLUSTER_IP EXTERNAL_IP PORT(S) SELECTOR
kubernetes 10.100.0.1 <none> 443/TCP <none>
my-frontend 10.100.250.90 nodes 8000/TCP name=my-app
Qu'est-ce que l'IP externe des "nœuds"? Comment accéder à mon frontend en externe?
En plus des types de services "NodePort", il existe d'autres moyens de pouvoir interagir avec les services kubernetes depuis l'extérieur du cluster:
Je suppose que vous utilisez MiniKube pour Kubernetes. Dans ce cas, pour identifier votre adresse IP de nœud, utilisez la commande suivante:
.\minikube.exe ip
Si le service exposé est de type = Nodeport, pour vérifier le port exposé, utilisez la commande suivante:
.\kubectl.exe describe service <service-name>
Vérifiez le port Node dans le résultat. De plus, si vous voulez avoir tous ces détails via Nice UI, vous pouvez lancer le tableau de bord Kubernetes présent à l'adresse suivante:
<Node-ip>:30000
Le moyen le plus simple d'obtenir les ports hôtes est kubectl describe services my-frontend
. Le port du nœud sera affiché.
Vous pouvez également vérifier l'API:
api/v1/namespaces/{namespace_name}/services/{service_name}
ou listez tout:
api/v1/namespaces/default/services
Enfin, vous pouvez choisir un nodePort fixe dans le service.yml
Voici le document sur les adresses des nœuds: http://kubernetes.io/docs/admin/node/#addresses
Vous pouvez spécifier le numéro de port de nodePort lorsque vous spécifiez le service. Si vous n'avez pas spécifié manuellement de port, le système vous en attribuera un. Vous pouvez kubectl get services -o yaml
et recherchez le port sur spec.ports [*]. nodePort, comme suggéré dans la doc ici: https://github.com/kubernetes/kubernetes/blob/master/docs/user-guide/services .md # type-nodeport
Et vous pouvez accéder à votre front-end aux {adresses externes des nœuds}: {nodePort}
J'espère que cela t'aides.