我并不是说能够路由到特定端口,而是要实际更改入口侦听的端口。
这可能吗?怎么样?在哪里记录?
答案 0 :(得分:1)
来自:https://kubernetes.io/docs/concepts/services-networking/ingress/ 入口不会公开任意端口或协议。将HTTP和HTTPS以外的服务公开到Internet时,通常使用Service.Type = NodePort或Service.Type = LoadBalancer类型的服务。
可能可以在AWS之类的云提供商上自定义LoadBalancer来监听其他端口。
答案 1 :(得分:1)
我认为您正在使用NGINX Ingress Controller。在这种情况下,您可以尝试在安装过程中尝试下载Yaml并更改端口,而不必像this is one这样在官方Yaml中进行function patchStoreToAddCrashReporting(store) {
const next = store.dispatch
store.dispatch = function dispatchAndReportErrors(action) {
try {
return next(action)
} catch (err) {
console.error('Caught an exception!', err)
Raven.captureException(err, {
extra: {
action,
state: store.getState()
}
})
throw err
}
}
}
。上面用于L4 AWS ELB的文件将变为:
kubectl apply
一种替代方法是使用功能更强大的入口控制器。 Here is a list个不同的控制器。 我个人的选择是Ambassador。如果您遵循入门页面,则只需更改所选端口的服务定义:
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
annotations:
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
spec:
type: LoadBalancer
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
ports:
- port: {custom port 1}
targetPort: http
- port: {custom port 2}
targetPort: https
答案 2 :(得分:0)
Ingress支持一个ingress controller定义。入口控制器与普通的Kubernetes对象一起部署,因此将有一个Service与它的部署相关联,以暴露入口控制器。该服务的部署方式特定于每种入口控制器类型以及您使用的部署方法。
例如,generic cloud deployment of kubernetes/ingress-nginx
将部署类型为LoadBalancer
的服务:
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
spec:
externalTrafficPolicy: Local
type: LoadBalancer
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/part-of: ingress-nginx
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https
要修改配置了负载均衡器的端口,请将spec.ports[*].port
的值更改为所需的值。