新手篇 K8S配置最佳實踐

2021-09-19 22:38:24 字數 970 閱讀 5848

本文件旨在彙總和強調使用者指南、快速開始文件和示例中的最佳實踐。本文已上傳到 kubernetes-handbook 中的第四章最佳實踐章節,本文僅作歸檔,更新以 kubernetes-handbook 為準。

通用配置建議     

裸奔的pods vs replication controllers和 jobs

如果有其他方式替代「裸奔的pod」(如沒有繫結到 replication controller 上的pod),那麼就使用其他選擇。在node節點出現故障時,裸奔的pod不會被重新排程。replication controller總是會重新建立pod,除了明確指定了 restartpolicy: never 的場景。 job 也許是比較合適的選擇。

services

使用label

可以通過簡單地從其service的選擇器中省略特定於發行版本的標籤,而不是更新服務的選擇器來完全匹配replication controller的選擇器,來實現跨越多個部署的服務,例如滾動更新。

容器映象

注意:在生產環境下部署容器應該盡量避免使用 :latest 標籤,因為這樣很難追溯到底執行的是哪個版本的容器和回滾。

使用kubectl

盡量使用 kubectl create -f 。kubeclt會自動查詢該目錄下的所有字尾名為 .yaml 、 .yml 和 .json 檔案並將它們傳遞給 create 命令。

使用 kubectl delete 而不是 stop . delete 是 stop 的超集, stop 已經被棄用。

使用 kubectl bulk 操作(通過檔案或者label)來get和delete。檢視 label selectors 和 using labels effectively 。

使用 kubectl run 和 expose 命令快速建立直有耽擱容器的deployment。檢視 quick start guide 中的示例。

本文轉移k8s技術社群-新手篇 | k8s配置最佳實踐

k8s最佳實踐

通過下面兩種方式可以減小構建映象大小 small base images 有些base映象有非常齊全的工具鏈,考慮考慮是否需要這些工具鏈,還是只需要精簡映象版映象並補充所需的工具 builder pattern 對於一些go c語言專案,使用docker提供的builder pattern,先構建乙...

k8s編排最佳實踐

不受任何控制器 deployment,replicasets,jobs 控制的pod稱之為裸pod foo service host foo service port 如果 中要訪問service,不要使用上述環境變數,最好使用service的dns名稱,上述環境變數只是為了解決有些老的系統無法使用...

K8S 最佳實踐 對映外部服務

大多數 kubernetes 使用者都有可能用到集群外部的服務。例如,您可能使用 twillio api 傳送簡訊,或使用 google cloud vision api 進行影象分析。如果位於不同環境中的應用連線相同的外部端點,並且您不打算將外部服務引入 kubernetes 集群,那麼在 中直接...