###### 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嗎?