kubernetes service ip externe en attente
Je suis en train de déployer nginx sur kubernetes, kubernetes version est v1.5.2,
J'ai déployé nginx avec 3 réplique, YAML est ci-dessous,
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-example
spec:
replicas: 3
revisionHistoryLimit: 2
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- containerPort: 80
et maintenant, je veux exposer son port 80 sur le port 30062 de noeud, pour qui j'ai créé un service ci-dessous,
kind: Service
apiVersion: v1
metadata:
name: nginx-ils-service
spec:
ports:
- name: http
port: 80
nodePort: 30062
selector:
app: nginx
type: LoadBalancer
ce service fonctionne comme il devrait l'être, mais il montre que l'attente non seulement sur kubernetes tableau de bord aussi sur terminal.
merci donc de m'aider à résoudre ce problème. Merci ...
OriginalL'auteur Pankaj Jackson | 2017-05-22
Vous devez vous connecter pour publier un commentaire.
On dirait que vous êtes en utilisant une mesure Kubernetes Cluster (à l'aide de
minikube
,kubeadm
ou similaire). Dans ce cas, il n'y a pas de LoadBalancer intégré (contrairement à AWS ou Google Cloud). Avec cette configuration par défaut, vous ne pouvez utiliser NodePort (plus d'infos ici: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport) ou un indice de Contrôleur. Avec la Pénétration de Contrôleur, vous pouvez configurer un nom de domaine qui correspond à votre pod (plus d'informations ici: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-controllers)Où dans le kubernetes docs puis-je trouver la façon de mapper les noms de domaine à dosettes? J'ai un kubeadm cluster dans virtualbox vms et ont une nginx pénétration contrôleur (protocole https) face à un Port de service (protocole http) pénétration à l'intérieur, mais je suis incapable d'accéder à la sphère de service via nginx. La lecture de votre réponse me fait penser que je suis absent quelque chose le long de ces lignes.
Cela ne réponds pas vraiment à la quetion? L'utilisateur est à l'aide de
LoadBalancer
comme un type de service qui est une valeur de type de service.NodePort
etingress
sont d'autres façons de le faire, mais pas vraiment résoudre le problème, non?Il est valable un type de service, mais il est utilisé dans un non-compatible avec la plate-forme (au moins par défaut). Afin d'utiliser LoadBalancer vous devez disposer d'une plate-forme qui peut fournir des adresses ip sur les gousses, qui est quelque chose que Google Cloud AWS faire.
Je suis à l'aide de kubeadm sur AWS. Puis-je encore
LoadBalancer
?OriginalL'auteur Javier Salmeron
D'accéder à un service sur
minikube
, vous devez exécuter la commande suivante:Plus d'informations ici : Minikube GitHub
OriginalL'auteur Saket Jain
Si vous n'êtes pas à l'aide de la CME ou EKS (que vous avez utilisé
kubeadm
) vous pouvez ajouter uneexternalIPs
spec à votre service YAML. Vous pouvez utiliser l'adresse IP associée à votre nœud principal de l'interface commeeth0
. Vous pouvez ensuite accéder au service à l'externe, à l'aide de l'adresse IP externe du nœud.Je l'ai fait et ne montre pas toujours externe-ip 🙁
OriginalL'auteur toppur
Utilisation NodePort:
kubectl run user-login --répliques=2 --étiquettes="run=user-login" --image=kingslayerr/teamproject:version2 --port=5000
kubectl exposer déploiement de l'utilisateur login --type=NodePort --nom=user-login-service
kubectl décrire les services de l'utilisateur de connexion-service
(Notez le port)
kubect cluster-info
(IP-> Obtenir L'adresse IP où le maître est en cours d'exécution)
Votre service est accessible à (IP):(port)
OriginalL'auteur Shubham Sawant