如何配置kubernetes裸机入口控制器以侦听端口80?
我有一个kubernetes设置,有一个主机和一个从机,托管在DigitalOcean上。 为了公开我的服务,我想使用入口 由于我有一个裸机安装,我必须配置自己的入口控制器。 如何让它收听端口443或80而不是30000-32767范围? 为了设置入口控制器,我使用了本指南: 我的控制器服务如下所示:如何配置kubernetes裸机入口控制器以侦听端口80?,kubernetes,kubernetes-ingress,cloud-bare-metal,Kubernetes,Kubernetes Ingress,Cloud Bare Metal,我有一个kubernetes设置,有一个主机和一个从机,托管在DigitalOcean上。 为了公开我的服务,我想使用入口 由于我有一个裸机安装,我必须配置自己的入口控制器。 如何让它收听端口443或80而不是30000-32767范围? 为了设置入口控制器,我使用了本指南: 我的控制器服务如下所示: apiVersion: v1 kind: Service metadata: name: ingress-nginx namespace: ingress-nginx labels:
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
➜ kubectl获取服务--所有名称空间
命名空间名称类型CLUSTER-IP EXTERNAL-IP端口年龄
ingress nginx ingress nginx节点端口10.103.166.230 80:30907/TCP,443:30653/TCP 21m
无法将入口服务绑定到端口80。您可以在主机上运行HAGPROST并重定向端口80443请求入口服务端口号。 < P>我同意@ Matthew L Daniel,如果您不考虑使用外部负载均衡器,最好的选择是通过“代码>主机网络< /代码>选项在PODS的规格:中共享主机网络接口与<代码>入口NGNX POD。
template:
spec:
hostNetwork: true
因此,NGINX入口控制器可以将端口80和443直接绑定到Kubernetes节点,而无需将特殊代理端口(30000-32767)映射到嵌套服务。查找更多信息。那么,谁是该服务的消费者?您的用户是否都可以访问集群中节点的:80
和:443
,或者您是否有防火墙将访问与实际节点的访问隔离开来?也就是说,我解决这个问题的方法是使用hostNetwork:true
和守护程序集