2016-10-04 4 views
5

私はKubernetesを初めて使用しています。私は外部のIPが解決しない理由を調べて閲覧しています。Kubernetes(Minikube)外部IPが動作しない

私はubuntu 16.04ディストリビューションでminikubeを実行しています。私はHTTPがhttp://192.168.42.165:32431/で入手できますかとき私はnginxのページをこの

my-nginx | run: my-nginx | 10.0.0.11 | my-nginx:80 TCP my-nginx:32431 | TCP 192.168.42.71:80 

を取得しているダッシュボードのサービス概要で

。次のように

サービスの構成は

# Please edit the object below. Lines beginning with a '#' will be ignored, 
    # and an empty file will abort the edit. If an error occurs   while saving this file will be 
    # reopened with the relevant failures. 
    # 
    apiVersion: v1 
    kind: Service 
    metadata: 
     creationTimestamp: 2016-09-23T12:11:13Z 
     labels: 
     run: my-nginx 
     name: my-nginx 
     namespace: default 
     resourceVersion: "4220" 
     selfLink: /api/v1/namespaces/default/services/my-nginx 
     uid: d24b617b-8186-11e6-a25b-9ed0bca2797a 
    spec: 
     clusterIP: 10.0.0.11 
     deprecatedPublicIPs: 
     - 192.168.42.71 
     externalIPs: 
     - 192.168.42.71 
     ports: 
     - nodePort: 32431 
     port: 80 
     protocol: TCP 
     targetPort: 80 
     selector: 
     run: my-nginx 
     sessionAffinity: None 
     type: LoadBalancer 
    status: 
     loadBalancer: {} 

は、これらは私のifconfogの部分

virbr0 Link encap:Ethernet HWaddr fe:54:00:37:8f:41 
       inet addr:192.168.122.1 Bcast:192.168.122.255   Mask:255.255.255.0 
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
       RX packets:4895 errors:0 dropped:0 overruns:0 frame:0 
       TX packets:8804 errors:0 dropped:0 overruns:0   carrier:0 
       collisions:0 txqueuelen:1000 
       RX bytes:303527 (303.5 KB) TX bytes:12601315 (12.6   MB) 

    virbr1 Link encap:Ethernet HWaddr fe:54:00:9a:39:74 
       inet addr:192.168.42.1 Bcast:192.168.42.255   Mask:255.255.255.0 
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
       RX packets:7462 errors:0 dropped:0 overruns:0 frame:0 
       TX packets:12176 errors:0 dropped:0 overruns:0   carrier:0 
       collisions:0 txqueuelen:1000 
       RX bytes:3357881 (3.3 MB) TX bytes:88555007 (88.5 MB) 


    vnet0  Link encap:Ethernet HWaddr fe:54:00:37:8f:41 
       inet6 addr: fe80::fc54:ff:fe37:8f41/64 Scope:Link 
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
       RX packets:4895 errors:0 dropped:0 overruns:0 frame:0 
       TX packets:21173 errors:0 dropped:0 overruns:0 carrier:0 
       collisions:0 txqueuelen:1000 
       RX bytes:372057 (372.0 KB) TX bytes:13248977 (13.2 MB) 

    vnet1  Link encap:Ethernet HWaddr fe:54:00:9a:39:74 
       inet addr:192.168.23.1 Bcast:0.0.0.0   Mask:255.255.255.255 
       inet6 addr: fe80::fc54:ff:fe9a:3974/64 Scope:Link 
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
       RX packets:7462 errors:0 dropped:0 overruns:0 frame:0 
       TX packets:81072 errors:0 dropped:0 overruns:0   carrier:0 
       collisions:0 txqueuelen:1000 
       RX bytes:3462349 (3.4 MB) TX bytes:92936270 (92.9 MB) 

あるある私が失われていますので、誰もが、いくつかのポインタがありますか?

答えて

9

minikube known issuesは、クラウドロードバランサはサポートされていないと説明しています。

この問題で説明したようにしかし、彼らは同じように扱われるタイプのNodePortのサービスとしてだったが:

スタートminikubeとnginxのサービス

を起動
$ minikube start 
$ kubectl run my-nginx --image=nginx --replicas=1 --port=80 
$ kubectl expose deployment my-nginx --target-port=80 --type=LoadBalancer 

You cこのロードバランスサービスのURLを次の2つの方法のいずれかで判断します。難しい方法:

$ echo http://$(minikube ip):$(kubectl get service my-nginx --output='jsonpath={.spec.ports[0].NodePort}') 

や簡単な方法

$ minikube service my-nginx --url 

アップデート - イングレスコントローラを使用し

私が進入コントローラが提供するminikube上で実行することができる方法を説明しblog postingを見つけました負荷分散機能だから、

traefik基づいて入力コントローラ起動します。これはホスト名に基づいてトラフィックをルーティング、次のようにIngressを作成し実行した後は

$ kubectl create -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/traefik.yaml 

を:

$ cat ingress.yml 
apiVersion: extensions/v1beta1 
kind: Ingress 
metadata: 
name: my-nginx-ingress 
spec: 
rules: 
    - host: my-nginx.192.168.99.100.xip.io 
    http: 
    paths: 
     - path:/
     backend: 
     serviceName: my-nginx 
     servicePort: 80 


$ kubectl create -f ingress.yml 
ingress "my-nginx-ingress" created 

を今すぐnginxのサービスがオンにさらされています次のURL:

http://my-nginx.192.168.99.100.xip.io/ 

注:

  • ワイルドカードDNSエントリの代わりにxip.io serviceを使用しています。
+0

上記のケースでは、xip.ioアドレスはhttp://my-nginx.192.168.42.165.xip.io/です。この偉大なアナウンサーに感謝します。 – EenProgrammeur

+1

@EenProgrammeur確かにIPアドレスはサイト固有のものです。ちょうど "minikube ip"コマンドを実行してください:-)喜んで助けてください –

関連する問題