簡體   English   中英

Kubernetes殺害Mongo容器

[英]Kubernetes Killing Mongo Container

我們有一種情況,Kubernetes在達到容器的最大內存限制時會殺死Mongo容器。 雖然它預計K8會以這種方式工作,但感覺Mongo並沒有重復使用它的內存,因為它不斷增加內存使用量,即使用戶負載和交易是相同的,那么如何檢查我們如何限制Mongo達到容器的最大內存或定期刷新Mongo內存。

我試圖增加內存,這有助於pod在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"
              }
            },

基於MongoDB,Inc。的Stennie在評論中寫道。

kube .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"})

這也很好,但通過kuberneties yaml文件看起來更容易,因為要發出命令,你必須等到mongo啟動並運行。

注意:確保您的:

      resources:
        limits:
          memory:

系統允許額外的1G

暫無
暫無

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

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