2017-02-05 14 views
1

クラウドプロバイダのないベアメタルにkubernetes入力リソースを使用しようとしています。Kubernetes ingress IPがdocker0に設定されています。

Iは入力リソースを作成した:私は侵入を表示するとき

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata: 
    name: nginx 
spec: 
    rules: 
    - host: foobar.com 
    http: 
     paths: 
     - path: /foo 
     backend: 
      serviceName: echoheaders-x 
      servicePort: 80 
     - path:/
     backend: 
      serviceName: frontend 
      servicePort: 80 

は、しかし、私はこのIPを取得:

[[email protected]]# kubectl get ing 
NAME  HOSTS  ADDRESS  PORTS  AGE 
nginx  foobar.com 172.17.0.1 80  12m 

IPアドレスはすべてのdocker0のIPアドレスと対応するように思われます私のkubeletノード。

このIPを設定する方法はありますか?私が読んだチュートリアルのすべては、このIPがルーティング可能であるように見えます。

--- 
apiVersion: v1 
kind: ReplicationController 
metadata: 
    name: nginx-ingress-controller 
    labels: 
    k8s-app: nginx-ingress-lb 
spec: 
    replicas: 1 
    selector: 
    k8s-app: nginx-ingress-lb 
    template: 
    metadata: 
     labels: 
     k8s-app: nginx-ingress-lb 
     name: nginx-ingress-lb 
    spec: 
     terminationGracePeriodSeconds: 60 
     containers: 
     - image: gcr.io/google_containers/nginx-ingress-controller:0.8.3 
     name: nginx-ingress-lb 
     imagePullPolicy: Always 
     readinessProbe: 
      httpGet: 
      path: /healthz 
      port: 10254 
      scheme: HTTP 
     livenessProbe: 
      httpGet: 
      path: /healthz 
      port: 10254 
      scheme: HTTP 
      initialDelaySeconds: 10 
      timeoutSeconds: 1 
     # use downward API 
     env: 
      - name: POD_NAME 
      valueFrom: 
       fieldRef: 
       fieldPath: metadata.name 
      - name: POD_NAMESPACE 
      valueFrom: 
       fieldRef: 
       fieldPath: metadata.namespace 
     ports: 
     - containerPort: 80 
      hostPort: 80 
     - containerPort: 443 
      hostPort: 443 
     # we expose 18080 to access nginx stats in url /nginx-status 
     # this is optional 
     - containerPort: 18080 
      hostPort: 18080 
     args: 
     - /nginx-ingress-controller 
     - --default-backend-service=$(POD_NAMESPACE)/default-http-backend 
     - --nginx-configmap=$(POD_NAMESPACE)/nginx-ingress-controller 
+0

IMO IPアドレスは、入力コントローラによって設定されます。どんな入口コントローラを使用していますか? – svenwltr

+0

nginxコントローラ、質問に追加しました – jaxxstorm

答えて

1

問題はここkubelet構成だった:

は、ここに私のnginxのコントローラYAMLです。デフォルトでは、kubeletは0.0.0.0を待ち受けます。docker0が最初に利用可能なアドレスなので、docker0のIPを取得します。

私はkubelet設定に以下を追加しました:

--address=<actualip> --node-ip=<actualip> 

そして、それは正しく登録。

関連する問題