企業運維實戰--k8s學習筆記6.Ingress加密、認證以及地址重寫
- 一、Ingress 加密
- 二、Ingress 認證
- 三、Ingress 地址重寫
一、Ingress 加密
生成加密密鑰
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=nginxsvc/O=nginxsvc"

創建secrets對應密鑰
kubectl create secret tls tls-secret --key tls.key --cert tls.crt
kubectl get secrets

編輯ingress檔案
vim ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-nginx
spec:
tls:
- hosts:
- www1.westos.org
secretName: tls-secret
rules:
- host: www1.westos.org
http:
paths:
- path: /
backend:
serviceName: nginx-svc
servicePort: 80

拉起容器,查看ingress資訊
kubectl apply -f ingress.yaml
kubectl get ingress


443埠已開,
測驗:curl www1.westos.org 回傳3開頭的http回傳碼,表示已經重定向
curl www1.westos.org -I 查看重定向地址

-k 訪問加密域名
curl -k https://www1.westos.org

二、Ingress 認證
安裝生成認證整數的插件
yum install -y httpd-tools
生成證書,輸入認證密碼
htpasswd -c auth hyl

創建證書到k8s secret
kubectl create secret generic basic-auth --from-file=auth
kubectl get secrets

編輯檔案匯入證書
vim ingress-nginx/ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-nginx
annotations:
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: basic-auth
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - hyl'
spec:
tls:
- hosts:
- www1.westos.org
secretName: tls-secret
rules:
- host: www1.westos.org
http:
paths:
- path: /
backend:
serviceName: nginx-svc
servicePort: 80

拉起資源清單
kubectl apply -f ingress.yaml

查看證書資訊是否已添加
kubectl describe ingress

訪問測驗:
firefox:www1.westos.org
需要認證登陸才可訪問

三、Ingress 地址重寫
根目錄重定向到hostname.html
annotations:
nginx.ingress.kubernetes.io/app-root: /hostname.html

拉起容器,訪問測驗:


訪問域名www1.westos.org直接跳轉到指定目錄的下

根目錄重定向到westos,并添加地址重寫
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-nginx
annotations:
nginx.ingress.kubernetes.io/app-root: /westos
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: basic-auth
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - hyl'
spec:
tls:
- hosts:
- www1.westos.org
secretName: tls-secret
rules:
- host: www1.westos.org
http:
paths:
- path: /westos(/|$)(.*)
backend:
serviceName: nginx-svc
servicePort: 80
拉起資源清單,查看資訊
kubectl apply -f ingress-nginx/ingress.yaml
kubectl describe ingress

測驗:
逐級代理測驗
域名代理到/westos
curl -I www1.westos.org
curl -I www1.westos.org/westos

-k訪問443加密埠,顯示需要認證;-u 后跟認證用戶和密碼即可查看,
curl -I -k https://www1.westos.org/westos
curl -I -k -u hyl:westos https://www1.westos.org/westos

curl -k -u hyl:westos https://www1.westos.org/westos
curl -k -u hyl:westos https://www1.westos.org/westos/hostname.html

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291394.html
標籤:其他
上一篇:樹莓派寶塔部署hexo博客
下一篇:Linux 掛載本地yum源詳解
