K8S Ingress 常用配置


介绍

本次所有操作都是在K8S 1.26.14 上面操作,太老的版本不知道会不会有问题。
更多 Ingress 配置请查看ingress-nginx 官网

ingress 安装 基本使用请查看

点击跳转

域名重定向

配置成功以后再次访问会直接跳转到百度首页。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: prometheus-ingress
  namespace: monitoring
  annotations:
    ## 配置域名重定向,将百度的域名改成自己业务需要的即可
    nginx.ingress.kubernetes.io/permanent-redirect: https://www.baidu.com
spec:
  ingressClassName: nginx
  rules:
  - host: prometheus.monitoring.cn
    http:
      paths:
      - backend:
          service:
            name: prometheus-k8s
            port:
              name: web
        path: /
        pathType: Prefix
  tls:
  - hosts:
    - prometheus.monitoring.cn
    secretName: prometheus.monitoring.cn

修改域名重定向的同时还可以修改状态码,默认是301,本次修改成308.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: prometheus-ingress
  namespace: monitoring
  annotations:
    ## 配置域名重定向,将百度的域名改成自己业务需要的即可
    nginx.ingress.kubernetes.io/permanent-redirect: https://www.baidu.com
    ## 修改状态码
    nginx.ingress.kubernetes.io/permanent-redirect-code: '308'
spec:
  ingressClassName: nginx
  rules:
  - host: prometheus.monitoring.cn
    http:
      paths:
      - backend:
          service:
            name: prometheus-k8s
            port:
              name: web
        path: /
        pathType: Prefix
  tls:
  - hosts:
    - prometheus.monitoring.cn
    secretName: prometheus.monitoring.cn

再次访问的时候可以看到状态码已经修改了(在网页调试里面查看)

前后端分离配置

部署好以后用这个域名访问即可prometheus.monitoring.cn/test,在nginx上面这个配置就是地址重写。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: prometheus-ingress
  namespace: monitoring
  annotations:
    nginx.ingress.kubernetes.io/use-regex: "true"  ## 启用正则表达式匹配路径
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  ingressClassName: nginx
  rules:
  - host: prometheus.monitoring.cn
    http:
      paths:
      - backend:
          service:
            name: prometheus-k8s
            port:
              name: web
        path: /test(/|$)(.*)
        pathType: ImplementationSpecific
  tls:
  - hosts:
    - prometheus.monitoring.cn
    secretName: prometheus.monitoring.cn

默认证书配置

测试环境可以用openssl 生成一个证书即可,正常生产环境是需要购买的证书才可以的要不浏览器会提示不安全。
比如申请的域名是以 *.monitoring.cn 的证书 就可以设置默认域名。

在 K8S上面创建证书。

## 创建证书
kubectl create secret tls monitoring.cn --key monitoring.cn.key --cert monitoring.cn_bundle.pem -n ingress-nginx

## 查看创建的证书
[root@master01 ~]# kubectl get secrets -n ingress-nginx
NAME                                  TYPE                 DATA   AGE
monitoring.cn                          kubernetes.io/tls    2      65s

修改 ingress-nginx 配置

kubectl edit daemonsets.apps -n ingress-nginx ingress-nginx-controller

### 找到这一行
    spec:
      containers:
      - args:
        - /nginx-ingress-controller
        ###  在此处添加 “- --default-ssl-certificate=ingress-nginx/monitoring.cn”   等号后面写命名空间/后面加上名字 (不是非得创建到 ‘ingress-nginx’理论上那个命名空间都可以)
        - --default-ssl-certificate=ingress-nginx/monitoring.cn
        - --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller
        - --election-id=ingress-nginx-leader

保存退出即可。

使用方法:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: prometheus-ingress
  namespace: monitoring
spec:
  ingressClassName: nginx
  rules:
  - host: prometheus.monitoring.cn
    http:
      paths:
      - backend:
          service:
            name: prometheus-k8s
            port:
              name: web
        path: /
        pathType: Prefix

NGINX 将提供默认证书,但不会强制 HTTPS 重定向。就是用HTTP访问也行HTTPS访问也行。

如果需要强制转换HTTPS访问 在后面添加 tls 即可

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: prometheus-ingress
  namespace: monitoring
spec:
  ingressClassName: nginx
  rules
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值