2017-05-22 1 views
7

Je suis en train de déployer nginx sur Kubernetes, Kubernetes version v1.5.2, j'ai déployé nginx avec 3 réplique, fichier YAML est ci-dessous,Kubernetes service IP externe en attente

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 du noeud, pour que 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 bien comme il devrait être, mais elle manifeste comme étant en attente non seulement sur Kubernetes tableau de bord également sur le terminal. Alors, aidez-moi à résoudre ce problème. Merci ...

Répondre

21

Il semble que vous utilisiez un cluster Kubernetes personnalisé (en utilisant minikube, kubeadm ou similaire). Dans ce cas, LoadBalancer n'est pas intégré (contrairement à AWS ou Google Cloud). Avec cette configuration par défaut, vous pouvez uniquement utiliser NodePort (plus d'informations ici: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport) ou un contrôleur Ingress. Avec le contrôleur Ingress vous pouvez configurer un nom de domaine qui associe à votre pod (plus d'informations ici: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-controllers)

+0

Merci beaucoup @javier c'est vraiment utile. J'ai résolu mon problème de doc ci-dessus. –

5

Pour accéder à un service sur minikube, vous devez exécuter la commande suivante:

minikube service [-n NAMESPACE] [--url] NAME 

Plus d'informations ici: Minikube GitHub

+2

exemple concret: service minikube spark-ui-proxy --url http://192.168.99.100:30621 –