如何为Kubernetes的入口分配公共IP

时间:2018-09-29 00:18:27

标签: kubernetes kubernetes-ingress kong kubernetes-helm

我已经使用头盔

部署了 Kong-Ingress-controller

我在centos 7上拥有Kubernetes的Cluster v1.10

我正在使用来自OVH Provider的专用服务器

创建Ingress时

cat ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: jenkins 
spec:
  backend:
    serviceName: jenkins
    servicePort: 8080

kubectl get ing
NAME      HOSTS     ADDRESS   PORTS     AGE
jenkins   *                   80        3s

kubectl get svc
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
jenkins                ClusterIP   10.254.104.80   <none>        8080/TCP         1d

现在,由于我正在使用OVH服务器,因此无法从外部访问此入口。

有解决方案吗?

1 个答案:

答案 0 :(得分:2)

OVH不是officially supported by Kubernetes。它得到了支持,那么通常您将创建类型为jenkins的服务LoadBalancer,并且它将是您的具有公共IP的外部端点。

由于不支持,因此下一个最好的方法是创建一个NodePort服务。这将创建一个服务,该服务侦听所有Kubernetes节点上的特定端口,并将请求转发到Pod(仅在它们运行的​​地方)。因此,在这种情况下,您将必须使用公共IP创建一个OVH Load Balancer,并将该负载均衡器的后端指向NodePort正在监听的服务的Ingress