![](/img/trans.png)
[英]Why does my bare-metal kubernetes nginx Ingress-controller return a 308?
[英]How to configure a kubernetes bare-metal ingress controller to listen to port 80?
我有一个kubernetes设置,1个主设备和1个从设备,托管在DigitalOcean Droplets上。 为了公开我的服务,我想使用Ingresses。
由于我有裸机安装,我必须配置自己的入口控制器。 如何让它听取端口443或80而不是30000-32767范围?
为了设置入口控制器,我使用了本指南: https : //kubernetes.github.io/ingress-nginx/deploy/
我的控制器服务看起来像这样:
apiVersion: v1
kind: Service
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
type: NodePort
ports:
- name: http
port: 80
targetPort: 80
protocol: TCP
- name: https
port: 443
targetPort: 443
protocol: TCP
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
现在很明显,因为NodePort范围是30000-32767,所以此控制器不会映射到端口80或443:
➜ kubectl get services --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx ingress-nginx NodePort 10.103.166.230 <none> 80:30907/TCP,443:30653/TCP 21m
我同意@Matthew L Daniel,如果你不考虑使用外部负载均衡器,最好的选择是通过启用Pods规范中的hostNetwork
选项与ingress-nginx
Pod共享主机网络接口:
template:
spec:
hostNetwork: true
因此,NGINX Ingress控制器可以将端口80和443直接绑定到Kubernetes节点,而无需将特殊代理端口(30000-32767)映射到嵌套服务。 在此处查找更多信息。
您无法将入口服务绑定到端口80.您可以在主机上运行HAProxy并重定向端口80,443请求入口服务端口号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.