Kubernetes Killing Mongo Контейнер - PullRequest
       4

Kubernetes Killing Mongo Контейнер

3 голосов
/ 08 апреля 2019

У нас есть ситуация, когда Kubernetes убивает контейнеры Mongo, когда он достигает максимального предела памяти контейнера.Несмотря на то, что ожидается, что K8s будет работать таким же образом, но создается впечатление, что Mongo не использует свою память повторно, поскольку продолжает увеличивать использование памяти день ото дня, даже несмотря на то, что пользовательская нагрузка и транзакции одинаковы, так что проверить, как мы можем ограничитьMongo при достижении максимального объема памяти контейнера или регулярной очистке памяти Mongo.

Я пытался увеличить объем памяти, что помогло модулям работать еще пару дней, прежде чем K8 убил его

     "containers": [
          {
            "name": "mongo",
            "image": "dockercentral.com:5870/com.public/mongodb:3.6",
            "ports": [
              {
                "containerPort": 27017,
                "protocol": "TCP"
              }
            ]      
"resources": {
              "limits": {
                "cpu": "1",
                "memory": "24Gi"
              },
              "requests": {
                "cpu": "250m",
                "memory": "24Gi"
              }
            }
   "name": "MONGO_SECURITY",
                "value": "true"
              }
            ],
            "resources": {
              "limits": {
                "cpu": "500m",
                "memory": "1Gi"
              },
              "requests": {
                "cpu": "150m",
                "memory": "256Mi"
              }
            },

1 Ответ

0 голосов
/ 18 апреля 2019

На основании того, что Стенни из MongoDB, Inc. написал в комментарии к вопросу.

у меня эта команда в кубе .yaml работает:

      command:
        - "sh"
        - "-c"
        - >
          echo "storage:" >>  /etc/mongod.conf;
          echo "    wiredTiger:" >>  /etc/mongod.conf;
          echo "       engineConfig:" >>  /etc/mongod.conf;
          echo "          cacheSizeGB: 2" >>  /etc/mongod.conf;
          echo "replication:" >> /etc/mongod.conf;
          echo "  replSetName: YOUR_REPL_NAME" >> /etc/mongod.conf;
          mongod --config /etc/mongod.conf;

также есть способ установить его во время выполнения:

db.adminCommand( { "setParameter": 1, "wiredTigerEngineRuntimeConfig":"cache_size=2G"})

, который также отлично работает, но выглядит проще через файл yaml kuberneties, потому что для выдачи команды вам нужно подождать, пока mongo не запустится и не запустится.

Примечание: убедитесь, что ваш:

      resources:
        limits:
          memory:

разрешает дополнительный 1G для системы.

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