###### tags: `Meetup`、`Co-writing`
# CNTUG Meetup #19
[TOC]
## Session 1. 牛牛帶你了解 Kubernetes 網路功能與原理
- Kubernetes
- Distributing algor.
### Functionality
[What Is Load Balancing?](https://www.nginx.com/resources/glossary/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](https://medium.com/google-cloud/loadbalancing-grpc-for-kubernetes-cluster-services-3ba9a8d8fc03)
- 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
- hey: https://github.com/rakyll/hey
- k6: https://k6.io/
### 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嗎?