侧边栏壁纸
博主头像
OUCOS运维技术博客 博主等级

行动起来,活在当下

  • 累计撰写 11 篇文章
  • 累计创建 10 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录
K8S

K8S ingress配置http/https访问,自定义强制转跳

OUCOS
2022-11-04 / 0 评论 / 0 点赞 / 274 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2024-10-07,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

要求k8s的http访问不能强制转跳https,记录一下配置https访问,并且设置不进行强制转跳

链接

K8S官网:[https://kubernetes.io/](https://kubernetes.io/)

K8S中文文档:[https://kubernetes.io/zh-cn/docs/home/](https://kubernetes.io/zh-cn/docs/home/)

技术栈

服务

K8S== 1.22.6

HTTP访问

svc名称为service服务名,用于绑定service

namespace命名空间用于筛选对应的命名空间

端口用于将端口一对一绑定

pod标签名用于绑定指定的容器

访问域名 指的是设置域名访问该容器端口

后缀如直接域名访问则输入`\`,根据需求设置`域名/后缀`访问

映射端口要跟绑定的svc中映射的端口一致

apiVersion: v1

kind: Service

metadata:

  name: svc名称

  namespace: namespace命名空间

  labels:

    app: pod标签名

spec:

  ports:

  - name: service

    protocol: TCP

    port: 端口

    targetPort: 目标端口

  selector:

    app: pod标签名

---

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

  name: pod标签名

  namespace: namespace命名空间

spec:

  rules:

  - host: 访问域名 

    http:

      paths:

      - path: 后缀

        pathType: Prefix

        backend:

          service:  

            name: svc名称

            port:

              number: 映射端口

HTTPS访问

导入证书

在阿里云下载Nginx类型的SSL证书

<--提前准备好证书,选择证书目录执行导入-->

kubectl create secret tls 自定义secret名称 --key xxx.key --cert xxx.pem -n 命名空间

<--查看生成的secret,确认证书存在即可-->

kubectl describe secret 自定义secret名称 -n 命名空间

20221104143907

配置HTTPS访问

svc名称为service服务名,用于绑定service

namespace命名空间用于筛选对应的命名空间

端口用于将端口一对一绑定

pod标签名用于绑定指定的容器

访问域名 指的是设置域名访问该容器端口

secret名称为导入证书的secret名称

后缀如直接域名访问则输入`\`,根据需求设置`域名/后缀`访问

映射端口要跟绑定的svc中映射的端口一致

apiVersion: v1

kind: Service

metadata:

  name: svc名称

  namespace: namespace命名空间

  labels:

    app: pod标签名

spec:

  ports:

  - name: service

    protocol: TCP

    port: 端口

    targetPort: 目标端口

  selector:

    app: pod标签名

---

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

  name: pod标签名

  namespace: namespace命名空间

  annotations:

    kubernetes.io/ingress.class: "nginx"

    nginx.ingress.kubernetes.io/cors-allow-origin: "*"

spec:

  tls:

  - hosts: 

    - 访问域名

    secretName: secret名称

  rules:

  - host: 访问域名

    http:

      paths:

      - path: 后缀

        pathType: Prefix

        backend:

          service:  

            name: svc名称

            port:

              number: 映射端口

20221104144922

禁用http强制跳转https

在ingress部署文件中的annotations添加

禁用强制跳转

nginx.ingress.kubernetes.io/ssl-redirect: "false"

启用强制跳转

nginx.ingress.kubernetes.io/ssl-redirect: "true"

<--原来-->

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

  name: pod标签名

  namespace: namespace命名空间

  annotations:

    kubernetes.io/ingress.class: "nginx"

    nginx.ingress.kubernetes.io/cors-allow-origin: "*"

<--禁用ssl跳转-->

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

  name: pod标签名

  namespace: namespace命名空间

  annotations:

    kubernetes.io/ingress.class: "nginx"

    nginx.ingress.kubernetes.io/cors-allow-origin: "*"

    nginx.ingress.kubernetes.io/ssl-redirect: "false"

20221104145025

0

评论区