【运维】如何使用Ingress将应用的8080端口映射到https的443?
本文作为操作指导,帮助运维的同学完成k8s中的应用,将8080端口自动重定向到443端口。
·
本文作为操作指导,帮助运维的同学完成k8s中的应用,将8080端口自动重定向到443端口。
配置操作步骤
为了实现从8080端口到443端口的重定向,你需要修改Nginx Ingress Controller的配置并设置相应的Ingress资源。以下是完整的步骤:
- 修改Nginx Ingress Controller的部署:
首先,找到你的Nginx Ingress Controller的Deployment。它可能在ingress-nginx
命名空间中:
kubectl get deployments -n ingress-nginx
接下来,编辑这个Deployment:
kubectl edit deployments <nginx-ingress-controller-deployment-name> -n ingress-nginx
在args部分添加--http-port=8080
。这样,Nginx Ingress Controller将开始监听8080端口。
...
spec:
template:
spec:
containers:
- name: nginx-ingress-controller
args:
...
- --http-port=8080
...
保存并退出编辑器。这将自动触发Nginx Ingress Controller的重启。
- 创建或修改Ingress资源:
下面是一个Ingress资源的示例,它将8080端口的流量重定向到443端口:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
spec:
tls:
- hosts:
- your-domain.com
secretName: your-tls-secret # 用于SSL证书和私钥的Kubernetes Secret的名称
rules:
- host: your-domain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: your-service-name
port:
number: 8080
保存以上的YAML为ingress.yaml
,然后应用这个配置:
kubectl apply -f ingress.yaml
确保你已经有一个名为your-tls-secret
的Secret,其中存储了SSL证书和私钥,并确保your-service-name
是你希望流量转发到的Service。
- 更新Service资源:
如果你的服务尚未在8080端口上接受流量,你需要更新Service的配置。根据你的具体服务和配置,这一步可能会有所不同。
- 验证配置:
确保你的配置正确并生效。你可以尝试访问你的服务,并检查流量是否已从8080端口重定向到443端口。
以上步骤提供了从8080端口到443端口重定向的基本设置。你可能需要根据你的特定环境和配置进行调整。
更多推荐
已为社区贡献1条内容
所有评论(0)