2016-10-04 3 views
5

저는 Kubernetes에 처음 왔으며 찾고 있었고 찾고 있던 외부 IP가 해결되지 않는 이유를 읽었습니다.Kubernetes (Minikube) 외부 IP가 작동하지 않습니다.

우분투 16.04 배포판에서 minikube를 실행 중입니다. 내가 HTTP GET 내가이의 nginx 페이지를 얻을 http://192.168.42.165:32431/에서 할 때 대시 보드의 서비스 개요에서

내가이

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

미니 튜브 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 

당신은 다음 두 가지 방법 중 하나로이로드 균형 조정 서비스의 URL을 결정하십시오. 하드 방법 :

$ minikube service my-nginx --url 

업데이트

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

또는 쉬운 방법 - 입구 컨트롤러

를 사용하여 나는 입구 컨트롤러가 제공하는 minikube에서 실행할 수있는 방법을 설명 blog posting 발견 로드 밸런싱 기능.

그래서하는 traefik 기반 침입 컨트롤러 출시 :

$ 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 서비스에 노출 : 호스트 이름을 기준으로 다음과 같이 Ingress을 작성하고 있던이되면

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

, 라우팅 트래픽을 다음 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/입니다. 이 위대한 anwser 주셔서 감사합니다. – EenProgrammeur

+1

@EenProgrammeur 물론 IP 주소는 사이트마다 다를 수 있습니다. 알아내는 "minikube ip"명령을 실행하십시오 :-) 도움이되기를 기쁜 마음으로 –

관련 문제