目录

1、案例


1、案例

1、先创建两个测试service暴露两个应用
创建一个httpd的deployment
kubectl create deployment httpd --image=httpd
创建httpd的service
kubectl expose deployment httpd --port=80 --target-port=80
创建一个nginx的deployment
kubectl create deployment nginx --image=nginx
创建nginx的service
kubectl expose deployment nginx --port=80 --target-port=80
查看创建结果
kubectl get svc
创建ingress的yaml代理这两个service
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web2
spec:
  ingressClassName: nginx
  rules:
  - host: web2.aliangedu.cn
    http:
      paths:
      - path: /foo
        pathType: Prefix
        backend:
          service:
            name: nginx
            port:
              number: 80
      - path: /bar
        pathType: Prefix
        backend:
          service:
            name: httpd
            port:
              number: 80
执行此yaml
kubectl apply -f ingress2.yaml
查看
kubectl get ingress
浏览器访问,成功
注意:404的原因是,当你访问代理url路径为foo时,代理到后台也是对应的foo路径,即如下逻辑
web2.aliangedu.cn/foo -> nginx:80/foo(404)
修改pod中nginx的信息,在html下新建一个foo文件夹并写入一个index页面,再回到首页访问
首页也能访问到foo路径下的信息
同理,httpd页面路径一样,因为他是默认访问bar路径
在他的pod内首页默认路径后面加bar目录并新建一个index
首页也可访问
如此,即可警告一个域名转发进入不同的url
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐