簡體   English   中英

如何在Kubernetes中更改運行Pod的限制?

[英]How to change running pods limits in Kubernetes?

我有一個由VM組成的自制Kubernetes集群。 我的問題是,coredns pod始終處於CrashLoopBackOff狀態,過了一會兒它們又返回運行狀態,什么也沒有發生。.我發現但無法嘗試的一種解決方案是將默認內存限制從170Mi更改為某種值更高。 因為我不是這方面的專家,所以我認為這不是一件難事,但是我不知道如何更改正在運行的Pod的配置。 可能是不可能的,但是必須有一種方法可以用新配置重新創建它們。 我嘗試使用kubectl補丁,並且也查找了滾動更新,但我無法弄清楚。 如何更改限額?

以下是廣告連播數據的相關部分:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    cni.projectcalico.org/podIP: 176.16.0.12/32
  creationTimestamp: 2018-11-18T10:29:53Z
  generateName: coredns-78fcdf6894-
  labels:
    k8s-app: kube-dns
    pod-template-hash: "3497892450"
  name: coredns-78fcdf6894-gnlqw
  namespace: kube-system
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicaSet
    name: coredns-78fcdf6894
    uid: e3349719-eb1c-11e8-9000-080027bbdf83
  resourceVersion: "73564"
  selfLink: /api/v1/namespaces/kube-system/pods/coredns-78fcdf6894-gnlqw
  uid: e34930db-eb1c-11e8-9000-080027bbdf83
spec:
  containers:
  - args:
    - -conf
    - /etc/coredns/Corefile
  image: k8s.gcr.io/coredns:1.1.3
  imagePullPolicy: IfNotPresent
  livenessProbe:
    failureThreshold: 5
    httpGet:
      path: /health
      port: 8080
      scheme: HTTP
    initialDelaySeconds: 60
    periodSeconds: 10
    successThreshold: 1
    timeoutSeconds: 5
  name: coredns
  ports:
  - containerPort: 53
    name: dns
    protocol: UDP
  - containerPort: 53
    name: dns-tcp
    protocol: TCP
  - containerPort: 9153
    name: metrics
    protocol: TCP
  resources:
    limits:
      memory: 170Mi
    requests:
      cpu: 100m
      memory: 70Mi

編輯:事實證明,在Ubuntu中,網絡管理器的dnsmasq使Corends吊艙瘋狂,因此在/etc/NetworkManager/NetworkManager.conf中,我注釋掉了dnsmasq行,重新啟動,一切正常。

您必須在coredns部署定義中編輯coredns pod的模板:

kubectl edit deployment -n kube-system coredns

使用coredns部署打開默認編輯器后,在templateSpec中將找到負責設置內存和cpu限制的部分。

暫無
暫無

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

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