【运维】如何使用Ingress将应用的8080端口映射到https的443?

本文作为操作指导,帮助运维的同学完成k8s中的应用,将8080端口自动重定向到443端口。

配置操作步骤

为了实现从8080端口到443端口的重定向,你需要修改Nginx Ingress Controller的配置并设置相应的Ingress资源。以下是完整的步骤:

  1. 修改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的重启。

  1. 创建或修改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。

  1. 更新Service资源

如果你的服务尚未在8080端口上接受流量,你需要更新Service的配置。根据你的具体服务和配置,这一步可能会有所不同。

  1. 验证配置:

确保你的配置正确并生效。你可以尝试访问你的服务,并检查流量是否已从8080端口重定向到443端口。

以上步骤提供了从8080端口到443端口重定向的基本设置。你可能需要根据你的特定环境和配置进行调整。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Istio的Ingress Gateway可以监听物理的80和443端口,并将外部流量导入到服务网格中。要配置Ingress Gateway监听这些端口,需要进行以下步骤: 1. 创建一个命名空间(如果已经存在可以跳过): ``` kubectl create namespace istio-system ``` 2. 配置Ingress Gateway的服务类型为NodePort或LoadBalancer。如果使用NodePort类型,Kubernetes会为Ingress Gateway分配一个随机的端口。如果使用LoadBalancer类型,需要确保你的Kubernetes集群支持外部负载均衡器,并会为Ingress Gateway分配一个外部IP地址。 3. 创建Ingress Gateway的配置文件,例如 ingress-gateway.yaml: ```yaml apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: my-ingress-gateway namespace: istio-system spec: selector: istio: ingressgateway servers: - port: number: 80 name: http protocol: HTTP hosts: - "*" - port: number: 443 name: https protocol: HTTPS hosts: - "*" tls: mode: SIMPLE credentialName: my-credential-secret ``` 在上面的配置中,我们定义了两个端口,一个是80端口用于HTTP流量,另一个是443端口用于HTTPS流量。`hosts`字段设置为`"*"`,表示接受来自任意主机的流量。`tls`字段用于配置HTTPS,`credentialName`指定了一个凭证的名称,需要提前创建好。 4. 应用配置文件: ``` kubectl apply -f ingress-gateway.yaml ``` 完成上述步骤后,Istio的Ingress Gateway将会监听物理的80和443端口,并将流量导入到服务网格中。你可以根据实际需求修改配置文件中的参数,例如指定特定的主机或配置更复杂的TLS设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值