網路、負載平衡與安全

Kubernetes 入門

Frank Heilmann

Platform Architect and Freelance Instructor

更多標籤與選取器

Labels(標籤)

  • 附加在 Kubernetes 物件(如 Pod 或 Node)的鍵值配對
  • 可用來組織物件的子集合
  • 可隨時修改
  • 範例:
    • environment: prod
    • app: my_cool_app
    • has_GPU: true

Selectors(選取器)

  • 透過標籤來識別物件
  • 範例:

    • ...    
      selector:
          environment: prod
          app: my_cool_app
      ...
      
    • ...
      nodeSelector:
        has_GPU: true
      ...
      
Kubernetes 入門

網路與 Services

Kubernetes 服務

  • 每個 Pod 都有其叢集範圍的 IP(網際網路位址)
  • 可用於 Pod 之間通訊
  • 實務上不太好用,因為 Pod 隨時可能重啟並獲得新 IP
  • 透過 Services 對接 Pod,提供穩定連線
Kubernetes 入門

Service 清單檔(Manifest)

Kubernetes 服務

apiVersion: v1
kind: Service
metadata:
  name: Kubernetes_Service_2
spec:
  type: ...
  selector:
    app: app2 
  ...
Kubernetes 入門

負載平衡

負載平衡

  • Kubernetes 中的 load balancer(負載平衡器) 會把負載分配到各個 Pod
  • 避免資源負載不均,提高效率並縮短回應時間
  • 例:

    • 由多個 Pod 提供同一服務
    • 負載平衡器會將流量平均分配到各 Pod
Kubernetes 入門

Kubernetes 中的負載平衡

apiVersion: v1
kind: Service
metadata:
  name: <service name>
spec:
  type: LoadBalancer
  selector:
    <key1>: <value1>
    <key2>: <value2>
  ...
  • 負載平衡器通常由 Kubernetes 供應商(雲端供應商)預先設定
  • 不需為負載平衡器另宣告清單檔,會自動建立並附加到該 Service
Kubernetes 入門

Ingress

Kubernetes Ingress

  • Ingress 物件用來將叢集外部的 HTTP 與 HTTPS 請求(流量)路由到叢集內的 Services
  • Ingress 規則定義哪些請求由哪些 Service 服務
  • 通常會與負載平衡搭配使用
Kubernetes 入門

Kubernetes 安全性

  • 現代 IT 架構的安全性非常重要,但領域龐雜且多面向。
  • Kubernetes 具備保護其上應用程式所需的元件,例如:

    • 用於機敏物件(如密碼、token、金鑰等)的「Secret」API

    • 支援加密網路通訊的工具與 API

    • 使用者驗證方法
    • 以角色為基礎與以屬性為基礎的存取控制(「RBAC」與「ABAC」)
Kubernetes 入門

一起來練習吧!

Kubernetes 入門

Preparing Video For Download...