簡體   English   中英

AWS EC2 實例上的 docker 微服務上的 kubernetes

[英]kubernetes on docker microservices on AWS EC2 instance

我的開發設置在 Amazon EC2 實例上的 Docker 環境中使用微服務部署。 現在,我們正在嘗試在該 EC2 實例中實現 Kubernetes 以自動縮放和負載平衡部署在 Docker 中的微服務。

我看到了一種安裝kubectl和minikube並設置Kubernetes的方法,帶有節點和pod(我認為這種方法只是為了在本地測試)。 另一個來源有一個擁有兩到三個 EC2 實例的巨大過程,一個作為主實例,另一個作為從屬實例,具有相同的設置。

我可以僅在主節點上設置 Kubernetes 並在該節點上實現自動縮放和負載平衡嗎? 可以將所有內容保存在我的微服務所在的單個 EC2 實例中嗎?

我可以僅在主節點上設置 Kubernetes 並在該節點上實現自動縮放和負載平衡嗎?

是的,一點沒錯。

可以將所有內容保存在我的微服務所在的單個 EC2 實例中嗎?

是的你可以。 但是,如果我們談論生產,這不是“最佳實踐”。

我的開發設置在 Amazon EC2 實例上的 Docker 環境中使用微服務部署。 現在,我們正在嘗試在該 EC2 實例中實現 Kubernetes 以自動縮放和負載平衡部署在 Docker 中的微服務。

我看到這種方法存在以下問題。

  1. 您將在節點上增加更多負載,因為 Kubernetes (k8s) 本身會提供一些開銷
  2. 正如@DavidMaze 所說,k8s 專為多節點環境中的大量負載而設計。 您正在嘗試使用它來自動縮放 pod。

我在 docker 上運行了 30 個微服務。

看起來至少有30 個容器,因此很可能會轉化為大約 30 個 pod。 請記住,除了用戶請求的 pod 之外,k8s 在kube-system命名空間(dns、kube-proxy、default-backend 等)中運行了十幾個 pod。

此外,您提到了自動縮放,因此該單個節點上可能有相當多的 pod。

限制。

K8s 建議每個節點最多 110 個 pod

到目前為止,Kubernetes 已經過測試,可以在常見節點類型上可靠地工作。

大多數托管 k8s 服務甚至對每個節點的 pod 數量施加了硬性限制:

  • 在 Amazon Elastic Kubernetes 服務 (EKS) 上,每個節點的最大 Pod 數取決於節點類型,范圍從 4 到 737。
  • 在 Google Kubernetes 引擎 (GKE) 上,每個節點的限制為 100 個 Pod,無論節點類型如何。
  • 在 Azure Kubernetes 服務 (AKS) 上, 默認限制是每個節點 30 個 Pod,但可以增加到 250 個。

可用性。

如果您只有幾個節點,那么故障節點的影響會比您有很多節點時更大。 例如,如果您只有兩個節點,其中一個發生故障,那么大約一半的 pod 會消失。 如果您只有一個節點(上面有集群配置數據庫)... :)

因此,您無法將故障節點的工作負載重新調度到其他節點上。

如果您有高可用性要求,您可能需要集群中有一定的最小節點數。

把它們加起來:

  1. 維護此類設置(和更大的 EC2 實例)的開銷可能比托管解決方案 (EKS) 的價格更高;
  2. 設置看起來很脆弱,您並沒有獲得可靠性的主要好處。 這可能會導致毀滅性的后果。

另一個來源有一個擁有兩到三個 EC2 實例的巨大過程,一個作為主實例,另一個作為從屬實例,具有相同的設置。

安裝 k8s 有幾種方法。 我想你可能想檢查kops工具。 此外,Kelsey Hightower 有一本非常全面的讀物,稱為kubernetes-the-hard-way

最后但同樣重要的是,有一篇關於主題的好文章 此外,StackOverflow 上也有一些類似的討論

我希望這些信息能對問題有所了解並回答您的問題:)

暫無
暫無

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

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