Kubernetes Ingress

Nhất, vi thập ma nhu yếu Ingress

Ngã môn sử dụng truyện thống đích NodePort loại hình đích Service đích xác năng tương tập quần nội đích phục vụ bạo lộ cấp tập quần ngoại bộ khách hộ đoan khứ phóng vấn, đãn thị sử dụng giá chủng loại hình đích Service tồn tại dĩ hạ vấn đề:

  • Nhất cá đoan khẩu chỉ năng sử dụng nhất cá phục vụ, sở hữu thông quá NodePort bạo lộ đích đoan khẩu đô nhu yếu đề tiền quy hoa;

  • Như quả tập quần thượng đích Service đích sổ lượng thái đa đích thoại, bạo lộ đích NodePort đoan khẩu bất cụ hữu liên tục tính. Hậu kỳ duy hộ thành bổn thái đại, thả bất nghi vu quản lý;

  • Vô luận thị Iptables hoặc giả thị Ipvs mô hình đích Service đô phối trí tại Linux nội hạch trung đích Netfilter chi thượng tiến hành tứ tằng điều độ. Thị nhất chủng bỉ giác thông dụng đích điều độ khí. Chi trì điều độ HTTP, Mysql đẳng ứng dụng tằng phục vụ, bất quá, dã chính thị công tác vu truyện thâu tằng tòng nhi sử đắc tha vô pháp tố đáo loại tự tá tái HTTPS trung đích SSL hội thoại, dã bất chi trì cơ vu URL đích thỉnh cầu điều độ cơ chế, nhân vi tha công tác tại truyện thâu tằng. kubernetes dã bất chi trì vi thử loại phụ tái quân hành phối trí nhậm hà loại hình đích kiện khang trạng thái kiểm trắc cơ chế.

Vi liễu giải quyết giá chủng nhu cầu, đề cung liễu nhất chủng cao cấp đích lưu lượng quản lý, dã tựu Ingress hòa Ingress Controller, kubernetes sử dụng Ingress Controller lai tiếp thu sở hữu nhập khẩu đích lưu lượng, nhiên hậu thông quá Ingress tư nguyên lai định nghĩa lưu lượng như hà khu phân, dĩ cập như hà chuyển phát đích quy tắc. Hữu liễu Ingress hòa Ingress khống chế khí. Ngã môn tựu khả dĩ trực tiếp định nghĩa lưu lượng chuyển phát quy tắc lai phát bố phục vụ, nhi vô nhu sang kiến hứa đa đích NodePort hòa LoadBalancer loại hình đích Service.

image-20240917180553792

Nhị, thập ma thị Ingress,Ingress Controller

Ingress thị Kubernetes trung đích nhất cá API đối tượng, dụng vu định nghĩa tập quần nội bộ phục vụ đích ngoại bộ khả phóng vấn tính. Giản nhi ngôn chi, Ingress thị dụng lai miêu thuật như hà tương ngoại bộ thỉnh cầu lộ do đáo tập quần nội bộ đích phục vụ đích quy tắc tập hợp. Ingress đề cung liễu nhất chủng định nghĩa HTTP lộ do quy tắc đích phương thức, sử đắc ngoại bộ khách hộ đoan khả dĩ thông quá nhất cá thống nhất đích nhập khẩu điểm phóng vấn tập quần nội bộ đích phục vụ.

img

Ingress tương đương vu nhất cá 7 tằng đích phụ tái quân hành khí, thị kubernetes đối phản hướng đại lý đích nhất cá trừu tượng, tha đích công tác nguyên lý loại tự vu Nginx, khả dĩ lý giải thành tại Ingress lí kiến lập chư đa ánh xạ quy tắc, Ingress Controller thông quá giam thính giá ta phối trí quy tắc tịnh chuyển hóa thành Nginx đích phản hướng đại lý phối trí, nhiên hậu đối ngoại bộ đề cung phục vụ.

Tại giá lí hữu lưỡng cá hạch tâm khái niệm:

  • ingress: kubernetes trung đích nhất cá đối tượng, tác dụng thị định nghĩa thỉnh cầu như hà chuyển phát đáo service đích quy tắc
  • ingress controller: Cụ thể thật hiện phản hướng đại lý cập phụ tái quân hành đích trình tự, đối ingress định nghĩa đích quy tắc tiến hành giải tích, căn cư phối trí đích quy tắc lai thật hiện thỉnh cầu chuyển phát, thật hiện phương thức hữu ngận đa, bỉ như Nginx, Contour, Haproxy đẳng đẳng

Tam, Ingress đích công tác nguyên lý

Ingress ( dĩ Nginx vi lệ ) đích công tác nguyên lý như hạ:

  1. Dụng hộ biên tả Ingress quy tắc, thuyết minh na cá vực danh đối ứng kubernetes tập quần trung đích na cá Service
  2. Ingress khống chế khí động thái cảm tri Ingress phục vụ quy tắc đích biến hóa, nhiên hậu sinh thành nhất đoạn đối ứng đích Nginx phản hướng đại lý phối trí
  3. Ingress khống chế khí hội tương sinh thành đích Nginx phối trí tả nhập đáo nhất cá vận hành trứ đích Nginx phục vụ trung, tịnh động thái canh tân
  4. Đáo thử vi chỉ, kỳ thật chân chính tại công tác đích tựu thị nhất cá Nginx liễu, nội bộ phối trí liễu dụng hộ định nghĩa đích thỉnh cầu chuyển phát quy tắc

image-20240917184743873

Tứ, Ingress phối trí tư nguyên mô bản

apiVersion:networking.k8s.io/v1# tư nguyên sở chúc đích API quần tổ hòa bản bổn
kind:Ingress# tư nguyên loại hình
metadata:# nguyên sổ cư
name:<string># tư nguyên danh xưng
namespace:<string># mệnh danh không gian
spec:
ingressClassName:"nginx"# thích dụng đích Ingress khống chế khí loại biệt, tu minh xác chỉ minh
rules:<[]object># Ingress quy tắc liệt biểu
-host:<string># hư nghĩ chủ cơ đích FQDN, tục xưng vực danh
http:<object>
paths:<[]object># hư nghĩ chủ cơ đích PATH định nghĩa liệt biểu
-path:<string># thất phối dĩ thập ma khai đầu loại tự vu nginx trung đích location
pathType:<string># Prefix tiền chuế thất phối, bất khu phân đại tiểu tả Exact. Tinh xác thất phối URL, khu phân đại tiểu tả
backend:<object># hậu đoan
service:<object># quan liên hậu đoan đích Service
name:<string># hậu đoan Service đích danh xưng
port:<object># hậu đoan Service đích đoan khẩu
name:# đoan khẩu danh xưng
number:# đoan khẩu hào

Ngũ, thật lệ

1, đáp kiến Ingress hoàn cảnh

1.1, Ingress-Nginx quan võng địa chỉ

#Ingress-Nginx quan võng địa chỉ
https://kubernetes.github.io/ingress-nginx/

#Ingress-Nginx GitHub địa chỉ
https://github.com/kubernetes/ingress-nginx

1.2, master tiết điểm hạ tái deploy.yaml

wgethttps://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.0.4/deploy/static/provider/baremetal/deploy.yaml

image-20240917195944285

1.3, sở hữu tiết điểm đề tiền pull tất tu đích kính tượng

dockerpull registry.cn-hangzhou.aliyuncs.com/eagleslab/service:ingresswebhook111

dockertag c41e9fcadf5a k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1

dockerpull registry.cn-hangzhou.aliyuncs.com/eagleslab/service:ingresscontroller104

dockertag a9f76bcccfb5 k8s.gcr.io/ingress-nginx/controller:v1.0.4

1.4, tu cải tịnh ứng dụng deploy.yaml văn kiện

Như quả thị đề tiền pull đích kính tượng, yếu san trừ điệu deploy.yaml trung đối kính tượng sha256 đích kiểm tra, tại image tiêu thiêm trung, san trừ @sha256 đáo hành vĩ

sed-i's/@sha256:.*//g'deploy.yaml

kubectl apply-fdeploy.yaml

image-20240917220226247

1.5, tra khán ingress-nginx

kubectl get pods-ningress-nginx-lapp.kubernetes.io/name=ingress-nginx

image-20240918101812536

1.6, tra khán service

kubectl get svc-ningress-nginx

image-20240918101850149

2, chuẩn bị service hòa pod

image-20240917222647664

2.1, sang kiến nginx hòa tomcat đích Deployment

apiVersion:v1
kind:Namespace
metadata:
name:dev

---

apiVersion:apps/v1
kind:Deployment
metadata:
name:nginx-deployment
namespace:dev
spec:
replicas:3
selector:
matchLabels:
app:nginx-pod
template:
metadata:
labels:
app:nginx-pod
spec:
containers:
-name:nginx
image:nginx:1.17.1
ports:
-containerPort:80

---

apiVersion:apps/v1
kind:Deployment
metadata:
name:tomcat-deployment
namespace:dev
spec:
replicas:3
selector:
matchLabels:
app:tomcat-pod
template:
metadata:
labels:
app:tomcat-pod
spec:
containers:
-name:tomcat
image:tomcat:8.5-jre10-slim
ports:
-containerPort:8080

---

apiVersion:v1
kind:Service
metadata:
name:nginx-service
namespace:dev
spec:
selector:
app:nginx-pod
clusterIP:None
type:ClusterIP
ports:
-port:80
targetPort:80

---

apiVersion:v1
kind:Service
metadata:
name:tomcat-service
namespace:dev
spec:
selector:
app:tomcat-pod
clusterIP:None
type:ClusterIP
ports:
-port:8080
targetPort:8080

2.2, sang kiến tịnh tra khán đối ứng svc,pod

kubectl apply-ftomcat-nginx.yaml

kubectl get pods,svc-ndev

image-20240918103916622

3, HTTP đại lý

3.1, sang kiến ingress-http.yaml

ingressClassName: nginx

Sử dụng nginx đích IngressClass ( quan liên đích ingress-nginx khống chế khí )

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

apiVersion:networking.k8s.io/v1
kind:Ingress
metadata:
name:ingress-tomcat
namespace:dev
spec:
rules:
-host:tomcat.bbj1030.cn
http:
paths:
-path:/
pathType:Prefix
backend:
service:
name:tomcat-service
port:
number:8080
ingressClassName:nginx

3.2, ứng dụng tịnh tra khán

kubectl get ing-ndev

image-20240918120230378

kubectl describe ing-ndev

image-20240918120311196

3.3, bổn địa điện não phối trí hosts giải tích

Tương dĩ thượng nginx.bbj1030.cn hòa tomcat.bbj1030.cn giải tích đáo master tiết điểm 192.168.112.10 thượng

192.168.112.10 nginx.bbj1030.cn
192.168.112.10 tomcat.bbj1030.cn

image-20240918120828477

3.4, thông quá vực danh + đoan khẩu hào tra khán

nginx.bbj1030.cn:32596

tomcat.bbj1030.cn:32596

image-20240918112152192

image-20240918120508649

image-20240918130957117

4, HTTPS đại lý

4.1, sinh thành chứng thư

openssl req-x509-sha256-nodes-days365-newkeyrsa:2048-keyouttls.key-outtls.crt-subj"/C=CN/ST=BJ/L=BJ/O=nginx/CN=bbj1030.cn"

4.2, sang kiến mật thược

kubectl create secret tls tls-secret--keytls.key--certtls.crt

image-20240918121104780

4.3, sang kiến ingress-https.yaml

apiVersion:networking.k8s.io/v1
kind:Ingress
metadata:
name:https-nginx
namespace:dev
spec:
tls:
-hosts:
-nginx.bbj1030.cn
secretName:tls-secret# chỉ định bí thược
rules:
-host:nginx.bbj1030.cn
http:
paths:
-path:/
pathType:Prefix
backend:
service:
name:nginx-service
port:
number:80
ingressClassName:nginx
---

apiVersion:networking.k8s.io/v1
kind:Ingress
metadata:
name:tomcat-https
namespace:dev
spec:
tls:
-hosts:
-tomcat.bbj1030.cn
secretName:tls-secret# chỉ định bí thược
rules:
-host:tomcat.bbj1030.cn
http:
paths:
-path:/
pathType:Prefix
backend:
service:
name:tomcat-service
port:
number:8080
ingressClassName:nginx

4.4, ứng dụng tịnh tra khán

Nhu yếu tiên san trừ chi tiền sang kiến đích ingress bất nhiên hội báo thác

image-20240918121547056

kubectl delete-fingress-http.yaml

kubectl apply-fingress-https.yaml

image-20240918121408401

kubectl get ing-ndev

kubectl describe ing-ndev

image-20240918121642798

4.5, thông quá https:// vực danh + đoan khẩu hào phóng vấn

https://nginx.bbj1030.cn:31563

https://tomcat.bbj1030.cn:31563

image-20240918131142580

image-20240918121928061

Bình luận
Thiêm gia hồng bao

Thỉnh điền tả hồng bao chúc phúc ngữ hoặc tiêu đề

Hồng bao cá sổ tối tiểu vi 10 cá

Nguyên

Hồng bao kim ngạch tối đê 5 nguyên

Đương tiền dư ngạch3.43Nguyên Tiền vãng sung trị >
Nhu chi phó:10.00Nguyên
Thành tựu nhất ức kỹ thuật nhân!
Lĩnh thủ hậu nhĩ hội tự động thành vi bác chủ hòa hồng bao chủ đích phấn ti Quy tắc
hope_wisdom
Phát xuất đích hồng bao
Thật phóNguyên
Sử dụng dư ngạch chi phó
Điểm kích trọng tân hoạch thủ
Tảo mã chi phó
Tiền bao dư ngạch 0

Để khấu thuyết minh:

1. Dư ngạch thị tiền bao sung trị đích hư nghĩ hóa tệ, án chiếu 1:1 đích bỉ lệ tiến hành chi phó kim ngạch đích để khấu.
2. Dư ngạch vô pháp trực tiếp cấu mãi hạ tái, khả dĩ cấu mãi VIP, phó phí chuyên lan cập khóa trình.

Dư ngạch sung trị