連結: https://lwn.net/Articles/835962/
LWN.net 這幾天有一個文章是關於基於安全性考量下,改用其他工具取代 scp, 譬如使用 sftp 以及 rsync. 有常常使用 scp 這個工具的人可以看一下這篇文章討論的原因,以及如果要改成使用 rsync, 可以有什麼樣的參數使用
連結: https://lwn.net/Articles/835962/
LWN.net 這幾天有一個文章是關於基於安全性考量下,改用其他工具取代 scp, 譬如使用 sftp 以及 rsync. 有常常使用 scp 這個工具的人可以看一下這篇文章討論的原因,以及如果要改成使用 rsync, 可以有什麼樣的參數使用
這邊跟大家分享一篇 GitOps 實作心路歷程,這篇文章中總共使用下列工具
連結: https://www.dex.dev/dex-videos/development-clusters
不知道大家第一次接觸 kubernetes 的時候都是使用哪套解決方案來打造你的 K8s 叢集? 亦或是作為一個開發者,你平常都怎麼架設 K8s 來本地測試? 這篇文章提到了作為一個 Local Kubernetes Cluster 幾個選擇,並且點出了三個需要解決的問題
連結: https://blog.cloudflare.com/the-sad-state-of-linux-socket-balancing/
今天要來跟大家分享一個單一節點如何提高應用程式吞吐量與服務能力的方式 這個方式主要探討的是應用程式對於網路連線的 I/O 模型,試想一個常見的使用範例。 一個主要的 Process 會去聽取一個固定的 port number (ex port 80),並且通知後面眾多的 worker 來幫忙處理這些封包連線,而這些 worker 的工作就是處理連線。 整個架構中是一個 1 v.s N 的狀況, 一個負責 Listen ,N個負責處理連線內容 而今天要分享的則是想要讓架構變成 N v.s N 的狀況, 會有 N 個 Process, 每個 Process 配上一個 Worker。 而這 N個 process 同時共享一樣的 Port (ex, port 80) 這種情況下可以減少多個 worker 共享一個 listen socket 時的各種保護機制,取而代之的則是每個 listen socket 配上一個專屬的 worker 來處理。 要達成這樣的架構非常簡單,只要透過 SO_REUSEPORT 這個 socket option 告 訴 Kernel 當前這個 PORT 可以重複使用。 當封包送到 kernel 後則是由 kernel 幫你分配封包到所有使用相同地址的 Listen Socket (Process) 根據 nginx 官方文章的測試,這種架構下對於 RPS (Request per second) 有顯著的提升,有興趣的可以看看下列兩篇文章
連結: https://faun.pub/kubernetes-multi-tenancy-a-best-practices-guide-88e37ef2b709?gi=6e43dc5ed7a
這邊跟大家分享一篇關於 Kubernetes 多租戶的相關文章,該文章中探討到底多租戶的定義,以及實現上的難易程度
如果你機會跑過 kubernetes 1.18 版本,一定要試試看最基本的 kubectl get pods -o yaml,看看是不是內容裡面多出了非常多 f:{} 系列的檔案,導致整個 Yaml 變得非常冗長,閱讀不易,甚至想要抓取到最原始> 的內容都非常麻煩。 Kubernetes 官方 Github 上還有相關的 issue 再討論這個欄位,詢問是否有辦法能夠清除。不少人都提出了一些希望的用法來處理 Issue: https://github.com/kubernetes/kubernetes/issues/90066 目前看下來最簡單的做法還是透過 kubectl plugin, kubectl-neat 來幫忙完成,可以透過 krew 這個 kubectl 管理工具來安裝管理 https://github.com/itaysk/kubectl-neat 此工具可以將 Server 上得到 Yaml 的內容給整理最後得到最初的檔案 至於到底什麼是 managedFiles? 這個由欄位的出現是因為 1.18 以後,已經將 Server Side Apply 更新策略預設啟用而導致的,而 Server Side Apply 則是一種用來管理 Declarative 設定檔案的方式,對使用者來> 說基本上完全無感,因為一切都還是透過 kubectl apply 來使用,只是到底如何判斷 當前檔案內容與系統上內容誰先誰後,誰對誰錯,甚至當有人透過 kubectl edit 去編輯內容的時候,到底該怎麼更新。
連結: https://www.suse.com/c/rancher_blog/rancher-2-5-delivers-on-computing-everywhere-strategy/
Rancher v2.5 版本與過往的差異,這邊就來重點節錄一些改變
連結: https://mucahit.io/2020/01/27/finding-ideal-jvm-thread-pool-size-with-kubernetes-and-docker/
如果有在 Kubernetes 內部署 Java 應用程式的人,千萬不要錯過這篇文章,此文章中分享 Java 應用程式關於 Thread Pool Size 的問題,同時當 Java 應用程式容器化並且部署到 Kubernettes 內之後,該怎麼設定 JVM 來讓其能夠更高效率的於容器化環境下工作
想必大家應該都聽過 Operator 的概念,透過 CRD 自定義資源格式並且配上程式化的運作邏輯來控管相關資源的操作。甚至有廠商針對 Operator 的概念來設計一個 Framework 讓大家能夠更輕鬆或是有效率的撰寫屬> 於自己的 Operator。 然而 Operator 真的一定好嗎? 底下這則推文則是來自於 Darren Shepherd(CTO/Co-founder Rancher Lab ) 對於一篇由 RedHat 所發表關於 Operator 好處文章的反面看法。 其推文最後表示:「Right now invest your IT teams time in GitOps, not operators.」 快來看看 Darren 與其他網友針對這些議題的討論,並且分享看看你的想法
連結: https://medium.com/hashicorp-engineering/creating-module-dependencies-in-terraform-0-13-4322702dac4a
Terraform 這個工具想必大家都玩過也聽過,這邊非常推薦大家升級到 0.13 版本,這個版本中解決了關於 Module 之間依賴性的問題,能夠使用原先就有的 depends_on 的語法來直接描述,而不需要按照過往以前用> 各種 fake resource 等機制來完成,整個 Terraform 程式碼會更佳清晰與簡單!