本篇文章是一個深度介紹文,除了探討 K3S 與 K3D 的關係之外,還針對 K3D 的架構與使用方法很詳細的介紹一番,包含了
1. K3D v3 的特色與架構
2. 如何替換 K3D 裡面的 CNI
3. 如何替換 k3D 預設的 Ingress Controller
4. 使用 private registry 來處理
Kubernetes 的變化版本很多,除了 k3s 之外後來還有 k0s 的出現,每個版本都有自己想要解決的問題,而 k3s 則是一個非常輕量的 Kubernetes 版本,其特色有
1. 使用 Flannel 作為其預設 CNI,不講求太多複雜功能,單純用 VXLAN 打造一個 L2 的 overlay 網路
2. 使用 CoreDNS,與原生一樣
3. 使用 SQLite3 當作預設的 DB,而非 etcd3
4. 使用 Traefik 當作預設的 Ingress Controller,原生 K8s 則把這個主動權交給使用者
5. 使用 Containerd 當作預設的 Container Runtime
而 K3D 就是基於 K3S 的測試環境, K3S in Docker,跟 KIND 類似,只是運行的 Kubernetes 發行版本不同。
相較於 KIND 而已, K3D 的架構稍微複雜一點
1. 為了方便測試與存取,k3D 部署的時候也會部署一個 Nginx Server 來當作簡易的 Load-Balacner,讓 K3D 內的 Ingress 服務可以更簡易的被存取。使用者只需要存取該 Load-Balancer 即可,不需要去針對 Node(Docker) 的 IP 存取
2. 可以支援動態加入與刪除節點
本篇文章算是非常詳細的介紹各種參數用法,對於 K3D 這種測試環境有興趣的可以參考看看
https://yannalbou.medium.com/k3s-k3d-k8s-a-new-perfect-match-for-dev-and-test-e8b871aa6a42
「k8s flannel」的推薦目錄:
- 關於k8s flannel 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於k8s flannel 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於k8s flannel 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於k8s flannel 在 flannel is a network fabric for containers, designed for ... - GitHub 的評價
- 關於k8s flannel 在 如何打通K8s 虚拟网络(flannel vxlan 网络)和K8s 2层网络 ... 的評價
- 關於k8s flannel 在 kubernetes flannel network is not working - Stack Overflow 的評價
- 關於k8s flannel 在 KUBERNETES - 5. INSTALLATION : KUBADM INIT, FLANNEL... 的評價
k8s flannel 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
今年終於有時間來寫一個原創的長篇文章了,希望大家繼續支持
不知道大家有沒有想要透過 tcpdump 去錄製 Kubernetes 內Pod的封包但是常常卡關的情況?
今天這邊文章跟大家分享兩種不同的思路
1. 從封包內去錄製封包
2. 從節點上去錄製封包
針對第一點會探討三種方式,包括 kubectl sniff 以及 docker run 直接硬掛 network namespace。
第二種方式則會探討如果是 Flannel 以及 Calico 不同的網路架構下,要如何找到對應的虛擬網卡 (veth)。
如果你有任何不同的方式可以幫忙錄製封包也歡迎討論分享
https://www.hwchiu.com/k8s-tcpdump.html
k8s flannel 在 矽谷牛的耕田筆記 Facebook 的最佳解答
原文在這邊: https://www.teamblind.com/post/50-Reasons-Kubernetes-Sucks-S77O8VZ8
不知道大家看完有什麼想法
我個人認真看完後其實覺得真的是幹樵而已,可以單純當作幹話發洩文就好。有些理由沒什麼前後文,不知道想要表達什麼,有些感覺就是剛好自己踩到通點,基本上任何的軟體架構都可以有類似的議題
稍微看了一下
1. 難道你跑 openstack 就沒有這個感覺嗎? 我自己經驗是更痛苦
2. API 不相容這點我倒覺得還好,沒有遇到特別嚴重的,基本上 k8s 都會給予4-5個版本要使用者替換 apiVersion, 不看警告訊息無腦使用不能怪人
3. charts的問題應該是 Helm Charts 的問題,我倒覺得不是 k8s 自己的問題,不喜歡 charts 何不考慮 kustomize.
4,5 兩個應該是軟體發展一定會遇到的問題,任何系統遇到環境升級都是膽戰心驚吧?
9. 不確定是不是 kubectl 輸入到手酸XD,可以考慮 k9s?
10,11 最後談
13. 為什麼你會有一個兩年不升級的k8s叢集才是一個問題? 不如反過來問,如果你覺得兩年不升級沒問題,為什麼會突然想要升級
14. golang 中槍
19. 我覺得還是可以慢慢看,openstack 等VM為主題的 orchestration 實在是太不平易近人,學習曲線太高
...
32(a). 不太能理解 pause container 的問題是什麼XD,除非最小單位變成 Container 而不是 Pod,不然 Pause 的用途我還沒想到要怎麼取代
32(b). 完全同意, secret 帶來的好處只有透過編碼讓文件內容好處理,可以避掉一堆雙引號,分號等問題
10 跟 11 分別幹瞧了 overlay network 與 service mesh 兩個解決方案的痛點,我覺得很有趣的是這兩個點分別是從不同層面來解決問題。
早期大家碰到 Kubernetes 時都可能使用過 Flannel 這套 CNI,大部分情況下都是急於 VXLAN 來建置 overlay network,透過 UDP 標頭來重新包裝封包並且利用 Layer2,3,4 來重新搭建整個架構網路,是一個專注於底層網路L2-L4的解決方案
目前的 Service Mesh 的則是專注於 L7 的網路傳輸,期望能夠打造出一個串連不同 L7 應用程式的服務,譬如 HTTP,gRPC 等,讓這些應用程式的流量會根據不同 L7 的設定而有不同走法與走向。
只是為了轉發這些不同容器間的封包,最快速的做法就是大量利用已知的架構(iptables,route)等機制來控制各別網路連線,我覺得帶來的缺點就是架構非常龐大,規則非常複雜,大家除錯方式就是不停 restart/reboot,很少人真的能夠講清楚到底每個封包是怎麼被修改的
網路的世界真的非常有趣!
k8s flannel 在 如何打通K8s 虚拟网络(flannel vxlan 网络)和K8s 2层网络 ... 的推薦與評價
2020年3月10日 — 如果是flannel 的话,可以借助同一个etcd 来实现多K8s 集群的Pod 互通,但是service ip 可就不行了,依然是个问题。 以应用中心为视角来看,从上层架构来 ... ... <看更多>
k8s flannel 在 flannel is a network fabric for containers, designed for ... - GitHub 的推薦與評價
Flannel uses either the Kubernetes API or etcd directly to store the network configuration, the allocated subnets, and any auxiliary data (such as the ... ... <看更多>