Tư liêu
Ingress-Nginx github võng chỉ: https://github.com/kubernetes/inress-nginx
Ingress-Nginx quan phương võng chỉ: https://kubernetes.github.io/ingress-nginx/
Nginx dĩ NodePort đích hình thức khứ cân Pod giao hỗ
Nguyên lý
Store giam thính phương thức thị dĩ Pod đích hình thức hướng ngã môn APiServer phát khởi liên tiếp tiến hành giam thính, như quả phát sinh liễu nhất ta tân đích sổ cư tả nhập hội tả nhập đáo tuần hoàn đội liệt lí khứ (updatteChannel),NginxController hội giam thính đáo updaetChannel lí đích sự kiện phát sinh nhất thứ tuần hoàn hậu hội canh tân nhất cá sự kiện tả nhập đáo đồng bộ đội liệt (syncQueue) đẳng đãi bị hiệp trình khứ canh cải phối trí văn kiện, hiệp trình hội định kỳ đích tòng đội liệt lí lạp thủ tha nhu yếu chấp hành thiêm gia đích nhậm vụ, như quả hữu trực tiếp tu cải đích nhậm vụ, hội trực thông đáo hiệp trình ( lưỡng cá hiệp trình chi gian thông tín ) thu thủ đáo sở hữu yếu canh tân đích sổ cư hội phán đoạn thị phủ trọng tái tả nhập sổ cư đích phương án, hoàn thị đẳng đãi thiêm gia, như quả hữu đích thoại hội tả nhập đáo nginx chủ phối trí văn kiện trọng tân tái nhập ngã môn đích sổ cư, bất nhu yếu đích thoại trực tiếp phát tống cấu tạo post tức khả, tối hậu hội dĩ nginx mô khối khứ vận hành
An trang
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/mandatory.yaml
kubectl get pod -n ingress-nginx # tra khán
Tài dụng Node Port hình thức ( lỏa kim chúc thôi tiến )
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml
kubectl get svc -n ingress-nginx # tra khán
docker save -o văn kiện danh.tar kính tượng # tương kính tượng bảo tồn vi văn kiện
Ingress HTTP đại lý phóng vấn
deployment, Service, ingress yaml văn kiện
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-dm
spec:
replicas: 2
template:
metadata:
labels:
name: nginx-dm
spec:
containers:
- name: nginx
image: goulinux/myapp:v1
imagePullPolicy: IfNotPersent
ports:
continerPort: 80
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
ports:
- port: 80
targetPort: 80
protocol: TCP
selector:
app: nginx
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-test
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /
backend:
serviceName: nginx-svc
servicePort: 80
Ingress HTTPS đại lý phóng vấn
deployment, Service, ingress yaml văn kiện
Sang kiến chứng thư cập cert tồn trữ phương thức
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj
“/CN=nginxsvc/O=nginxsvc”
kubectl create secret tls tls-secret --key tls.key --cert tls.cr
apiVersion: extensions/v1betav1
kind: Deployment
metadata:
name: deployment3
spec:
replicas: 2 # phó bổn sổ
selector:
matchLabels:
app: nginx3
template:
metadata:
labels:
name: nginx3
spec:
conteiners:
name: nginx3
image: guolinux/myapp:v3
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: svc-3
spec:
ports:
- port: 80
targetPort: 80
protocol: TCP
selector:
name: nginx3
Ingress-nginx
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: https
spec:
tls:
- hosts:
- foo.bar.com
secretName: tls-secret # secret bảo tồn đích danh xưng
rules:
- host: foo.bar.com
http:
paths:- path: /
backend:
serviceName: svc-3
servicePort: 80
- path: /
Nginx tiến hành BasicAuth
yum -y install httpd
htpsswd -c auth foo # auth vi văn kiện. foo vi dụng hộ danh
kubectl create secret generic basic-auth --from-file=auth
apiVersion: extensions/v1beta1
kind:Ingress
metadata:
name: ingress-with-outh
annotaions:
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: basic-auth
nginx.ingeress.kubernetes.io/auth-realm: ‘Authentication Required - foo’
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /
backend:
serviceName: svc-4
servicePort: 80
Nginx tiến hành trọng tả
Danh xưng miêu thuật trị nginx.ingress.kubernetes.io/rewrite-target tất tu trọng định hướng đích mục tiêu uri xuyến nginx.ingress.kubernetes.io/ssl-redirect chỉ định vị trí bộ phân thị phủ cận khả phóng vấn ssl ( đương ssh chứng thư bao hàm thời mặc nhận vi True ) bố nhĩ nginx.ingress.kubernetes.io/force-ssl-redirect tức sử ingress vị khải dụng TLS, dã cường chế trọng định hướng đáo SSL bố nhĩ nginx.ingress.kubernetes.io/app-root định nghĩa Controller tất tu trọng định hướng đáo ứng dụng trình tự đích cân, như quả tha tại ’/' thượng hạ văn trung xuyến nginx.inress.kubernetes.io/use-regex chỉ định ingress lộ kính định nghĩa thượng thị phủ sử dụng chính tắc biểu đạt thức bố nhĩ
apiVersion: extensions/v1betav1
kind: Ingress
metadata:
name: ingress-nginx
annotaions: nginx.ingress.kubernetes.io/rewrite-target: http://foo.bar.com:31975/hostname.html
spec:
rules:
- host: foo2.bar.com
patchs: - path: /
backend:
serviceName: svc-1
servicePort: 80
Huprox phối trí khởi lai một hữu nginx canh giản đan, official site một hữu nginx tính năng cao chỉ năng đạt đáo 80% tả hữu