我有一个由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行,重新启动,一切都很好。
答案 0 :(得分:1)
您必须在coredns部署定义中编辑coredns pod的模板:
kubectl edit deployment -n kube-system coredns
使用coredns部署打开默认编辑器后,在templateSpec中将找到负责设置内存和cpu限制的部分。