[Container Network Interface] Bridge Network In Docker
The most import feature of the container is the resource isolation, including the mount, network, user, UTC and PID. that's the reason why we can't see those resources status of the host. The resources isolation are supported by the Linux Kernel and we will demostrate the networking part by the network namespace and also show you how does the docekr use the network namespace and Linux Bridge to proivde the network connectivity for each container.
[Container Network Interface] CNI Introduction
Container Network Interface (CNI) as a Network Interface between the network soluition and the container mechanism. Without the CNI, the network solution developer should implement his/her plugin for every container environment and it must be a disaster. Fortunately, with the help of the CNI, the developer can only focus on one interface and it should work for every container mechanism. In this post, we will see why we need the CNI, what is CNI and how kubernetes use the CNI to provide the network connectiviy for the computing unit, so called Pod.
[Container Network Interface] Implement Your CNI In Golang
As we know, the kubernetes use the CNI to provide the network connectivity for its Pod unit and the cluster administrator can choose what kind of the CNI should be installed in the cluster. For example, if the only requirement is the overlay network, you can choose the flannel CNI and choose the calico CNI if you have the requirement of the BGP. In this post, we will learn how to write your own CNI in golang language. Actually, You can implement it with any language as you like.
[文章導讀] - 基於10G網路的 Kubernetes CNI 效能比較
本篇文章是節錄自網路上一篇關於 CNI 於10G網路下的效能分析,主要是讀後心得分享
Azure Kubernetes Service (AKS) - CNI (I)
除了自行架設 Kubernetes 之外,採用公有雲廠商所提供的 Kubernetes Service 也是一個方便的選擇,然而這種情況下有許多的設定跟功能都會依賴該公有雲廠商自行實作,大部分的功能都會與公有雲本身的架構進行高度整合以提供更方便的使用與操作。本文針對 Container Network Interface (CNI) 於 Azure 中的實現與使用進行了討論,藉此了解公有雲的 CNI 有什麼特別的設計與使用方式
CNI - Flannel - IP 管理篇
本篇文章針對 flannel 如何管理 IP 地址的事情進行探討與研究,許多人初次使用 kubeadm 安裝 flannel 的時候都曾經因為忘記加上 --pod-net-cidr 等參數導致安裝失敗,而這篇文章就會來探討這個參數的意義,為什麼需要這個參數,同時搭配前述已經分享過的 IPAM 管理,來重新仔細觀察 flannel 的運作過程
CNI - Flannel - VXLAN 封包運作篇
本篇文章作為 CNI - Flannel 的最後一篇探討,藉由研究 VXLAN 的運作原理來研究到底 flannel 是如何透過 vxlan 來讓不同節點上並且擁有私有 IP 的 Pod 可以互相溝通溝通的。
CNI - Flannel - 安裝設定篇
CNI 的選擇一直以來都是個探討的議題,各式各樣的 CNI 有者不同的特色與效果,使用者要怎麼選擇往往不知所措。老實說對於大部分的使用情況來說,其實 CNI 的選擇影響也不太大,畢竟很多情境只是要求網路可以通暢即可,沒有其他的需求。 而本文則針對一個常見的 CNI, Flannel 進行探討,來研究該 CNI 到底怎麼安裝的,安裝的過程怎麼處理設定檔案的問題。
CNI 常見問題整理
本篇文章紀錄了作者這陣子以來與大家討論 CNI 時常常被問到的問題,透過對這些問題的理解可以更加深入的去學習什麼是 CNI, 以及 CNI 本身能夠能夠觸擊的功能與範圍。同時也附上一些相關的資源讓大家可以從不同角度更深入的去研究 CNI 的領域。
CNI 閒談
本文作為網路分享的最後一篇,針對各式各樣的 CNI 相關議題進行討論,並且分享個人自身看法,沒有太深的技術研究與分析
Container Network Interface 介紹
本文作為網路系列文章的第一篇,將從 Container Network Interface 下手,相對於 Container Runtime Interface, CNI 以是個類似的架構,但是主打網路能力為主,至於網路能力這個字眼其實很模糊,畢竟不同情境,不同需求都會有不同的實現方式,很難用一個通用的說法來函索有可能力。本文會跟大家介紹 CNI 的相關資訊,包括標準的內容,相關設定,最後也會透過一些比較跟大家介紹不同 Container 實現方式其最後底層去操作 CNI 的方式也截然不同
Kubernetes - IP 重複奇遇記
本文探討一種備份復原過程中可能會發生的 IP 重複問題,文章開頭先用簡單的模擬方式來模擬如何產生 IP 重複問題,接下來針對 CNI 的運作來探討其運作流程。
kubernetes 與 CNI 的互動
Container Network Interface 的標準制定後,接下來要探討 kubernetes 本身與 CNI 的整合,這部分就如同 Contaienr Runtime Interface 一樣,可以透過 kubelet 的方式告知 kubernetes cluster 該啟用什麼樣的設定來設定 cluster 的網路,同時系統上也有相關的參數用來設定 CNI 相關的檔案,譬如執行檔以及設定檔,同時要注意的是 CNI 是基於節點為單位,所以設定的時候是每台機器都要設定。
使用 golang 開發第一個 CNI 程式
本篇文章算是一個手把手實作的文章,主要會介紹如何使用 golang 開發一個基於 Linux Bridge 的 CNI 應用程式,並且介紹如何搭配設定檔來使用這個 CNI 操作 Linux Network Namespace, 藉由這篇文章的過程理解到一個 CNI 的運作及開發,對於往後研究其他 CNI 都會有一些幫助,特別是城市的框架跟概念。 最後本篇開發的 CNI 應用程式其實是可以直接套用到 Kubernetes 裡面使用,就因為都遵循 CNI 的規則
初探 CNI 的 IP 分配問題 (IPAM)
IP Address Management 作為 CNI 本身可提供的一個重要功能之一,更是 kubernetes 本身不可或缺的能力,透過 IPAM 的管理可以讓每個 Pod 都獲得一個 IPv4 或是 IPv6 的地址,至於 Pod 本身能不能上網,那就是 CNI 本身要處理的問題,根據不同需求來建議不同的網路環境提供 Pod 上網能力。本篇文章主要是探討 IPAM 的部分,針對三個由官方維護作為參考用的 IPAM,分別介紹他們的用途以及使用方式,來深入了解 IPAM 設計需要思考的部分以及相關議題
常見 CNI (Container Network Interface) Plugin 介紹
作為一個 Kubernetes 使用者,可能都有聽過 CNI/CRI/CSI 等眾多的介面。而 CNI 作為一個掌管整個 Kubernetes 叢集網路的核心元件,負責提供各式各樣的網路功能。目前為數眾多的開源 CNI 專案們,到底各別擁有什麼樣的特性與效果,作為一個管理者在選擇 CNI 的時候應該怎麼考慮。本文針對常見的 CNI 專案們進行了一個簡單的分析與介紹,讓讀者能夠更加得清楚自己需要的功能及應用是什麼,才能夠更聰明的選擇所要的 CNI
從網路觀點來看導入 Kubernetes 的可能痛點
探討 Kubernetes 架構下網路能力的不足,導入 Kubernetes 時有可能會無法解決的網路架構問題。