kubernetes - Kubernetes pod 事件显示为“"
问题描述
我们正在调查与 Azure Kubernetes 服务上的 pod 启动缓慢有关的问题。一旦 Pod 启动完成,我们就无法看到历史事件。最新的事件日志显示为<none>
。
这是一个例子:
sshuser@sandbox-ubuntu-vm:~$ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-service-58bb6868c-rfrgr 1/1 Running 0 4h51m
sshuser@sandbox-ubuntu-vm:~$ kubectl describe pod my-service-58bb6868c-rfrgr
Name: my-service-58bb6868c-rfrgr
Namespace: default
Priority: 0
Node: aks-myproject-41067869-1/10.0.1.163
Start Time: Thu, 20 Feb 2020 05:25:36 -0500
Labels: app.kubernetes.io/instance=my-service
app.kubernetes.io/name=my-service
pod-template-hash=58bb6868c
Annotations: <none>
Status: Running
IP: 10.0.1.183
IPs: <none>
Controlled By: ReplicaSet/my-service-58bb6868c
Containers:
my-service:
Container ID: docker://b366fc6459f7dc03287d62da81c9fb1ed2c30ec0ccb4b601d2eea62e644de9f9
Image: myacr.azurecr.io/myproject/microservices/my-service:0.0.48
Image ID: docker-pullable://myacr.azurecr.io/myproject/microservices/my-service@sha256:cca04f3499271ac5ae383ddccba8c3f716b8f95cd0c06042ef4d7f69626beb8d
Port: 3000/TCP
Host Port: 0/TCP
State: Running
Started: Thu, 20 Feb 2020 05:32:38 -0500
Ready: True
Restart Count: 0
Liveness: http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3
Readiness: http-get http://:http/ delay=0s timeout=1s period=10s #success=1 #failure=3
Environment:
PORT: 3000
Mounts:
/kvmnt from my-service-kv-volume (ro)
/var/run/secrets/kubernetes.io/serviceaccount from my-service-token-lbfjg (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
my-service-kv-volume:
Type: FlexVolume (a generic volume resource that is provisioned/attached using an exec based plugin)
Driver: azure/kv
FSType:
SecretRef: &LocalObjectReference{Name:kvcreds,}
ReadOnly: false
Options: map[REMOVED]
my-service-token-lbfjg:
Type: Secret (a volume populated by a Secret)
SecretName: my-service-token-lbfjg
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events: <none>
sshuser@sandbox-ubuntu-vm:~$ kubectl get events --all-namespaces
No resources found
sshuser@sandbox-ubuntu-vm:~$
是否定期清除事件日志?当 pod 状态为 时,我们可以看到事件,但是在 pod 进入某个状态ContainerCreating
后不久(未知多长时间),事件就看不到了。Running
Kubernetes 版本是 1.14.8。
任何帮助是极大的赞赏。
谢谢。
解决方案
Kubernetes 在kube-apiserver 中将事件的默认保留时间配置为 1 小时。
您可以通过设置kube-apiserver--event-ttl
的标志持续时间来配置事件的 ttl 。
推荐阅读
- laravel - 如何在 whereHas laravel 中使用 groupBy
- sql - 我上次上传的数据,时间戳关闭了 2 天,我该如何解决?
- sql - 使用相同计划执行查询的巨大差异
- html - Web 应用程序的 RESTful API 重定向,更改基本 URL
- jquery - 如何在 React js 中使用 jquery
- angular - 尝试将属性用于 [(value)] 时出错
- android - Android Biometrics - 选择哪种方法(回退到密码)?
- c++ - C++意外调用继承类的函数
- python - run_algorithm() 失败,因为它无法从 Internet 源获取数据(403 Forbidden)
- tinymce - 所见即所得编辑器不会在 Chrome 中激活