通過Ingress暴露服務

一、爲什麼需要Ingress

一個重要的原因是每個LoadBalancer服務都需要自己的負載均衡器,以及獨有的公有IP地址,而Ingress只需要一個公網IP就能爲許多服務提供訪問。當客戶端向Ingress發送HTTP請求時,Ingress會根據請求的主機名和路徑決定請求轉發到服務。

二、創建一個簡單的Ingress服務

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx
  namespace: test
spec:
  rules:
    - host: mingkang-web.cedarhd.com        #ingress將域名mingkang-web映射到你的服務
      http:
        paths:
          - backend:
              serviceName: nginx-svc       #將所有的請求發送到nginx-svc服務的80端口
              servicePort: 80

[root@test-nodes1 k8s-yaml-file]# kubectl get pod -o wide -n test
NAME    READY   STATUS    RESTARTS   AGE     IP           NODE                      NOMINATED NODE   READINESS GATES
nginx   1/1     Running   0          6d22h   172.7.21.6   test-nodes1.cedarhd.com   <none>           <none>
[root@test-nodes1 k8s-yaml-file]# kubectl get svc -n test
NAME        TYPE        CLUSTER-IP        EXTERNAL-IP   PORT(S)   AGE
nginx-svc   ClusterIP   192.168.222.228   <none>        80/TCP    22m
[root@test-nodes1 k8s-yaml-file]# ipvsadm -ln | grep 192.168.222.228 -C 2
TCP  192.168.212.130:8080 nq
  -> 172.7.21.6:80                Masq    1      0          0         
TCP  192.168.222.228:80 nq
  -> 172.7.21.6:80                Masq    1      0          0         
TCP  192.168.237.252:8080 nq
[root@test-nodes1 k8s-yaml-file]# kubectl get ingress -n test
NAME    HOSTS                      ADDRESS   PORTS   AGE
nginx   mingkang-web.cedarhd.com             80      16m

三、通過相同的Ingress暴露多個服務

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx
  namespace: test
spec:
  rules:
    - host: mingkang-web.cedarhd.com        #ingress將域名mingkang-web映射到你的服務
      http:
        paths:
          - path: /abc
            backend:
              serviceName: nginx-svc  #將mingkang-web.cedarhd.com/abc的請求將會轉發至ngins-svc服務
              servicePort: 80
          - path: /def
            backend:
              serviceName: nginx-dd   #將mingkang-web.cedarhd.com/def的請求將會轉發至nginx-dd服務  
              servicePort: 81
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章