我自愿运行(开发和托管)社区项目。意思是时间和金钱很紧。当前,它在AWS的裸机上运行(t2.micro,(1 vCPU,1 GB内存))。 出于学习目的,我想将我的应用程序容器化。现在,我正在寻找托管。 Google Cloud Plattform对我而言似乎是最便宜的。 我设置了一个具有1个节点(1.10.9-gke.5,g1-small(1个vCPU共享,1.7 GB内存))的Kubernetes集群。
设置一个节点的Kubernetes集群后,我检查了Kubernetes系统已经使用了多少内存和CPU。 (请参阅kubectl描述节点)。
我想知道我是否可以在节点上剩余30%CPU和30%内存的情况下运行以下应用程序。不幸的是,我对示例中的容器在资源方面需要多少没有经验。但是对于我的应用程序来说,只剩下30%的CPU和30%的内存似乎并不多。
kubectl描述节点
Non-terminated Pods: (9 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits
--------- ---- ------------ ---------- --------------- -------------
kube-system event-exporter-v0.2.3-54f94754f4-bznpk 0 (0%) 0 (0%) 0 (0%) 0 (0%)
kube-system fluentd-gcp-scaler-6d7bbc67c5-pbrq4 0 (0%) 0 (0%) 0 (0%) 0 (0%)
kube-system fluentd-gcp-v3.1.0-fjbz6 100m (10%) 0 (0%) 200Mi (17%) 300Mi (25%)
kube-system heapster-v1.5.3-66b7745959-4zbcl 138m (14%) 138m (14%) 301456Ki (25%) 301456Ki (25%)
kube-system kube-dns-788979dc8f-krrtt 260m (27%) 0 (0%) 110Mi (9%) 170Mi (14%)
kube-system kube-dns-autoscaler-79b4b844b9-vl4mw 20m (2%) 0 (0%) 10Mi (0%) 0 (0%)
kube-system kube-proxy-gke-spokesman-cluster-default-pool-d70d068f-wjtk 100m (10%) 0 (0%) 0 (0%) 0 (0%)
kube-system l7-default-backend-5d5b9874d5-cgczj 10m (1%) 10m (1%) 20Mi (1%) 20Mi (1%)
kube-system metrics-server-v0.2.1-7486f5bd67-ctbr2 53m (5%) 148m (15%) 154Mi (13%) 404Mi (34%)
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
CPU Requests CPU Limits Memory Requests Memory Limits
------------ ---------- --------------- -------------
681m (72%) 296m (31%) 807312Ki (67%) 1216912Ki (102%)
这是我的应用
PROD:
API: ASP.NET core 1.1 (microsoft/dotnet:1.1-runtime-stretch)
Frontend: Angular app (nginx:1.15-alpine)
Admin: Angular app (nginx:1.15-alpine)
TEST:
API: ASP.NET core 1.1 (microsoft/dotnet:1.1-runtime-stretch)
Frontend: Angular app (nginx:1.15-alpine)
Admin: Angular app (nginx:1.15-alpine)
SHARDED
Database: Postgres (postgres:11-alpine)
任何建议都值得欢迎。
谢谢!
答案 0 :(得分:2)
如果您打算在单个节点上运行容器化的应用程序,那么开始时最好使用GCE instance。
进入GKE时,请查看此GCP's guide,以解释每种机器类型在任何工作负载和kube系统pod之前的资源分配。您仍然需要估计每个应用程序组件或容器的资源使用情况,可能是通过监视Dev或GCE环境来实现的。
如果您想在GCP上探索适用于您的应用的其他替代方案(例如App Engine支持.NET),那么这里的post带有决策树可能会对您有所帮助。我还发现了article/tutorial的有关在App Engine和GKE上运行容器的信息,并与负载测试进行了比较。