![](/img/trans.png)
[英]Kubernetes: how to restart pods on memory or/and time limits?
[英]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.