目录
介绍
本次所有操作都是在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

最低0.47元/天 解锁文章
3326






