我正在按照how to write a custom Ingress Controller的说明 - 但对我来说,他们没有做出相当重要的步骤 - 如何为此控制器声称的Ingress分配地址。
到目前为止,我已尝试执行以下步骤:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myWebAppIngress
spec:
backend:
serviceName: myWebAppBackendSvc
servicePort: 8090
ports:
- containerPort: 80
hostPort: 80
- containerPort: 443
hostPort: 443
kubectl patch ingress myWebAppIngress -p='{"status": {"loadBalancer": {"ingress": [{"ip": "<IP noted below>"}]}}}'
但是,我没有为我的Ingress分配地址,正如我在kubectl get ingress myWebAppIngress
中看到的那样有人知道我需要做什么才能为Ingress分配一个地址吗?
答案 0 :(得分:1)
hostPort
在启动此应用程序的节点上的给定端口上公开您的应用程序。这不会给你外部IP,因为它不会。提供云负载均衡器。
如果您想坚持使用全自动k8s设置,那么首先您应该能够正确使用LoadBalancer
类型的服务,并为您的入口控制器http://kubernetes.io/docs/user-guide/services/#type-loadbalancer定义此类服务
另一种方法可以是使用NodePort类型的服务(它具有nodePort由kube-proxy管理的优点,因此也可以在未运行入口pod的节点上使用)并手动配置loadbalancer以指向分配的nodePorts。 / p>
旁注:你永远不需要摆弄状态字段内容