kubernetes的ingress实现同时支持http和https

这篇具有很好参考价值的文章主要介绍了kubernetes的ingress实现同时支持http和https。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

生产环境中对外的服务一般需要配置https服务,使用ingress也可以很方面的添加https的证书。默认情况下,如果为该 Ingress 启用了 TLS,控制器会使用 308 永久重定向响应将 HTTP 客户端重定向到 HTTPS 端口 443。( Ingress 里配置了 https 证书的话,默认就一定会走 https)。即默认情况下,如果在ingress 规则中配置了tls,所有http的流量都会重定向到https。在一些特殊场景下,有请求地址是http访问就走http,请求地址是https访问就走https。

1.ingress的http规则

---
apiVersion: networking.k8s.io/v1beta1   #版本低于1.19的使用
kind: Ingress
metadata:
  name: test-ingress
spec:
  rules:
  - host: www.test.com
    http:
      paths:
      - path:
        backend:
          serviceName: test-svc
          servicePort: 8080




---
apiVersion: networking.k8s.io/v1 
kind: Ingress
metadata:
  name: test-ingress
spec:
  rules:
  - host: www.test.com
    http:
      paths:
      - path:
        backend:
          service:
            name: test-svc
            port: 
              number:8080

apiVersion: networking.k8s.io/v1beta1和apiVersion: networking.k8s.io/v1也就backend的地方不一样

2.https的规则

---
apiVersion: networking.k8s.io/v1beta1   #版本低于1.19的使用
kind: Ingress
metadata:
  name: test-ingress
spec:
tls:
  - hosts:
    - www.test.com
    secretName: wzlinux-secret
  rules:
    - host: www.test.com
    http:
      paths:
      - path:
        backend:
          serviceName: test-svc
          servicePort: 8080




---
apiVersion: networking.k8s.io/v1 
kind: Ingress
metadata:
  name: test-ingress
spec:
tls:
  - hosts:
    - www.test.com
    secretName: wzlinux-secret
  rules:
  - host: www.test.com
    http:
      paths:
      - path:
        backend:
          service:
            name: test-svc
            port: 
              number:8080

http和https规则只是添加tls规则,hosts是证书所授权的域名列表,secretName是证书的secret的名字。

3.实现http访问不强制跳转到https

---
apiVersion: networking.k8s.io/v1beta1   #版本低于1.19的使用
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
tls:
  - hosts:
    - www.test.com
    secretName: test-secret
  rules:
    - host: www.test.com
    http:
      paths:
      - path:
        backend:
          serviceName: test-svc
          servicePort: 8080




---
apiVersion: networking.k8s.io/v1 
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
tls:
  - hosts:
    - www.test.com
    secretName: test-secret
  rules:
  - host: www.test.com
    http:
      paths:
      - path:
        backend:
          service:
            name: test-svc
            port: 
              number:8080

每个应用服务的Ingress.规则中,添加注解nginx.ingress.kubernetes.io/ssl-redirect: "false"。或者在全局配置中,使用全局禁用ssl-redirect: "false"参数。文章来源地址https://www.toymoban.com/news/detail-615373.html

到了这里,关于kubernetes的ingress实现同时支持http和https的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx 同一端口 同时支持http与https 协议

    通过 nginx ,让同一端口 同时支持http与https 协议 通过使用 Nginx,可以实现同一端口同时支持 HTTP 和 HTTPS 协议。下面是一种可能的配置方式: 配置 HTTP 服务 在 Nginx 配置文件中,添加以下配置块用于处理 HTTP 请求: 配置 HTTPS 服务 在 Nginx 配置文件中,添加以下配置块用于处理

    2024年02月07日
    浏览(43)
  • Nginx 一个端口同时支持 http 和 https协议【详细步骤】

    🚀 背景:使用 Nginx 1.24.0 代理前端及后端应用,假设称之为 A 系统。A 系统最初使用的是 http 协议,后来改成了 https 协议。 Nginx 配置 https 访问【图文教程】:Nginx 配置 https 访问 😭 问题:修改为 https 协议后,发现一些问题。即 依赖 A 的系统没有改成 https,导致报错 。 👉

    2024年01月25日
    浏览(48)
  • Nginx配置同时支持http和https两种方式访问

    http: https: Nginx的ssl模块安装 进入到目录的sbin目录下,输入 如果出现 (configure arguments: --with-http_ssl_module), 则已安装(下面的步骤可以跳过,直接进行第五步)。 一般情况下都是不存在ssl模块的,接下来进入到你的解压缩后的nginx目录,注意这里不是nginx安装目录,是解压缩后

    2024年02月13日
    浏览(51)
  • nginx配置若依框架vue打包项目(同时支持http和https)

    该配置模版主要是若依框架前后端配置,若只是配置普通的vue项目,直接复制一下小模块即可   #vue页面访问配置      location  / {              root /www/wwwroot/www.xxx.com;             # autoindex on;              try_files $uri $uri/ /index.html;              index  index.html index.htm

    2024年01月25日
    浏览(53)
  • 用Kubernetes(k8s)的ingress部署https应用

    我之前有一片文章写的是用ingress暴露应用,这篇文章接着上一片文章继续讲使用ingress暴露https的应用。请先参考上一片文章将ingress先在Kubernetes集群当中安装上: ingress暴露应用文章地址:https://blog.csdn.net/m0_51510236/article/details/132536519 因为是暴露https,所以需要域名证书。分以

    2024年02月10日
    浏览(45)
  • 【kubernetes系列】k8s ingress配置websocket支持

    背景:公司的后端同事在代码调试过程中需要上传一个文件,调用的websocket接口 浏览器上传文件一直卡主,通过浏览器调试模式发现无法正常获取websocket的连接 websocket的接口访问可以通过wscat命令(需单独安装)测试。 浏览器访问报错如下: WebSocket connection to ‘ws://*******

    2024年02月06日
    浏览(52)
  • k8s 对外服务之 ingress|ingress的对外暴露方式|ingress http,https代理|ingress nginx的认证,nginx重写

    service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制;对集群外部,他类似负载均衡器,可以在集群内外部对pod进行访问。 在Kubernetes中,Pod的IP地址和service的ClusterIP仅可以在集群网络内部使用,

    2024年02月10日
    浏览(50)
  • ingress 400 Bad Request The plain HTTP request was sent to HTTPS port

      问题现象         访问时返回400 Bad Request,并提示 The plain HTTP request was sent to HTTPS port 。 问题原因         Ingress Controller到后端Pod请求使用了默认的HTTP请求,但后端是HTTPS服务。。 解决方案         添加注释,让其使用https请求 官方配置:Annotations - NGINX Ingres

    2024年02月12日
    浏览(50)
  • ingress实现https代理访问

    证书 密钥 创建证书 钥 secrets 保存密钥信息,部署pod时把secrets挂载到pod openssl reg -x509 -sha256 -nodes -days 365 -newkey ras:2048 -keyout tls.key -out tls.crt -subi \\\"/CN=nginxsvc/0=nginxsvc\\\" req: 生成证书文件的情趣 x509: 生成x.509自签名的证书 sha256:表示使用sha-256的散列算法 -nodes:表示生成的密钥不加密

    2024年01月19日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包