Chr*_*ski 5 kubernetes kubernetes-ingress
我并不是说能够路由到特定端口,而是要实际更改入口侦听的端口。
这可能吗?怎么样?这在哪里记录?
dla*_*law 24
不。来自kubernetes 文档:
Ingress 不会公开任意端口或协议。向 Internet 公开 HTTP 和 HTTPS 以外的服务通常使用 Service.Type=NodePort 或 Service.Type=LoadBalancer 类型的服务。
可以在 AWS 等云提供商上自定义 LoadBalancer 以侦听其他端口。
vic*_*rtv 15
我假设您正在使用NGINX Ingress Controller。在这种情况下,在安装过程中,而不是做一个kubectl apply像YAML官方这是一个,你可以尝试下载YAML和更改端口。上面用于 L4 AWS ELB 的文件将变成这样:
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
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用更强大的入口控制器。 这是不同控制器的列表。我个人的选择是大使。如果您遵循入门页面,您只需更改您选择的端口的服务定义:
---
apiVersion: v1
kind: Service
metadata:
name: ambassador
spec:
type: LoadBalancer
externalTrafficPolicy: Local
ports:
- port: {custom port}
targetPort: 8080
selector:
service: ambassador
Run Code Online (Sandbox Code Playgroud)
一个入口定义是由一个支持入口控制器。入口控制器与普通 Kubernetes 对象一起部署,因此将有一个与之关联的服务,为入口控制器公开端口。
该kubernetes/ingress-nginx static deploys有deploy.yaml一个服务类型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
Run Code Online (Sandbox Code Playgroud)
修改负载均衡器配置的端口,在spec.ports[*].port外部服务中,但已部署。
如果您使用 Helm 部署 Kubernetesingress-nginx控制器,则可以在 Helm 值覆盖文件中更改默认端口 80 和 443:
ingress-nginx:
enabled: true
...
controller:
service:
ports:
http: 8123
https: 9456
Run Code Online (Sandbox Code Playgroud)
请参阅此处:https ://artifacthub.io/packages/helm/ingress-nginx/ingress-nginx#values
在此示例中,通过入口公开的任何服务现在均可在端口 8123 (http) 和 9456 (https) 上使用。
| 归档时间: |
|
| 查看次数: |
3679 次 |
| 最近记录: |