Ingress是从Kubernetes集群外部访问集群内部服务的入口。
在这里插入图片描述

实验来理解ingress

1. 创建两个deployment,并在每个deployment上创建service
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-server
spec:
  replicas: 2
  selector:
    matchLabels:
      app: hello-server
  template:
    metadata:
      labels:
        app: hello-server
    spec:
      containers:
      - name: hello-server
        image: nginx   
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx-demo
  name: nginx-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx-demo
  template:
    metadata:
      labels:
        app: nginx-demo
    spec:
      containers:
      - image: nginx
        name: nginx
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: nginx-demo
  name: nginx-demo
spec:
  selector:
    app: nginx-demo
  ports:
  - port: 8000
    protocol: TCP
    targetPort: 80
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: hello-server
  name: hello-server
spec:
  selector:
    app: hello-server
  ports:
  - port: 8000
    protocol: TCP
    targetPort: 80

在master节点上,执行 kubectl apply -f create-nginx-service.yaml # 上面的yaml内存保存为文件create-nginx-service.yaml
在这里插入图片描述

2. 修改 hello-server

因为刚才我们在部署的过程中,用了同一个nginx镜像,为了实验上能看到效果,我们修改hello-server服务对应的pod中nginx的内容。
在这里插入图片描述
在这里插入图片描述
这样hello-server服务对应的nginx中index.html内容与nginx-demo服务对应的nginx内容已经不同了。

3. 给ingress添加规则,根据域名,访问不同的serivce
apiVersion: networking.k8s.io/v1  #v1 1.19+
kind: Ingress  
metadata:
  name: ingress-host-bar
spec:
  ingressClassName: nginx
  rules:
  - host: "hello.service.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: hello-server
            port:
              number: 8000
  - host: "demo.service.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"  # 把请求会转给下面的服务,下面的服务一定要能处理这个路径,不能处理就是404
        backend:
          service:
            name: nginx-demo  ## java,比如使用路径重写,去掉前缀nginx
            port:
              number: 8000
Logo

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

更多推荐