https://kubernetes.github.io/ingress-nginx/
1,ingress 重定向
[root@\ k8s_master~]# vim dep-v2.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
---
kind: Service
apiVersion: v1
metadata:
name: wordpress-nginx
spec:
ports:
- name: http
port: 80
targetPort: 80
selector:
app: nginx
[root@\ k8s_master~]# vim ngin_ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: ingress-ingress-nginx-tls
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/permanent-redirect: https://www.taobao.com
#nginx.ingress.kubernetes.io/rewrite-target: https://www.baidu.com/s?wd=nginx
spec:
rules:
- host: www.test-nginx.com
http:
paths:
- path: /
backend:
serviceName: wordpress-nginx
servicePort: 80
[root@\ k8s_master~]# kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
ingress-ingress <none> www.test.com,www.abc.com 192.168.15.33 80 4d9h
ingress-ingress-nginx-tls <none> www.test-nginx.com 192.168.15.33 80 28m
[root@\ k8s_master~]# kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller NodePort 10.102.254.20 <none> 80:30654/TCP,443:31066/TCP 4d4h
ingress-nginx-controller-admission ClusterIP 10.111.163.84 <none> 443/TCP
# 访问http://www.test-nginx.com:30654/
跳转到百度
2,使用正则
[root@\ k8s_master~]# vim ngin_ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: ingress-ingress-nginx-tls
annotations:
kubernetes.io/ingress.class: "nginx"
#nginx.ingress.kubernetes.io/permanent-redirect: https://www.taobao.com
nginx.ingress.kubernetes.io/rewrite-target: https://www.baidu.com/s?wd=$1
spec:
rules:
- host: www.test-nginx.com
http:
paths:
- path: /search/(.+)
backend:
serviceName: wordpress-nginx
servicePort: 80
访问 http://www.test-nginx.com:30654/search/nginx
image.png
3,auth认证登录
https://kubernetes.github.io/ingress-nginx/examples/auth/basic/
1,
[root@\ k8s_master~]# mkdir /auth
[root@\ k8s_master~]# cd /auth/
[root@\ k8s_master/auth]# htpasswd -c auth foo
-bash: htpasswd: command not found
[root@\ k8s_master/auth]# yum install -y httpd-tools
2,
[root@\ k8s_master/auth]# htpasswd -c auth foo
New password:
Re-type new password:
Adding password for user foo
[root@\ k8s_master/auth]# ll
total 4
-rw-r--r--. 1 root root 42 Apr 6 20:46 auth
[root@\ k8s_master/auth]# kubectl create secret generic basic-auth --from-file=auth
secret/basic-auth created
3, 查看
[root@\ k8s_master/auth]# kubectl get secret basic-auth -o yaml
apiVersion: v1
data:
auth: Zm9vOiRhcHIxJFYxTzFjL1YzJFM2UjQzN0c0VXQ5TERWY3BOYktNeC8K
kind: Secret
metadata:
creationTimestamp: "2021-04-06T12:46:56Z"
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:data:
.: {}
f:auth: {}
f:type: {}
manager: kubectl-create
operation: Update
time: "2021-04-06T12:46:56Z"
name: basic-auth
namespace: default
resourceVersion: "289474"
uid: a4064334-aa56-4142-97b8-2447e234ccb4
type: Opaque
[root@\ k8s_master/auth]# cat auth
foo:$apr1$V1O1c/V3$S6R437G4Ut9LDVcpNbKMx/
[root@\ k8s_master~]# vim ngin_ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: ingress-ingress-nginx-tls
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: basic-auth
spec:
rules:
- host: www.test-nginx.com
http:
paths:
- path: /
backend:
serviceName: wordpress-nginx
servicePort: 80
image.png
image.png
image.png
网友评论