我有一个K8S服务(应用程序文件测试)运行如下:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
app-filestash-testing ClusterIP 10.111.128.18 <none> 10000/TCP 18h
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 20h我使用下面的yaml文件创建了一个尝试访问此服务的侵入:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: app-filestash-testing
spec:
rules:
- host: www.masternode.com
http:
paths:
- backend:
serviceName: app-filestash-testing
servicePort: 10000在/etc/host文件中,我做了此更改(我使用了工作者节点公共IP):
127.0.0.1 localhost
xx.xxx.xxx.xxx www.masternode.com然而,当我检查这个宏的时候,我发现这个入口是80。
NAME CLASS HOSTS ADDRESS PORTS AGE
app-filestash-testing nginx www.masternode.com 80 14h当前,该服务正在端口10000上运行和侦听,但侵入端口为80。
我只是想知道,是否有任何方法/设置将大会的端口号更改为10000?如何通过大会获得这项服务?是否可以在/etc/host文件中设置端口号?
谢谢。
发布于 2022-04-27 02:29:36
来自:https://kubernetes.io/docs/concepts/services-networking/ingress/#what-is-ingress
不公开任意端口或协议。向internet公开HTTP和HTTPS以外的服务通常使用类型为Service.Type=NodePort或Service.Type=LoadBalancer的服务。
NodePort可能就是你要找的东西。更多信息和选项记录在这里:https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
发布于 2022-04-27 02:43:03
在常规入口中,您不能设置特定的端口,通过该端口可以到达入口。
在某些特定的情况下,理论上可以通过添加特定的注释来实现,但是我不认为nginx-ingress会有这样的情况。
但是,完全有可能有一个可以通过不同端口访问的入口类。
我对nginx入口还不太熟悉,不知道如何在那里进行操作,但是如果您要使用ingress,则有一些设置可以更改这些端口。
例如,通过使用helm安装这个入口类,您可以提供默认值为80的值controller.service.ports.http和/或默认为443的controller.service.ports.https。
很有可能有一种方法可以做到这一点,为nginx入口以及。但是,当您只想更改端口时,您必须考虑增加的复杂性是否真的值得。
https://stackoverflow.com/questions/72022373
复制相似问题