{"id":554,"title":"kubernetes-ingress","good":0,"bad":0,"hit":1102,"created_at":"2023-01-06 06:52:50","content":"
Ingress<\/p>
\u5b83\u662fservice\u7684\u7edf\u4e00\u7f51\u5173\u5165\u53e3,\u5b83\u5176\u5b9e\u5c31\u662f\u901a\u8fc7nginx\u5b9e\u73b0\u7684<\/p>
\u901a\u8fc7ingress\u53ef\u4ee5\u5b9e\u73b0\u6309url\u5c06\u8bf7\u6c42\u5206\u914d\u5230\u4e0d\u540cservice\uff0c\u8fd8\u53ef\u4ee5\u5b9e\u73b0\u8def\u5f84\u91cd\u5199\uff0c\u6d41\u91cf\u9650\u5236\u7b49<\/p>
\u3010\u5b89\u88c5\u3011<\/p>
wget https:\/\/raw.githubusercontent.com\/kubernetes\/ingress-nginx\/controller-v0.47.0\/deploy\/static\/provider\/baremetal\/deploy.yaml<\/p>
<\/p>
#\u4fee\u6539\u955c\u50cf<\/p>
vi deploy.yaml<\/p>
#\u5c06image\u7684\u503c\u6539\u4e3a\u5982\u4e0b\u503c\uff1a<\/p>
registry.cn-hangzhou.aliyuncs.com\/lfy_k8s_images\/ingress-nginx-controller:v0.46.0<\/p>
<\/p>
kubectl apply -f deply.yaml<\/p>
# \u68c0\u67e5\u5b89\u88c5\u7684\u7ed3\u679c<\/p>
kubectl get pod,svc -n ingress-nginx<\/p>
<\/p>
# \u6700\u540e\u522b\u5fd8\u8bb0\u628aservice\u66b4\u9732\u7684\u7aef\u53e3\u8981\u653e\u884c<\/p>
<\/p>
\u3010\u5e94\u7528\u4e3e\u4f8b\u3011<\/p>
\u4ee5\u4e0b\u901a\u8fc7deployment\u90e8\u7f72\u4e24\u4e2aservice:
<\/p>
hello-server(\u5bf9\u5e94pod\u4e3ahello-server)<\/p>
nginx-demo(\u5bf9\u5e94pod\u4e3anginx)
<\/p>
----------------------------------------<\/p>
apiVersion: apps\/v1<\/p>
kind: Deployment<\/p>
metadata:<\/p>
name: hello-server<\/p>
spec:<\/p>
replicas: 2<\/p>
selector:<\/p>
matchLabels:<\/p>
app: hello-server<\/p>
template:<\/p>
metadata:<\/p>
labels:<\/p>
app: hello-server<\/p>
spec:<\/p>
containers:<\/p>
- name: hello-server<\/p>
image: registry.cn-hangzhou.aliyuncs.com\/lfy_k8s_images\/hello-server<\/p>
ports:<\/p>
- containerPort: 9000<\/p>
---<\/p>
apiVersion: apps\/v1<\/p>
kind: Deployment<\/p>
metadata:<\/p>
labels:<\/p>
app: nginx-demo<\/p>
name: nginx-demo<\/p>
spec:<\/p>
replicas: 2<\/p>
selector:<\/p>
matchLabels:<\/p>
app: nginx-demo<\/p>
template:<\/p>
metadata:<\/p>
labels:<\/p>
app: nginx-demo<\/p>
spec:<\/p>
containers:<\/p>
- image: nginx<\/p>
name: nginx<\/p>
---<\/p>
apiVersion: v1<\/p>
kind: Service<\/p>
metadata:<\/p>
labels:<\/p>
app: nginx-demo<\/p>
name: nginx-demo<\/p>
spec:<\/p>
selector:<\/p>
app: nginx-demo<\/p>
ports:<\/p>
- port: 8000<\/p>
protocol: TCP<\/p>
targetPort: 80<\/p>
---<\/p>
apiVersion: v1<\/p>
kind: Service<\/p>
metadata:<\/p>
labels:<\/p>
app: hello-server<\/p>
name: hello-server<\/p>
spec:<\/p>
selector:<\/p>
app: hello-server<\/p>
ports:<\/p>
- port: 8000<\/p>
protocol: TCP<\/p>
targetPort: 9000<\/p>
<\/p>
\u4ee5\u4e0b\u518d\u90e8\u7f72\u4e00\u4e2aingress\uff0c\u5b9e\u73b0\u901a\u8fc7hello.atguigu.com\u8bbf\u95eehello-server\u670d\u52a1\uff0cdemo.atguigu.com\u8bbf\u95eenginx-demo\u670d\u52a1<\/p>
-----------------------
<\/p>
apiVersion: networking.k8s.io\/v1<\/p>
kind: Ingress <\/p>
metadata:<\/p>
name: ingress-host-bar<\/p>
spec:<\/p>
ingressClassName: nginx<\/p>
rules:<\/p>
- host: "hello.atguigu.com"<\/p>
http:<\/p>
paths:<\/p>
- pathType: Prefix<\/p>
path: "\/"<\/p>
backend:<\/p>
service:<\/p>
name: hello-server<\/p>
port:<\/p>
number: 8000<\/p>
- host: "demo.atguigu.com"<\/p>
http:<\/p>
paths:<\/p>
- pathType: Prefix<\/p>
path: "\/nginx" # \u628a\u8bf7\u6c42\u4f1a\u8f6c\u7ed9\u4e0b\u9762\u7684\u670d\u52a1\uff0c\u4e0b\u9762\u7684\u670d\u52a1\u4e00\u5b9a\u8981\u80fd\u5904\u7406\u8fd9\u4e2a\u8def\u5f84\uff0c\u4e0d\u80fd\u5904\u7406\u5c31\u662f404<\/p>
backend:<\/p>
service:<\/p>
name: nginx-demo ## java\uff0c\u6bd4\u5982\u4f7f\u7528\u8def\u5f84\u91cd\u5199\uff0c\u53bb\u6389\u524d\u7f00nginx<\/p>
port:<\/p>
number: 8000<\/p>
<\/p>
<\/p>
-------------------------\u8def\u5f84\u91cd\u5199------------------------<\/p>
apiVersion: networking.k8s.io\/v1<\/p>
kind: Ingress <\/p>
metadata:<\/p>
annotations:<\/p>
nginx.ingress.kubernetes.io\/rewrite-target: \/$2<\/p>
name: ingress-host-bar<\/p>
spec:<\/p>
ingressClassName: nginx<\/p>
rules:<\/p>
- host: "hello.atguigu.com"<\/p>
http:<\/p>
paths:<\/p>
- pathType: Prefix<\/p>
path: "\/"<\/p>
backend:<\/p>
service:<\/p>
name: hello-server<\/p>
port:<\/p>
number: 8000<\/p>
- host: "demo.atguigu.com"<\/p>
http:<\/p>
paths:<\/p>
- pathType: Prefix<\/p>
path: "\/nginx(\/|$)(.*)" # \u628a\u8bf7\u6c42\u4f1a\u8f6c\u7ed9\u4e0b\u9762\u7684\u670d\u52a1\uff0c\u4e0b\u9762\u7684\u670d\u52a1\u4e00\u5b9a\u8981\u80fd\u5904\u7406\u8fd9\u4e2a\u8def\u5f84\uff0c\u4e0d\u80fd\u5904\u7406\u5c31\u662f404<\/p>
backend:<\/p>
service:<\/p>
name: nginx-demo ## java\uff0c\u6bd4\u5982\u4f7f\u7528\u8def\u5f84\u91cd\u5199\uff0c\u53bb\u6389\u524d\u7f00nginx<\/p>
port:<\/p>
number: 8000<\/p>
<\/p>
<\/p>
<\/p>
---------------------------\u6d41\u91cf\u9650\u5236------------------------------<\/p>
apiVersion: networking.k8s.io\/v1<\/p>
kind: Ingress<\/p>
metadata:<\/p>
name: ingress-limit-rate<\/p>
annotations:<\/p>
nginx.ingress.kubernetes.io\/limit-rps: "1"<\/p>
spec:<\/p>
ingressClassName: nginx<\/p>
rules:<\/p>
- host: "haha.atguigu.com"<\/p>
http:<\/p>
paths:<\/p>
- pathType: Exact<\/p>
path: "\/"<\/p>
backend:<\/p>
service:<\/p>
name: nginx-demo<\/p>
port:<\/p>
number: 8000<\/p>
<\/p>"}