编写自定义Ingress控制器 - 无法将地址设置为Ingress

时间:2016-09-30 09:25:27

标签: kubernetes

我正在按照how to write a custom Ingress Controller的说明 - 但对我来说,他们没有做出相当重要的步骤 - 如何为此控制器声称的Ingress分配地址。

到目前为止,我已尝试执行以下步骤:

  1. 部署Ingress
  2. apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: myWebAppIngress
    spec:
      backend:
        serviceName: myWebAppBackendSvc
        servicePort: 8090
    

    1. 使用自定义Ingress Controller部署RC,如下所示设置端口
    2. ports:
          - containerPort: 80
            hostPort: 80
          - containerPort: 443
            hostPort: 443
      

      1. 请注意部署Ingress Controller的节点的外部IP和
      2. 使用此IP修补Ingress:kubectl patch ingress myWebAppIngress -p='{"status": {"loadBalancer": {"ingress": [{"ip": "<IP noted below>"}]}}}'
      3. 但是,我没有为我的Ingress分配地址,正如我在kubectl get ingress myWebAppIngress中看到的那样有人知道我需要做什么才能为Ingress分配一个地址吗?

1 个答案:

答案 0 :(得分:1)

hostPort在启动此应用程序的节点上的给定端口上公开您的应用程序。这不会给你外部IP,因为它不会。提供云负载均衡器。

如果您想坚持使用全自动k8s设置,那么首先您应该能够正确使用LoadBalancer类型的服务,并为您的入口控制器http://kubernetes.io/docs/user-guide/services/#type-loadbalancer定义此类服务

另一种方法可以是使用NodePort类型的服务(它具有nodePort由kube-proxy管理的优点,因此也可以在未运行入口pod的节点上使用)并手动配置loadbalancer以指向分配的nodePorts。 / p>

旁注:你永远不需要摆弄状态字段内容