为什么我无法通过kubectl logs命令在Kubernetes的klog中看到日志?

huangapple go评论104阅读模式
英文:

why I cannot see the logs in k8s klog via kubectl logs?

问题

我在k8s中看到了一些源代码:

  1. // 立即删除,或者不支持优雅删除
  2. klog.V(6).Infof("going to delete %s from registry: ", name)
  1. if _, _, err := e.Delete(ctx, accessor.GetName(), deleteValidation, options); err != nil && !apierrors.IsNotFound(err) {
  2. klog.V(4).Infof("Delete %s in DeleteCollection failed: %v", accessor.GetName(), err)
  3. errs <- err
  4. return
  5. }

我认为我可以通过 kubectl logs 来检查这些日志,但是我无法看到它们,即使使用 kubectl logs --v 6 <kubeapi server pod> | grep "going to delete" 或者 kubectl logs --v 4 <kubeapi server pod> | grep "DeleteCollection",我仍然无法看到应该由 klog 输出的日志。我该如何检查这些日志?

英文:

I saw some source codes in k8s:

  1. // delete immediately, or no graceful deletion supported
  2. klog.V(6).Infof(&quot;going to delete %s from registry: &quot;, name)
  1. if _, _, err := e.Delete(ctx, accessor.GetName(), deleteValidation, options); err != nil &amp;&amp; !apierrors.IsNotFound(err) {
  2. klog.V(4).Infof(&quot;Delete %s in DeleteCollection failed: %v&quot;, accessor.GetName(), err)
  3. errs &lt;- err
  4. return
  5. }

I think I can check these logs via kubectl logs, but I cannot see them, even use kubectl logs --v 6 &lt;kubeapi server pod&gt; | grep &quot;going to delete&quot; or kubectl logs --v 4 &lt;kubeapi server pod&gt; | grep &quot;DeleteCollection&quot; I still cannot see the logs that should be output by klog.
How can I check these logs?

答案1

得分: 0

答案是:
--v=4参数添加到kube api server配置文件中以启用日志详细程度。

文件路径:/etc/kubernetes/manifests/kube-apiserver.yaml

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. annotations:
  5. kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: 192.168.49.2:8443
  6. creationTimestamp: null
  7. labels:
  8. component: kube-apiserver
  9. tier: control-plane
  10. name: kube-apiserver
  11. namespace: kube-system
  12. spec:
  13. containers:
  14. - command:
  15. - kube-apiserver
  16. - --advertise-address=192.168.49.2
  17. - --allow-privileged=true
  18. - --v=4
  19. .......

然后运行kubectl log --v=4命令。

英文:

The answer is:
add --v=4 arg to kube api server config file to enable the log verbosity.

File path: /etc/kubernetes/manifests/kube-apiserver.yaml

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. annotations:
  5. kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: 192.168.49.2:8443
  6. creationTimestamp: null
  7. labels:
  8. component: kube-apiserver
  9. tier: control-plane
  10. name: kube-apiserver
  11. namespace: kube-system
  12. spec:
  13. containers:
  14. - command:
  15. - kube-apiserver
  16. - --advertise-address=192.168.49.2
  17. - --allow-privileged=true
  18. - --v=4
  19. .......

then kubectl log --v=4

huangapple
  • 本文由 发表于 2022年7月25日 15:43:23
  • 转载请务必保留本文链接:https://go.coder-hub.com/73105600.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定