tags: MeetupCo-writing

CNTUG Meetup #19

Session 1. 牛牛帶你了解 Kubernetes 網路功能與原理

  • Kubernetes
  • Distributing algor.

Functionality

What Is Load Balancing?

Distribute Algor.

  • Random
  • Round Robin
  • Hash Header
    • L3, L4, L7
  • Server Status

Special Protocol

  • gRPC
    • 基於TCP往上連線

True/False?

  • Kubernets service (L4)
  • Kubernets ingress (L7)

Typcial Implementaion

  • NGINX
    • 以Load-balancer作為轉接點
    • NAT內網連Server(可不使用加密連線)
      • 除非需要更高安全性才需加密
    • NAT外網連Client(必須加密、需要憑證)
    • 新型的協定看不懂
      • e.g gRPC
  • Client-Side
    • 由client決定怎麼做Load-balancing
    • 中間者作為Address list provider
    • Real use caes: gRPC (multiple gRPC request on the same TCP connection)

LoadBalancing gRPC for Kubernetes Cluster Services

  • Middleware
    • Proxy
      • NGINX
      • 中間者做轉送工作,兩邊是兩條連線
      • 最重要是Load balancer本身是否看得懂協定
    • Transparency
      • 中間者偷偷改封包header
      • 同一條TCP connection
      • Kubernetes的Service就是使用這種方式(ClusterIP)

Default of K8S setting

  • K8S service
  • 預設使用Iptables
    • 管理所有iptables
      • 定期清除所有nodes iptables rule再新增
      • 使用機率來分散流量
      • 由於是一層一層用機率去選擇,所以使用在比較大的環境(如pod很多),會有很多條iptables rule比對,效能比較差

Conntrack Linux Kernel helps you

  • 只有第一包SYN包 紀錄更改
  • 看懂也無法做
    • TCP 3-way handshake還沒開始送資料
    • 必須在開始傳送資料時才能看到L7封包
    • 而且任何更改protocol header會造成TCP得重新建立連線
  • 改成使用UDP就可以達到consistent connection
    • 因為UDP沒有 3-way handshake,會直接傳資料
    • 可以直接在linux kernel 用iptables module寫判斷式去抓UDP的data,然後根據data執行不同iptables rule。

Session 2. Enhanced Security & Visibility in Microservice Based Architecture

  • security of k8s

Microservices

  • Monolithic -> Microservices
  • Load Balancer -> ADC-WAF
  • K8S ingress (App. delivery container)
    • 3-way handshake後觀察封包 做LB
    • WAF:web app. firewall
    • Time series distribution
      • RTT, lantency
    • Secure Service Mesh
      • tranditional FW -> 將所有服務經過Secure Mesh FW
    • Access Control Between microservices
      • transparent proxy
      • level control
    • 跨node
      • 單純加密
      • SSL
  • Harmony Controller
    • 控制管理所有的 南北(N-S traffic)、東西向(E-W traffic) 的 ADC (控管所有 policy)
    • LADC 會將 Pods(每個服務)連線資訊等傳給這個控制器,來做統整、控制、與顯示。
  • A10 Kubernetes connector
    • 與 harmony controller 互動
    • implemented ingress
    • 主要工作為 monitor 目前 Pods 的活動,讓 controller 能夠依據這些訊息達到 "自動化"

讓安全與分析的處理變得更簡單 - 產品宗旨(於微服務的管理上)

主要的 component:

  • LADC (主要因為商用環境中的流量為 L7,因此普通的 load balancer 是沒有辦法使用)
  • Harmony controller (管理所有 Pods 的行為、與提供相關的可視化分析結果)
  • Kubernetes connector (提供 controller 底下 Pods 相關的資訊)

Session 3. Rancher Pipeline 以及 Kubenetes 在大流量服務的部署經驗

Why we use Rancher ?

  • 支援不同Orchestration Provider, 可以管不同環境的K8s

RKE 自建整個集群

  • 三台機器就可以構成Cluster, LB用L7沒有關係, 但要自己帶特殊header
  • 可以使用HelmChart install Rancher
  • 如果使用一台機器Loading會太重,因為RANCHER做了很多事情

Kubenetes integrates with SonarQube

  • Unit Tests -> sonar scan -> build -> deploy
  • Pushed microservice setting to Github -> use ARGO CD to update pods

Kustomize

  • Define configMap
  • Base + Overlays to separate environments
  • Dynamically replace images' tag name
  • JSON Patch

Drone

  • Simoutaneously run unrelated pipeline

Argo CD

Rancher Pipeline

  • No need to install the other things else
  • Support GitHub, GitLab, GitBucket, etc
  • Rancher pipeline will set up a docker registry, minio and jenkins

Pressure Test

what need to be notice

  • Test resources limitation by pressure tests

Sessionn 4. How SDN and Cloud Native Drive Access Network

What's open networking from

  • focus on hardware
  • Design on chips (P4 language)
  • SDN is different from open networking

What's MEC

  • Mobile Edge Computing
    • O-RAN: controller manages hardware resources, slicing

      • ONAP as orchestrator
      • O-Ran want to manage RAM with SDN
    • vEPC Solution

    • P4 Solution

    • Total Solutions - RH VCO

      • SGW-U -> CDN
    • Intel Solution

      • Intel Openness
      • DNS resolution
      • Intel is also in O-RAN program

Broadband Access(寬頻網路實體連線)

  • PON System

  • OLT 機箱is a bottleneck when the traffic comes up, ONT matches to ONT, if you want to change vendor, you'll need to change your system.

  • vOLT Hardware Abstract (VOLTHA)

    • 將OLT抽象化:方便依照使用者數量啟動所需的資源
    • 翻譯的部分再southbound adapters,由各廠商提供的。
    • 以前的OLT跟ONT都要配合(使用同一家),都會被綁死,透過這種方式可以結合不同廠商的OLT,ONT。
  • OB-BAA

  • R-CORD(Detail-oriented architect)

  • SEBA - base on VOLTHA, from ONF

    • offload
    • multiple access solution
  • ONF COMAC

    • Moble access Edge Computing 改變名稱 Mobile Multi access edge computing

Challenges

  • 補齊傳統功能了嗎?
    • 傳統load balancing使用IBGP、OSPF是否能支援
  • 價錢比較
  • 安全性問題
  • 與舊系統整合
  • 政治問題,電信商思維相對保守,很怕出問題

Q&A

  • Q: 從EPC下車還算是MVC嗎?