Kubernetes Ingress

misakivv發表於2024-09-18

       通常情況下,service和pod僅可在叢集內部網路中通過IP地址訪問。所有到達邊界路由器的流量或被丟棄或被轉發到其他地方。從概念上講,可能像下面這樣:

     internet
        |
   ------------
   [ Services ]

       Ingress是授權入站連線到達叢集服務的規則集合。

     internet
        |
   [ Ingress ]
   --|-----|--
   [ Services ]

       你可以給Ingress配置提供外部可訪問的URL、負載均衡、SSL、基於名稱的虛擬主機等。使用者通過POST Ingress資源到API server的方式來請求ingress。 Ingress controller負責實現Ingress,通常使用負載平衡器,它還可以配置邊界路由和其他前端,這有助於以HA方式處理流量。

       Ingress 這個玩意,簡單的理解就是 你原來要改 Nginx 配置,然後配置各種域名對應哪個 Service,現在把這個動作抽象出來,變成一個 Ingress 物件,你可以用 yml 建立,每次不要去改 Nginx 了,直接改 yml 然後建立/更新就行了;那麼問題來了:”Nginx 咋整?”

       Ingress Controller 這東西就是解決 “Nginx 咋整” 的;Ingress Controoler 通過與 Kubernetes API 互動,動態的去感知叢集中 Ingress 規則變化,然後讀取他,按照他自己模板生成一段 Nginx 配置,再寫到 Nginx Pod 裡,最後 reload 一下。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: kube-system.default-lsb
    serviceAppMap: '{"jiankunking-test-web":"jiankunking-test-web"}'
  creationTimestamp: 2018-01-06T02:28:39Z
  generation: 1
  labels:
    loadbalance.caicloud.io/created-by: kube-system.default-lsb
  name: paas
  namespace: default
  resourceVersion: "88837"
  selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/paas
  uid: 4e158c13-f289-11e7-bbb5-005056b14a76
spec:
  rules:
  - host: c.c.jiankunking.net
    http:
      paths:
      - backend:
          serviceName: jiankunking-test-web
          servicePort: 3000
        path: /
status:
  loadBalancer:
    ingress:
    - ip: 10.135.26.97
    - ip: 10.135.26.98

原文地址:
https://www.kubernetes.org.cn/1885.html

個人微信公眾號:
這裡寫圖片描述

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

相關文章