Vuber的Kubernetes Ingress控制器

时间:2016-02-21 05:52:07

标签: vagrant virtualbox kubernetes coreos

在Kubernetes CoreOS Vagrant Multi-Machine上运行入口控制器有什么特别之处吗?我按照这个例子,但是当我运行kubectl -f时,我没有得到地址。

示例:

http://kubernetes.io/v1.1/docs/user-guide/ingress.html#single-service-ingress

设定:

https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant.html

我看了kubernetes的网络。一切看起来都应该在没有进一步配置的情况下运行。

我的目标是在构建生产平台之前创建一个本地测试环境。我在想他们如何设置他们的虚拟盒网络。我即将深入研究CoreOS云配置,但我想先问一下。

更新

是的我正在运行入口控制器。

https://github.com/kubernetes/contrib/blob/master/Ingress/controllers/nginx-alpha/rc.yaml

它运行时没有出错。只是当我跑kubectl -f时,我没有得到地址。我认为那里有两件事:

  1. 我必须为CoreOS-Kubernetes vagrant multi-node做一些额外的网络工作。
  2. 它正在运行,但我将我的localhost指向错误的IP。我使用的是172.17.4.x ip,我也有10.0.0.x.我可以使用NodePort通过172.17.4.x访问服务,但我可以访问我的Ingress。
  3. 以下是代码:

    apiVersion: v1
    kind: ReplicationController
    metadata:
      name: nginx-ingress
      labels:
        app: nginx-ingress
    spec:
      replicas: 1
      selector:
        app: nginx-ingress
      template:
        metadata:
          labels:
            app: nginx-ingress
        spec:
          containers:
          - image: gcr.io/google_containers/nginx-ingress:0.1
            imagePullPolicy: Always
            name: nginx
            ports:
            - containerPort: 80
              hostPort: 80
    

    更新2 输出命令:

    kubectl get pods

    NAME                  READY     STATUS    RESTARTS   AGE
    echoheaders-kkja7     1/1       Running   0          24m
    nginx-ingress-2wwnk   1/1       Running   0          25m
    

    kubectl logs nginx-ingress-2wwnk --previous

    Pod "nginx-ingress-2wwnk" in namespace "default": previous terminated container "nginx" not found
    

    kubectl exec nginx-ingress-2wwnk -- cat /etc/nginx/nginx.conf

    events {
      worker_connections 1024;
    }
    http {
    
    
    }%
    

    我在NodePort上运行echoheaders服务。当我在浏览器上键入节点IP和端口时,我就可以了。

    我也重新启动了virtualbox中的所有节点。

1 个答案:

答案 0 :(得分:1)

在kubernetes irc和slack的帮助下,我修了一会儿。如果我没记错的话,我让入口服务在一个已经被使用的端口上进行监听,我认为对于流浪者来说。这些命令确实有帮助:

kubectl get pod <nginx-ingress pod> -o json
kubectl exec <nginx-ingress pod> -- cat /etc/nginx/nginx.conf
kubectl get pods -o wide
kubectl logs <nginx-ingress pod> --previous