Можно ли запустить небольшой проект с Kubernetes на GCP с одним узлом (g1-small)? - PullRequest
0 голосов
/ 12 января 2019

Я добровольно управляю (разрабатываю и принимаю) общественный проект. Значит время и деньги тесны. В настоящее время он работает на голой железной машине в AWS (t2.micro, (1 vCPU, 1 ГБ памяти)). В целях обучения я хотел бы контейнировать свое приложение. Сейчас я ищу хостинг. Google Cloud Plattform кажется мне самым дешевым. Я настроил кластер Kubernetes с 1 узлом (1.10.9-gke.5, g1-small (1 виртуальный ЦП, 1,7 ГБ памяти)).

После того как я настроил кластер Kubernetes с одним узлом, я проверил, сколько памяти и ЦП уже используется системой Kubernetes. (Пожалуйста, смотрите узел описания kubectl).

Мне было интересно, смогу ли я запустить следующее приложение с 30% ЦП и 30% памяти, оставшейся на узле. К сожалению, у меня нет опыта того, сколько понадобится контейнеру в моем примере с точки зрения ресурсов. Но наличие только 30% процессорного времени и 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)

Любые предложения приветствуются.

Заранее спасибо!

1 Ответ

0 голосов
/ 15 января 2019

Если вы намереваетесь запустить контейнерное приложение на одном узле, лучше начать с экземпляра GCE .

При переходе в GKE ознакомьтесь с этим руководством GCP , в котором объясняется распределение ресурсов по типу машины перед любыми рабочими нагрузками и модулями kube-system. Вам по-прежнему необходимо оценивать использование ресурсов для каждого компонента приложения или контейнера, возможно, из мониторинга среды разработки или GCE.

Если вы хотите изучить другие альтернативы GCP для вашего приложения (например, App Engine поддерживает .NET ), вот публикация с деревом решений, которое может вам помочь. Я также нашел эту статью / руководство о запуске контейнеров в App Engine и GKE, сравнивая оба с нагрузочными тестами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...