簡體   English   中英

邏輯上分開的Azure Kubernetes部署

[英]Logically seperate azure kubernetes deployments

我創建了一個Kubernetes集群並與應用程序一起部署。

首先,如果我部署了firstapp.yaml,它創建了一個Pod和一個用於在外部公開Pod的服務。

如果我在群集中有兩個節點,然后使用secondapp.yaml進行另一個部署。

我注意到,第二次部署轉到了其他節點。 盡管這是邏輯分離的理想行為。

它是kubernetes提供的東西嗎? 它如何管理使用不同文件進行的部署? 他們是否將始終在單獨的節點上運行(如果已配置節點)?

如果不是,那么如果我想在兩個節點之間進行邏輯分隔,而我想將它們作為兩個環境,則應該遵循什么實踐,比如dev和qa環境。

不,它們不必去不同的節點。 調度程序根據不同的條件確定將容器放置在何處。

至於您的最后一個問題-這沒有任何意義。 您可以使用名稱空間\\網絡策略來分隔環境,而不必在意您的Pod位於哪個節點上。 那就是擁有集群的全部要點。

您可以使用放置約束來實現所需的功能,但這完全沒有意義。

https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

同意@ 4c74356b41。 作為補充。 您的Pod不在哪里,您可以將應用程序的多個副本划分為50個節點,它們仍然可以彼此通信(服務,服務發現, 網絡CNI )並共享資源等。

是的,這是Kubernetes的默認行為,您可能會受到污點,容忍度,資源,限制節點親和力和反親和力的影響(您可以在文檔中找到很多有關每個信息的信息,或者只是對其進行谷歌搜索)。 Pod的調度位置也取決於Node的容量 您的Pod已設置為特定的Node,因為Scheduler計算得出的得分最高,首先要考慮到上述條件。 您可以在此處找到有關該過程的詳細信息。

再次如@ 4c74356b41所述,如果要將群集拆分為多個環境,請針對不同的團隊說,或者針對dev和qa環境提及,可以使用名稱空間 他們基本上是在您的群集中創建一個較小的群集(請注意,這只是邏輯上的隔離,而不是從安全角度上的隔離,直到您添加其他組件(例如角色)為止),您只需將namespace字段添加到部署YAML中即可指定要將Pod部署到哪個命名空間中-仍然在它們的哪個節點上都沒有關系。 取決於您的用例。

請注意,我寫的內容過於簡單,我在這之間沒有提及太多,您可以在大多數Kubernetes教程中輕松找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM