{"id":35741,"date":"2023-05-17T06:40:34","date_gmt":"2023-04-22T12:05:24","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/"},"modified":"2024-04-30T04:34:39","modified_gmt":"2024-04-29T20:34:39","slug":"%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/","title":{"rendered":"\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884c&#8221;kubectl logs&#8221;\u65f6\uff0c\u8f93\u51fa&#8221;\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7&#8221;\u7684\u95ee\u9898"},"content":{"rendered":"<h2>\u9996\u5148<\/h2>\n<p>\u5728Zettl\u63d0\u4f9bKubernetes\u4f5c\u4e3a\u4e00\u9879\u670d\u52a1\u7ed9Yahoo! JAPAN\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24f537434c4406c30f0d\/2-0.png\" alt=\"The_Story_of_Managing_Common_Add-ons_on_1000__Kubernetes_Clusters_-_Speaker_Deck.png\" \/><\/div>\n<p>\u5f53\u7528\u6237\u4f7f\u7528Kubernetes\u4f5c\u4e3a\u670d\u52a1\u65f6\uff0c\u53ef\u80fd\u4f1a\u51fa\u73b0\u4e00\u4e9b\u7528\u6237\u81ea\u5df1\u65e0\u6cd5\u7406\u89e3\u7684\u60c5\u51b5\uff0c\u5bfc\u81f4\u9700\u8981\u63d0\u51fa\u54a8\u8be2\u7684\u60c5\u51b5\u3002<\/p>\n<p>\u8fd9\u6b21\u6211\u4eec\u5c06\u5bf9\u4e00\u4ef6\u5904\u7406\u7684\u652f\u6301\u6848\u4f8b\u8fdb\u884c\u6574\u7406\uff0c\u5c06\u4fe1\u606f\u6574\u7406\u6210\u5916\u90e8\u4eba\u5458\u4e5f\u80fd\u7406\u89e3\u7684\u5f62\u5f0f\uff0c\u5e76\u5199\u6210\u4e86\u4e00\u7bc7\u6587\u7ae0\u3002<\/p>\n<div>\u8a18\u4e8b\u4e2d\u63d0\u5230\u7684\u7248\u672c\u7b49\u4fe1\u606f\u662f\u901a\u8fc7\u6837\u672c\u63d0\u4f9b\u7684\uff0c\u4e0d\u662f\u771f\u5b9e\u73af\u5883\u4e2d\u53d1\u751f\u7684\u3002\u6b64\u4e8b\u4ef6\u5728Kubernetes v1.8\u53ca\u4ee5\u4e0a\u7248\u672c\u4e2d\u662f\u53ef\u4ee5\u518d\u73b0\u7684\u3002<\/div>\n<h2>\u5229\u7528\u8005\u5411\u6211\u4eec\u63d0\u51fa\u7684\u8be2\u95ee\u5185\u5bb9<\/h2>\n<p>\u6709\u4eba\u95ee\u6211\u4ee5\u4e0b\u95ee\u9898\u3002<\/p>\n<blockquote><p>\u5f53\u5c1d\u8bd5\u4f7f\u7528 kubectl logs \u83b7\u53d6\u65e5\u5fd7\u65f6\uff0c\u4f1a\u8f93\u51fa\u9519\u8bef\u6d88\u606f\u3002<br \/>\n$ kubectl logs &lt;Pod\u540d\u79f0&gt; \u65e0\u6cd5\u83b7\u53d6\u5bb9\u5668\u7684\u65e5\u5fd7\uff0c\u5bb9\u5668\u4e3a containerd:\/\/4703b9db4177926a2c963fa9e635e5931587f6e0e3b7d7165e94c6f4689d5c35<br \/>\n\u8bf7\u544a\u77e5\u65e0\u6cd5\u83b7\u53d6\u5bb9\u5668\u65e5\u5fd7\u7684\u539f\u56e0\u548c\u89e3\u51b3\u65b9\u6cd5\u3002<\/p><\/blockquote>\n<p>\u5229\u7528\u8005\u5e0c\u671b\u901a\u8fc7\u6267\u884ckubectl logs\u547d\u4ee4\u6765\u83b7\u53d6\u4ee5\u4e0b\u65e5\u5fd7\u6d88\u606f\uff0c\u4f46\u7531\u4e8e\u51fa\u73b0\u9519\u8bef\uff0c\u5e0c\u671b\u4e86\u89e3\u539f\u56e0\u548c\u89e3\u51b3\u65b9\u6cd5\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl logs &lt;Pod\u540d&gt;                        \r\nHello, Kubernetes!\r\n<\/code><\/pre>\n<h2>\u521d\u52d5<\/h2>\n<p>\u5f53\u51fa\u73b0\u652f\u6301\u5347\u7ea7\u65f6\uff0c\u8bb8\u591a\u60c5\u51b5\u4e0b\u4f1a\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u5229\u7528\u8005\u3078\u306e\u30d2\u30a2\u30ea\u30f3\u30b0<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">k8s\u306e\u30af\u30e9\u30b9\u30bf\u306b\u6b8b\u3063\u3066\u3044\u308b\u60c5\u5831\u306e\u53ce\u96c6<\/ul>\n<h3>\u5bf9\u7528\u6237\u8fdb\u884c\u8c03\u67e5<\/h3>\n<p>\u5f53\u5b9e\u9645\u6709\u9700\u8981\u6765\u5bfb\u6c42\u652f\u6301\u7684\u60c5\u51b5\u65f6\uff0c\u901a\u5e38\u53ea\u80fd\u63d0\u4f9b\u7b80\u660e\u627c\u8981\u7684\u5185\u5bb9\uff0c\u4e0d\u8db3\u4ee5\u63d0\u4f9b\u6240\u9700\u7684\u5145\u5206\u4fe1\u606f\u8fdb\u884c\u8c03\u67e5\u3002\u56e0\u6b64\uff0c\u4e3a\u4e86\u7f29\u5c0f\u8c03\u67e5\u8303\u56f4\uff0c\u6211\u4eec\u4f1a\u8fdb\u884c\u4ee5\u4e0b\u7c7b\u4f3c\u7684\u8be2\u95ee\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Kubernetes\u4e0a\u3067\u3069\u3046\u3044\u3063\u305f\u30b5\u30fc\u30d3\u30b9\u3092\u63d0\u4f9b\u3057\u3066\u3044\u308b\u304b (Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\uff1f\u30d0\u30c3\u30c1\u51e6\u7406\uff1f)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b5\u30fc\u30d3\u30b9\u306e\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u4e8b\u8c61\u306e\u767a\u751f\u6642\u523b\u3084\u767a\u751f\u983b\u5ea6<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u4e8b\u8c61\u306e\u518d\u73fe\u6027\u306e\u6709\u7121<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u4e8b\u8c61\u767a\u751f\u524d\u5f8c\u3067\u306e\u5909\u66f4\u5185\u5bb9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">etc<\/ul>\n<p>\u6839\u636e\u4e0d\u540c\u7684\u60c5\u51b5\uff0c\u6709\u4e0d\u540c\u7684\u542c\u53d6\u5185\u5bb9\uff0c\u4f46\u4f1a\u5411\u7528\u6237\u786e\u8ba4\u7c7b\u4f3c\u4e0a\u8ff0\u7684\u4e8b\u9879\u3002<\/p>\n<p>\u5728\u8bb8\u591a\u786e\u8ba4\u7684\u4fe1\u606f\u4e2d\uff0c\u76ee\u524d\u6240\u5173\u6ce8\u7684\u662f\u7528\u6237\u5728\u8fd9\u6b21\u4e8b\u52a1\u4e2d\u4e3b\u8981\u4f7f\u7528Kubernetes\u7684Job\u3002 (\u5728\u5b9e\u9645\u8c03\u67e5\u65f6\uff0c\u8fd9\u4e00\u70b9\u5c1a\u4e0d\u6e05\u695a\u3002)<\/p>\n<p>\u8fd9\u91cc\u7684\u505a\u6cd5\u4e5f\u9002\u7528\u4e8eOSS\uff0c\u5728\u63d0\u51fa\u95ee\u9898\u65f6\uff0c\u9700\u8981\u6309\u7167\u4ee5\u4e0b\u6a21\u677f\u586b\u5199\u5fc5\u8981\u4e8b\u9879\u3002<\/p>\n<blockquote><p>\u4ee5\u4e0b\u662fOSS\u8d77\u7968\u7684\u6a21\u677f\u53c2\u8003\uff1a<\/p>\n<p>Kubernetes\u7684\u8d77\u7968\u6a21\u677f<br \/>\nNode-exporter\u7684\u8d77\u7968\u6a21\u677f<br \/>\nkube-state-metrics\u7684\u8d77\u7968\u6a21\u677f<\/p><\/blockquote>\n<h3>k8s\u306e\u30af\u30e9\u30b9\u30bf\u306b\u6b8b\u3063\u3066\u3044\u308b\u60c5\u5831\u306e\u53ce\u96c6<\/h3>\n<p>\u56e0\u4e3a\u6b64\u6b21\u67e5\u8be2\u662f\u5173\u4e8e\u6267\u884c &#8220;kubectl logs&#8221; \u547d\u4ee4\uff0c\u6240\u4ee5\u9996\u5148\u9700\u8981\u6536\u96c6\u76f8\u5173 Pod \u7684\u4fe1\u606f\u3002<\/p>\n<pre class=\"post-pre\"><code>$ kubectl logs &lt;Pod\u540d&gt;\r\n<\/code><\/pre>\n<p>Pod\u306e\u60c5\u5831\u3092\u53ce\u96c6<br \/>\nkubectl get -oyaml kubectl describe etc<br \/>\nPod\u306e\u60c5\u5831\u3092\u78ba\u8a8d\u3059\u308b\u3068ownerReferences\u304b\u3089Job\u3068CronJob\u3092\u5229\u7528\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u5206\u304b\u3063\u305f\u306e\u3067\u5408\u308f\u305b\u3066\u60c5\u5831\u3092\u53d6\u96c6\u3057\u307e\u3059\u3002<\/p>\n<p>Job,CronJob\u306e\u306e\u60c5\u5831\u3092\u53ce\u96c6<br \/>\nkubectl get -oyaml kubectl describe etc<br \/>\n\u5408\u308f\u305b\u3066\u5229\u7528\u8005\u304capply\u3057\u305f\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u306e\u60c5\u5831\u3082\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<p>\u5229\u7528\u8005\u306eGithub\u4e0a\u306e\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u306e\u60c5\u5831\u3092\u53ce\u96c6<br \/>\nPod\u306e\u60c5\u5831\u304b\u3089\u8d77\u52d5\u3057\u3066\u3044\u305f\u30ce\u30fc\u30c9\u3082\u78ba\u8a8d\u3067\u304d\u308b\u306e\u3067\u3001Kuberntes\u4e0a\u306e\u30ce\u30fc\u30c9\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u60c5\u5831\u3082\u53ce\u96c6\u3057\u307e\u3059\u3002<\/p>\n<p>\u30ce\u30fc\u30c9\u306e\u60c5\u5831\u3092\u53ce\u96c6<br \/>\nkubectl get -oyaml kubectl describe etc<\/p>\n<p>Control Plane\u306e\u30ed\u30b0\u306e\u53ce\u96c6<br \/>\nkube-apiserver kubelet etc \u306e\u30ed\u30b0<\/p>\n<p>Event\u306e\u60c5\u5831\u3092\u53ce\u96c6<br \/>\nkubectl get events Eventrouter etc<br \/>\nKubernetes\u306e\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c8\u306e\u969b\u306b\u306f\u3088\u304f\u53d6\u5f97\u3059\u308b\u60c5\u5831\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u5982\u679c\u6211\u5bf9 Kubernetes \u6709\u4efb\u4f55\u7591\u95ee\uff0c\u6211\u901a\u5e38\u4f1a\u83b7\u53d6\u7c7b\u4f3c\u4e0a\u8ff0\u7684\u4fe1\u606f\u3002<\/p>\n<p>\u8003\u8651\u5230\u7528\u6237\u80fd\u591f\u81ea\u884c\u89e3\u51b3\u95ee\u9898\u7684\u60c5\u51b5\uff0c\u6700\u7406\u60f3\u7684\u60c5\u51b5\u662f\u7528\u6237\u80fd\u591f\u7406\u89e3\u5404\u81ea\u7684\u9700\u6c42\u5e76\u81ea\u884c\u8fdb\u884c\u4fe1\u606f\u6536\u96c6\u3002\u7136\u800c\uff0c\u76f4\u63a5\u5b9e\u73b0\u8fd9\u4e00\u76ee\u6807\u662f\u56f0\u96be\u7684\uff0c\u56e0\u6b64\u6211\u4eec\u9996\u5148\u4f1a\u63d0\u4f9b\u5173\u4e8e\u5982\u4f55\u8ba9\u7528\u6237\u4eec\u4ec5\u51ed\u81ea\u8eab\u80fd\u529b\u89e3\u51b3\u95ee\u9898\u7684\u5efa\u8bae\u3002<\/p>\n<p>\u6b64\u5916\uff0c\u8fd8\u6709\u4e00\u79cd\u60c5\u51b5\u662f\u4e8b\u4ef6\u53d1\u751f\u7684\u6982\u7387\u8f83\u4f4e\uff0c\u5e76\u4e14\u5728k8s\u96c6\u7fa4\u5185\u5df2\u7ecf\u6ca1\u6709\u4e0e\u8be5\u4e8b\u4ef6\u76f8\u5173\u7684\u4fe1\u606f\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u4f1a\u8bf4\u660e\u4fe1\u606f\u641c\u96c6\u7684\u65b9\u6cd5\uff0c\u5e76\u4e14\u53ef\u80fd\u9700\u8981\u7b49\u5f85\u518d\u6b21\u53d1\u751f\u3002<\/p>\n<h2>\u5bf9\u65e0\u6cd5\u68c0\u7d22\u5230\u5bb9\u5668\u65e5\u5fd7\u7684\u539f\u56e0\u8fdb\u884c\u8c03\u67e5<\/h2>\n<h3>\u5173\u4e8e\u8c03\u67e5\u65b9\u6cd5\u7684\u8bf4\u660e<\/h3>\n<p>\u9996\u5148\uff0c\u9700\u8981\u6267\u884ckubectl logs\u547d\u4ee4\uff0c\u4ee5\u4e86\u89e3\u6bcf\u4e2a\u7ec4\u4ef6\u6267\u884c\u7684\u5904\u7406\u8fc7\u7a0b\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24f537434c4406c30f0d\/31-0.png\" alt=\"Getting_Started_with_Kubernetes_Observability_-_Speaker_Deck.png\" \/><\/div>\n<p>\u7531\u4e8e\u6211\u5df2\u7ecf\u63d0\u524d\u77e5\u9053kubectl logs\u7684\u5904\u7406\u662f\u5982\u4e0a\u6240\u8ff0\u7684\uff0c\u6240\u4ee5\u6211\u5c06\u68c0\u67e5\u4ee5\u4e0b\u76f8\u5173\u7ec4\u4ef6\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">API Server<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Kubelet<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Container runtime (\u4eca\u56de\u306e\u30b1\u30fc\u30b9\u3067\u306f Containerd\u3092\u4f7f\u7528)<\/ul>\n<p>\u5728\u7814\u7a76\u4e0a\u8ff0\u5185\u5bb9\u65f6\uff0c\u6709\u4e24\u79cd\u4e3b\u8981\u7684\u65b9\u6cd5\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e0a\u3067\u691c\u7d22\u3092\u304b\u3051\u3066unable to retrieve container logs\u306e\u51fa\u529b\u7b87\u6240\u3092\u78ba\u8a8d\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u4e8b\u8c61\u767a\u751f\u6642\u523b\u4ed8\u8fd1\u306e\u8a72\u5f53\u30ed\u30b0\u3092\u78ba\u8a8d\u3057\u3066\u3044\u304f<\/ul>\n<p>\u5173\u4e8e\u4e0a\u8ff0\u7684\u4e24\u4e2a\u95ee\u9898\uff0c\u6211\u4eec\u5c06\u540c\u65f6\u8fdb\u884c\u4e24\u9879\u63aa\u65bd\u6765\u786e\u8ba4\u4e8b\u5b9e\uff0c\u800c\u4e0d\u662f\u9009\u62e9\u5176\u4e2d\u7684\u4e00\u4e2a\u3002<\/p>\n<h3>\u8c03\u67e5\u7ed3\u679c\u7684\u8bf4\u660e<\/h3>\n<p>\u5f53\u6211\u67e5\u770b\u65e5\u5fd7\u7b49\u4fe1\u606f\u65f6\uff0c\u6211\u53d1\u73b0kubectl\u547d\u4ee4\u6267\u884c\u65f6\u663e\u793a\u7684\u6d88\u606f\u662f\u5728kubelet\u7684\u4ee5\u4e0b\u90e8\u5206\u8f93\u51fa\u7684\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">\/\/ GetContainerLogs returns logs of a specific container.<\/span>\r\n<span class=\"k\">func<\/span> <span class=\"p\">(<\/span><span class=\"n\">m<\/span> <span class=\"o\">*<\/span><span class=\"n\">kubeGenericRuntimeManager<\/span><span class=\"p\">)<\/span> <span class=\"n\">GetContainerLogs<\/span><span class=\"p\">(<\/span><span class=\"n\">ctx<\/span> <span class=\"n\">context<\/span><span class=\"o\">.<\/span><span class=\"n\">Context<\/span><span class=\"p\">,<\/span> <span class=\"n\">pod<\/span> <span class=\"o\">*<\/span><span class=\"n\">v1<\/span><span class=\"o\">.<\/span><span class=\"n\">Pod<\/span><span class=\"p\">,<\/span> <span class=\"n\">containerID<\/span> <span class=\"n\">kubecontainer<\/span><span class=\"o\">.<\/span><span class=\"n\">ContainerID<\/span><span class=\"p\">,<\/span> <span class=\"n\">logOptions<\/span> <span class=\"o\">*<\/span><span class=\"n\">v1<\/span><span class=\"o\">.<\/span><span class=\"n\">PodLogOptions<\/span><span class=\"p\">,<\/span> <span class=\"n\">stdout<\/span><span class=\"p\">,<\/span> <span class=\"n\">stderr<\/span> <span class=\"n\">io<\/span><span class=\"o\">.<\/span><span class=\"n\">Writer<\/span><span class=\"p\">)<\/span> <span class=\"p\">(<\/span><span class=\"n\">err<\/span> <span class=\"kt\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\r\n\t<span class=\"n\">status<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">m<\/span><span class=\"o\">.<\/span><span class=\"n\">runtimeService<\/span><span class=\"o\">.<\/span><span class=\"n\">ContainerStatus<\/span><span class=\"p\">(<\/span><span class=\"n\">containerID<\/span><span class=\"o\">.<\/span><span class=\"n\">ID<\/span><span class=\"p\">)<\/span>\r\n\t<span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\r\n\t\t<span class=\"n\">klog<\/span><span class=\"o\">.<\/span><span class=\"n\">V<\/span><span class=\"p\">(<\/span><span class=\"m\">4<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">InfoS<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Failed to get container status\"<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"containerID\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">containerID<\/span><span class=\"o\">.<\/span><span class=\"n\">String<\/span><span class=\"p\">(),<\/span> <span class=\"s\">\"err\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\r\n\t\t<span class=\"k\">return<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"unable to retrieve container logs for %v\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">containerID<\/span><span class=\"o\">.<\/span><span class=\"n\">String<\/span><span class=\"p\">())<\/span>\r\n\t<span class=\"p\">}<\/span>\r\n\t<span class=\"k\">return<\/span> <span class=\"n\">m<\/span><span class=\"o\">.<\/span><span class=\"n\">ReadLogs<\/span><span class=\"p\">(<\/span><span class=\"n\">ctx<\/span><span class=\"p\">,<\/span> <span class=\"n\">status<\/span><span class=\"o\">.<\/span><span class=\"n\">GetLogPath<\/span><span class=\"p\">(),<\/span> <span class=\"n\">containerID<\/span><span class=\"o\">.<\/span><span class=\"n\">ID<\/span><span class=\"p\">,<\/span> <span class=\"n\">logOptions<\/span><span class=\"p\">,<\/span> <span class=\"n\">stdout<\/span><span class=\"p\">,<\/span> <span class=\"n\">stderr<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u53c2\u8003\u94fe\u63a5\u4e2d\u7684\u4ee3\u7801\u6bb5\u53ef\u4ee5\u7528\u4ee5\u4e0b\u65b9\u5f0f\u8fdb\u884c\u4e2d\u6587\u7ffb\u8bd1\uff1a<\/p>\n<p>&#8220;`go<br \/>\n\/\/ \u83b7\u53d6\u5bb9\u5668\u5bf9\u5e94Kubernetes Pod\u7684UID<br \/>\npodUID := containerStatus.PodSandboxId<br \/>\n\/\/ \u68c0\u67e5container\u662f\u5426\u5f00\u542fsandbox\u5bf9\u5bb9\u5668\u7684\u9694\u79bb\u529f\u80fd<br \/>\nif !containerRuntime.useSandbox {<br \/>\n\/\/ \u4e0d\u4f7f\u7528sandbox\u65f6\u76f4\u63a5\u8fd4\u56dePod\u7684UID<br \/>\nreturn podUID, nil<br \/>\n}<\/p>\n<p>\/\/ \u83b7\u53d6\u5bf9\u5e94PodSandbox\u7684UUID<br \/>\npodSandboxUUID, err := containerRuntime.podManager.GetPodSandboxAdditionalInfo(podUID, &#8220;uuid&#8221;)<br \/>\nif err != nil {<br \/>\nreturn &#8220;&#8221;, err<br \/>\n}<\/p>\n<p>\/\/ \u8fd4\u56dePodSandbox\u7684UUID<br \/>\nreturn podSandboxUUID, nil<br \/>\n&#8220;`<\/p>\n<p>\u8bf7\u6ce8\u610f\uff0c\u6b64\u5904\u63d0\u4f9b\u7684\u662f\u4ee3\u7801\u6bb5\u7684\u4e2d\u6587\u7ffb\u8bd1\uff0c\u4e0d\u5305\u542b\u5b8c\u6574\u4e0a\u4e0b\u6587\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u610f\u601d\u4e0d\u591f\u51c6\u786e\u3002\u7ffb\u8bd1\u7ed3\u679c\u4ec5\u4f9b\u53c2\u8003\uff0c\u8bf7\u6839\u636e\u5b9e\u9645\u9700\u6c42\u8fdb\u884c\u8c03\u6574\u3002<\/p>\n<p>\u4ece\u4e0a\u8ff0\u5904\u7406\u53ef\u4ee5\u770b\u51fa\uff0c\u5f53Kubelet\u5411Containerd\u67e5\u8be2&lt;\u5bb9\u5668ID&gt;\u65f6\uff0c\u5f88\u660e\u663e\u65e0\u6cd5\u83b7\u53d6\u5230\u5bb9\u5668\u4fe1\u606f\uff0c\u56e0\u6b64\u5bfc\u81f4\u4e86\u9519\u8bef\u3002<\/p>\n<p>\u4ee5\u4e0b\u662f\u6bcf\u4e2a\u7ec4\u4ef6\u5b9e\u9645\u8f93\u51fa\u7684\u65e5\u5fd7\u3002<\/p>\n<p>kubectl logs\u5b9f\u884c\u6642\u306ekubelet\u30ed\u30b0<\/p>\n<pre class=\"post-pre\"><code>Apr 07 09:23:18 &lt;\u30ce\u30fc\u30c9\u540d&gt; docker[5013]: E0407 09:23:18.813824    5126 remote_runtime.go:597] <span class=\"s2\">\"ContainerStatus from runtime service failed\"<\/span> <span class=\"nv\">err<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"rpc error: code = NotFound desc = an error occurred when try to find container <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">&lt;\u30b3\u30f3\u30c6\u30caID&gt;<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">: not found\"<\/span> <span class=\"nv\">containerID<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"&lt;\u30b3\u30f3\u30c6\u30caID&gt;\"<\/span>\r\nApr 07 09:23:18 &lt;\u30ce\u30fc\u30c9\u540d&gt; docker[5013]: I0407 09:23:18.816897    5126 log.go:184] http: superfluous response.WriteHeader call from k8s.io\/kubernetes\/vendor\/github.com\/emicklei\/go-restful.<span class=\"o\">(<\/span><span class=\"k\">*<\/span>Response<span class=\"o\">)<\/span>.WriteHeader <span class=\"o\">(<\/span>response.go:220<span class=\"o\">)<\/span>\r\n<\/code><\/pre>\n<p>kubectl logs\u5b9f\u884c\u6642\u306econtainerd\u30ed\u30b0<\/p>\n<pre class=\"post-pre\"><code>Apr 07 09:23:18 &lt;\u30ce\u30fc\u30c9\u540d&gt; containerd[4556]: <span class=\"nb\">time<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"2023-04-07T09:23:18.813255753Z\"<\/span> <span class=\"nv\">level<\/span><span class=\"o\">=<\/span>error <span class=\"nv\">msg<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"ContainerStatus for <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">&lt;\u30b3\u30f3\u30c6\u30caID&gt;<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\"> failed\"<\/span> <span class=\"nv\">error<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"rpc error: code = NotFound desc = an error occurred when try to find container <\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">&lt;\u30b3\u30f3\u30c6\u30caID&gt;<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">: not found\"<\/span>\r\n<\/code><\/pre>\n<p>\u5982\u679c\u6211\u4eec\u77e5\u9053\u76ee\u6807\u5bb9\u5668\u7684ID\uff0c\u53ef\u4ee5\u4f7f\u7528nerdctl\u7b49\u547d\u4ee4\u6765\u786e\u8ba4\u5728\u4e0a\u8ff0\u60c5\u51b5\u4e0b\u8be5\u5bb9\u5668\u5728Containerd\u4e0a\u7684\u72b6\u6001\u3002<\/p>\n<pre class=\"post-pre\"><code>$ sudo nerdctl ps -a\r\nCONTAINER    ID    IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES  \r\n                    :                                         \r\n<\/code><\/pre>\n<p>\u901a\u8fc7\u4ee5\u4e0a\u7ed3\u679c\uff0c\u6211\u4eec\u786e\u8ba4\u4e86\u4e0d\u5b58\u5728\u76f8\u5173\u7684\u5bb9\u5668\u3002<\/p>\n<p>\u6211\u53d1\u73b0\u8f93\u51fa\u201ckubectl logs\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7\u201d\u7684\u9519\u8bef\u6d88\u606f\u662f\u56e0\u4e3a\u201c\u5728Containerd\u4e0a\u4e0d\u5b58\u5728\u5177\u6709\u76f8\u5e94\u5bb9\u5668ID\u7684\u5bb9\u5668\u201d\u3002<\/p>\n<p>\u63a5\u4e0b\u6765\u8981\u8ba8\u8bba\u7684\u95ee\u9898\u662f\uff0c\u4e3a\u4ec0\u4e48\u6ca1\u6709\u96c6\u88c5\u7bb1\u5462\uff1f<\/p>\n<h3>Kubernetes\u7814\u7a76\u7684\u96be\u5ea6<\/h3>\n<p>kubectl logs\u306e\u51e6\u7406\u3092\u9806\u756a\u306b\u8ffd\u3063\u3066\u3044\u304f\u3053\u3068\u3067unable to retrieve container logs\u304c\u3069\u3053\u3067\u51fa\u529b\u3055\u308c\u3066\u304a\u308a\u3001\u305d\u308c\u304c\u8a72\u5f53\u306e\u30b3\u30f3\u30c6\u30ca\u304c\u5b58\u5728\u3057\u306a\u3044\u3053\u3068\u306b\u8d77\u56e0\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u5206\u304b\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u305f\u3060\u3001\u3053\u308c\u3060\u3051\u3067\u306f\u672c\u5f53\u306e\u539f\u56e0\u3067\u3042\u308b\u300c\u8a72\u5f53\u306e\u30b3\u30f3\u30c6\u30ca\u304c\u6d88\u3048\u3066\u3044\u308b\u539f\u56e0\u300d\u304c\u5206\u304b\u308a\u307e\u305b\u3093\u3002<\/p>\n<p>\u5728Kubernetes\u4e2d\uff0c\u7531\u4e8e\u591a\u4e2a\u5904\u7406\u8fc7\u7a0b\u662f\u5f02\u6b65\u6267\u884c\u7684\uff0c\u6240\u4ee5\u4ec5\u5bf9\u90e8\u5206\u5904\u7406\u8fdb\u884c\u8ffd\u8e2a\u65e0\u6cd5\u5b8c\u5168\u4e86\u89e3\u6574\u4f53\u60c5\u51b5\u7684\u60c5\u51b5\u5f88\u5e38\u89c1\u3002<\/p>\n<h2>\u7814\u7a76\u6b64\u5bb9\u5668\u6d88\u5931\u7684\u539f\u56e0\u3002<\/h2>\n<h3>\u8c03\u67e5\u65b9\u5f0f ch\u00e1 sh\u00ec)<\/h3>\n<h4>\u8c03\u67e5\u65b9\u6848\u7684\u65b9\u6cd5<\/h4>\n<p>\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u6211\u60f3\u53ef\u80fd\u6709\u4ee5\u4e0b\u7684\u8c03\u67e5\u65b9\u6cd5\u3002<\/p>\n<p>\u904e\u53bb\u306e\u554f\u3044\u5408\u308f\u305b\u5185\u5bb9\u7b49\u306e\u30ca\u30ec\u30c3\u30b8\u3092\u78ba\u8a8d\u3059\u308b<br \/>\n\u81ea\u5206\u9054\u304c\u904e\u53bb\u306b\u30b5\u30dd\u30fc\u30c8\u3057\u305f\u969b\u306eissue\u3084Kubernetes\u516c\u5f0f\u306eGithub\u306eissue\u3084\u516c\u5f0f\u306eSlack\u7b49\u306e\u60c5\u5831\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3067\u3001\u89e3\u6c7a\u306e\u30d2\u30f3\u30c8\u3092\u5f97\u3089\u308c\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u304b\u3089\u51e6\u7406\u3092\u78ba\u8a8d\u3057\u3066\u3044\u304f<br \/>\n\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u8aad\u3093\u3067\u3044\u3063\u3066\u8a72\u5f53\u306e\u51e6\u7406\u304c\u8d77\u3053\u308a\u305d\u3046\u306a\u7b87\u6240\u3092\u7279\u5b9a\u3059\u308b\u3068\u3044\u3046\u3084\u308a\u65b9\u3082\u3042\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002\u305f\u3060\u3053\u306e\u65b9\u6cd5\u306fKubernetes\u306b\u5bfe\u3059\u308b\u30a2\u30d7\u30ed\u30fc\u30c1\u3068\u3057\u3066\u306f\u96e3\u3057\u3044\u3068\u601d\u3044\u307e\u3059\u3002<br \/>\nKubernetes\u306e\u30b3\u30fc\u30c9\u91cf\u304c\u591a\u3044\u306e\u3068\u3001\u8a72\u5f53\u3059\u308b\u51e6\u7406\u3092\u8aad\u3093\u3060\u3068\u3057\u3066\u305d\u308c\u304c\u4eca\u56de\u306e\u4e8b\u8c61\u306b\u3064\u306a\u304c\u308b\u7b87\u6240\u3060\u3068\u6c17\u4ed8\u3051\u308b\u304b\u3068\u3044\u3046\u3068\u96e3\u3057\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u305f\u307e\u305f\u307e\u81ea\u5206\u304c\u77e5\u3063\u3066\u3044\u308bKubernetes\u306e\u30b3\u30fc\u30c9\u306e\u7b87\u6240\u3067\u8a72\u5f53\u3057\u305d\u3046\u306a\u7b87\u6240\u304c\u3042\u3063\u305f\u3089\u8aad\u307f\u76f4\u3057\u3066\u307f\u308b\u3050\u3089\u3044\u304c\u4f7f\u3044\u6240\u3067\u3001\u5b89\u5b9a\u3057\u3066\u4f7f\u3048\u308b\u65b9\u6cd5\u3067\u306f\u306a\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u518d\u73fe\u6761\u4ef6\u3092\u7279\u5b9a\u3059\u308b<br \/>\n\u4e8b\u8c61\u306e\u518d\u73fe\u6761\u4ef6\u3092\u7279\u5b9a\u3057\u3066\u3001\u518d\u73fe\u3057\u305f\u7d50\u679c\u3092\u5143\u306b\u539f\u56e0\u3092\u8abf\u67fb\u3059\u308b\u65b9\u6cd5\u3082\u3042\u308a\u307e\u3059\u3002\u591a\u304f\u306e\u5834\u5408\u306e\u8abf\u67fb\u3068\u3057\u3066\u306f\u3053\u306e\u65b9\u6cd5\u3092\u5b9f\u65bd\u3057\u307e\u3059\u3002<\/p>\n<h4>\u5b9e\u9645\u7684\u8c03\u67e5\u65b9\u6cd5<\/h4>\n<p>\u672c\u6b21\u6848\u4f8b\u4e2d\u5b9e\u9645\u91c7\u53d6\u7684\u8c03\u67e5\u65b9\u6cd5\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u786e\u8ba4\u8fc7\u53bb\u7684\u54a8\u8be2\u5185\u5bb9\u7b49\u7684\u77e5\u8bc6\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u5173\u4e8e\u8fd9\u6b21\u4e8b\u52a1\uff0c\u6211\u786e\u8ba4\u4e86Kubernetes\u5b98\u65b9\u7684\u95ee\u9898\u7b49\uff0c\u4f46\u6ca1\u6709\u627e\u5230\u76f8\u5173\u5185\u5bb9\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u786e\u5b9a\u590d\u73b0\u6761\u4ef6\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u901a\u8fc7\u4e0e\u7528\u6237\u8ba8\u8bba\u5176\u73af\u5883\u548c\u4f7f\u7528\u65b9\u6cd5\uff0c\u786e\u5b9a\u590d\u73b0\u6761\u4ef6\u5e76\u8fdb\u884c\u539f\u56e0\u8c03\u67e5\u662f\u672c\u6b21\u8fdb\u5c55\u7684\u6d41\u7a0b\u3002<\/ol>\n<h3>\u518d\u73fe\u65b9\u6cd5\u7684\u5177\u9ad4\u5b9a\u7fa9<\/h3>\n<h4>\u73af\u5883\u5efa\u7acb<\/h4>\n<p>\u5b9f\u969b\u306e\u5546\u7528\u74b0\u5883\u3067\u8272\u3005\u3068\u5b9f\u9a13\u3092\u3059\u308b\u308f\u3051\u306b\u306f\u3044\u304b\u306a\u3044\u306e\u3067\u3001\u624b\u5143\u3067\u81ea\u7531\u306b\u64cd\u4f5c\u3067\u304d\u308b\u74b0\u5883\u3092\u69cb\u7bc9\u3057\u307e\u3059\u3002<\/p>\n<p>\u786e\u8ba4\u7528\u6237\u73af\u5883\u4e2d\u53d1\u751f\u7684\u4e8b\u4ef6\u7684\u7248\u672c\u4fe1\u606f\uff0c\u5e76\u5728\u76f8\u540c\u7248\u672c\u4e0a\u6784\u5efa\u73af\u5883\u3002\u7531\u4e8e\u4e0d\u540c\u7248\u672c\u7684\u7ec4\u5408\u53ef\u80fd\u5bfc\u81f4\u4e0d\u53d1\u751f\u76f8\u5173\u4e8b\u4ef6\uff0c\u8fd9\u662f\u4e00\u4e2a\u91cd\u8981\u7684\u57fa\u672c\u64cd\u4f5c\u3002<\/p>\n<p>\u672c\u6b21\u4e8b\u4ef6\u6839\u636e\u60c5\u51b5\uff0c\u5c06\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u83b7\u53d6Kubelet\u548cContainerd\u7684\u76f8\u5173\u7248\u672c\u4fe1\u606f\uff0c\u5e76\u521b\u5efa\u76f8\u540c\u7684\u73af\u5883\u3002<\/p>\n<p>\u8bf7\u4f60\u7ed9\u6211\u4e00\u676f\u6c34\uff0c\u8c22\u8c22\u3002<br \/>\n&#8211; \u8bf7\u4f60\u5e2e\u6211\u62ff\u4e00\u676f\u6c34\uff0c\u975e\u5e38\u611f\u8c22\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl get node <span class=\"nt\">-o<\/span> wide\r\nNAME     STATUS   ROLES    AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME\r\n&lt;\u30ce\u30fc\u30c9\u540d&gt;   Ready    &lt;none&gt;   41m     v1.23.9   &lt;IP\u30a2\u30c9\u30ec\u30b9&gt;   &lt;none&gt;        Ubuntu 20.04.5 LTS   5.4.0-139-generic   containerd:\/\/1.6.16\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>runc <span class=\"nt\">--version<\/span>\r\nrunc version 1.1.4\r\ncommit: v1.1.4-0-g5fd4c4d\r\nspec: 1.0.2-dev\r\ngo: go1.18.10\r\nlibseccomp: 2.5.1\r\n<\/code><\/pre>\n<h4>\u5728\u6709\u5173\u518d\u73b0\u7684\u4fe1\u606f\u4e2d\u8fdb\u884c\u7b5b\u9009<\/h4>\n<p>\u6839\u636e\u6536\u96c6\u5230\u7684\u4fe1\u606f\u548c\u8fdb\u884c\u95ee\u8be2\uff0c\u6211\u4eec\u5c06\u63d0\u51fa\u5047\u8bbe\uff0c\u5e76\u8bd5\u56fe\u901a\u8fc7\u8bd5\u9a8c\u548c\u9519\u8bef\u6765\u91cd\u73b0\u4e8b\u4ef6\u3002<\/p>\n<p>\u53ea\u662f\u6f2b\u4e0d\u7ecf\u5fc3\u5730\u67e5\u770b\u6574\u4e2aKubernetes\u7684\u4fe1\u606f\u4f1a\u5f88\u5e9e\u5927\uff0c\u5e76\u4e14\u9700\u8981\u5f88\u957f\u65f6\u95f4\uff0c\u56e0\u6b64\u6211\u4eec\u4f1a\u7ed9\u9700\u8981\u786e\u8ba4\u7684\u4fe1\u606f\u8bbe\u5b9a\u4f18\u5148\u7ea7\u5e76\u7b5b\u9009\u3002<\/p>\n<h5>\u5bf9\u7ec4\u4ef6\u8fdb\u884c\u7b5b\u9009<\/h5>\n<p>\u7531\u4e8e\u8fd9\u4e2a\u8bdd\u9898\u6d89\u53ca\u5230\u4e0e\u5bb9\u5668\u76f8\u5173\u7684\u64cd\u4f5c\uff0c\u6240\u4ee5\u5f88\u53ef\u80fd\u662fkubelet\u6216containerd\u9020\u6210\u7684\u5f71\u54cd\u8f83\u5927\uff0c\u56e0\u6b64\u6211\u4eec\u51b3\u5b9a\u4f18\u5148\u67e5\u770b\u4e0e\u8fd9\u4e9b\u7ec4\u4ef6\u76f8\u5173\u7684\u4fe1\u606f\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24f537434c4406c30f0d\/77-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u7136\u800c\uff0c\u5728\u8fd9\u4e2a\u65f6\u70b9\u4e0a\uff0c\u6211\u4eec\u65e0\u6cd5\u6d88\u9664\u5176\u4ed6\u8fdb\u7a0b\u5220\u9664\u5bb9\u5668\u7684\u62c5\u5fe7\uff0c\u4f46\u7531\u4e8e\u4fe1\u606f\u91cf\u8f83\u5927\uff0c\u6211\u4eec\u9700\u8981\u8bbe\u5b9a\u4f18\u5148\u7ea7\u5e76\u9010\u6b65\u5ba1\u89c6\u4fe1\u606f\uff0c\u56e0\u6b64\u6211\u4eec\u5236\u5b9a\u4e86\u8fd9\u6837\u7684\u65b9\u9488\u3002<\/p>\n<h5>\u53ea\u9700\u4e00\u79cd\u9009\u62e9\uff1a\u6309\u65f6\u533a\u7b5b\u9009<\/h5>\n<p>\u5f53\u67e5\u770b\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7\u7684\u8be6\u7ec6\u4fe1\u606f\u65f6\uff0c\u53d1\u73b0\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl describe po &lt;Pod\u540d&gt;\r\n         :\r\nStatus:           Succeeded\r\nContainers:\r\n  &lt;\u30b3\u30f3\u30c6\u30ca\u540d&gt;:\r\n    State:          Terminated\r\n      Reason:       Completed\r\n      Exit Code:    0\r\n      Started:      Mon, 10 Apr 2023 18:27:25 +0900\r\n      Finished:     Mon, 10 Apr 2023 18:27:25 +0900\r\n<\/code><\/pre>\n<p>\u8a72\u5f53\u306e\u30b3\u30f3\u30c6\u30ca\u306e\u30d7\u30ed\u30bb\u30b9\u304cExit Code\u306e0\u3092\u8fd4\u3057\u3066\u304d\u3066\u3001\u305d\u308c\u304cPod\u306e\u60c5\u5831\u3068\u3057\u3066\u8a18\u9332\u3055\u308c\u3066\u3044\u308b\u3068\u3044\u3046\u3053\u3068\u306f\u3001\u305d\u306e\u6642\u9593\u5e2f\u307e\u3067\u306f\u8a72\u5f53\u306e\u30b3\u30f3\u30c6\u30ca\u306e\u30d7\u30ed\u30bb\u30b9\u304c\u5b58\u5728\u3057\u3066\u3044\u305f\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u305d\u306e\u3053\u3068\u304b\u3089\u4ee5\u4e0b\u306e\u6642\u9593\u5e2f\u306b\u4f55\u304b\u304c\u3042\u3063\u305f\u306e\u3060\u308d\u3046\u3068\u3044\u3046\u3053\u3068\u304c\u63a8\u6e2c\u3055\u308c\u308b\u306e\u3067\u3001\u8a72\u5f53\u6642\u9593\u306b\u7d5e\u3063\u3066\u8abf\u67fb\u3057\u3066\u3044\u304f\u65b9\u91dd\u3068\u3057\u307e\u3057\u305f\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u958b\u59cb\uff1aJob\u3067\u7ba1\u7406\u3059\u308bPod\u306eFinished\u306b\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u6642\u523b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u7d42\u4e86\uff1a\u5229\u7528\u8005\u304ckubectl logs\u3092\u5b9f\u884c\u3057\u3066unable to retrieve container logs\u3092\u78ba\u8a8d\u3057\u305f\u6642\u523b<\/ul>\n<h3>\u4eee\u8aac<\/h3>\n<p>\u8a72\u5f53\u6642\u9593\u306ekubelet\u306e\u30ed\u30b0\u3092\uff11\u884c\u305a\u3064\u78ba\u8a8d\u3057\u3066\u3044\u308b\u3068\u6c17\u306b\u306a\u308b\u30ed\u30b0\u3092\u898b\u3064\u3051\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"post-pre\"><code>eviction_manager.go:338] \"Eviction manager: attempting to reclaim\" resourceName=\"ephemeral-storage\"\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u6839\u636e\u4e0a\u8ff0\u60c5\u51b5\u63a8\u6d4b\uff0c\u53ef\u80fd\u662f\u7531\u4e8eDiskPressure\u5bfc\u81f4\u4e86\u9a71\u9010\uff0c\u4ece\u800c\u5bfc\u81f4\u4e86\u672c\u6b21\u4e8b\u4ef6\u7684\u53d1\u751f\u3002<\/p>\n<h3>\u691c\u8a3c<\/h3>\n<ul class=\"post-ul\">nodeSelector\u3067\u5bfe\u8c61\u30ce\u30fc\u30c9\u3092\u56fa\u5b9a\u3057\u3066\u30ed\u30b0\u3092\u51fa\u529b\u3059\u308bJob\u3092\u7528\u610f\u3059\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">batch\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Job<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">hello<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">backoffLimit<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n  <span class=\"na\">parallelism<\/span><span class=\"pi\">:<\/span> <span class=\"m\">5<\/span>\r\n  <span class=\"na\">completions<\/span><span class=\"pi\">:<\/span> <span class=\"m\">20<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">nodeSelector<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">kubernetes.io\/hostname<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;\u30ce\u30fc\u30c9\u540d&gt;<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">hello<\/span>\r\n        <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n        <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">echo\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">Hello,<\/span> <span class=\"s\">Kubernetes!\"<\/span><span class=\"pi\">]<\/span>\r\n      <span class=\"na\">restartPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Never<\/span>\r\n<\/code><\/pre>\n<p>Disk Pressure\u304c\u30af\u30e9\u30b9\u30bf\u5168\u4f53\u3067\u767a\u751f\u3059\u308b\u3068API Server\u306b\u63a5\u7d9a\u3057\u3065\u3089\u304f\u306a\u3063\u305f\u308a\u3001\u78ba\u8a8d\u3059\u3079\u304d\u5bfe\u8c61\u306e\u30ce\u30fc\u30c9\u304c\u8907\u6570\u306b\u306a\u3063\u305f\u308a\u3057\u3066\u78ba\u8a8d\u3057\u306b\u304f\u3044\u306e\u3067\u3001\u78ba\u8a8d\u3057\u3084\u3059\u304f\u3059\u308b\u305f\u3081\u306b\u5bfe\u8c61\u30ce\u30fc\u30c9\u306e\u9650\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u4e3a\u4e86\u4f7f\u4e8b\u60c5\u66f4\u5bb9\u6613\u53d1\u751f\uff0c\u6211\u4f1a\u90e8\u7f72\u5927\u7ea620\u4e2aPod\u8fdb\u884c\u8bd5\u9a8c\u3002<\/p>\n<ul class=\"post-ul\">\u30ed\u30b0\u304c\u6b63\u5e38\u306b\u53d6\u5f97\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl logs <span class=\"nt\">-l<\/span> job-name<span class=\"o\">=<\/span>hello\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\nHello, Kubernetes!\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\u5bfe\u8c61\u306e\u30ce\u30fc\u30c9\u304cDisk Pressure\u306e\u72b6\u614b\u306b\u306a\u308b\u3088\u3046\u306b\u3001\u30c7\u30a3\u30b9\u30af\u5bb9\u91cf\u3092\u6d88\u8cbb\u3059\u308bJob\u3092\u7528\u610f\u3059\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ConfigMap<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">scripts<\/span>\r\n<span class=\"na\">data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">test.sh<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">|<\/span>\r\n    <span class=\"s\">#!\/bin\/sh<\/span>\r\n    <span class=\"s\">dd if=\/dev\/zero of=5G.dummy bs=1M count=5000<\/span>\r\n<span class=\"s\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">batch\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Job<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">disk-pressure-test<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">backoffLimit<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3<\/span>\r\n  <span class=\"na\">parallelism<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n  <span class=\"na\">completions<\/span><span class=\"pi\">:<\/span> <span class=\"m\">15<\/span>\r\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">nodeSelector<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">kubernetes.io\/hostname<\/span><span class=\"pi\">:<\/span> <span class=\"s\">&lt;\u30ce\u30fc\u30c9\u540d&gt;<\/span>\r\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">disk-pressure-test<\/span>\r\n        <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n        <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">\/bin\/sh\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\/shell\/test.sh\"<\/span><span class=\"pi\">]<\/span>\r\n        <span class=\"na\">volumeMounts<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">config-volume<\/span>\r\n          <span class=\"na\">mountPath<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/shell<\/span>\r\n      <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">config-volume<\/span>\r\n        <span class=\"na\">configMap<\/span><span class=\"pi\">:<\/span>\r\n          <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">scripts<\/span>\r\n          <span class=\"na\">items<\/span><span class=\"pi\">:<\/span>\r\n            <span class=\"pi\">-<\/span> <span class=\"na\">key<\/span><span class=\"pi\">:<\/span> <span class=\"s\">test.sh<\/span>\r\n              <span class=\"na\">path<\/span><span class=\"pi\">:<\/span> <span class=\"s\">test.sh<\/span>\r\n      <span class=\"na\">restartPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Never<\/span>\r\n<\/code><\/pre>\n<ul class=\"post-ul\">Evicted\u304c\u767a\u751f\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl get po\r\nNAME                       READY   STATUS      RESTARTS   AGE\r\ndisk-pressure-test-4h6wj   0\/1     Completed   0          36s\r\ndisk-pressure-test-6b684   0\/1     Completed   0          57s\r\ndisk-pressure-test-g6j92   0\/1     Completed   0          80s\r\ndisk-pressure-test-kf8k5   0\/1     Completed   0          91s\r\ndisk-pressure-test-n4rgw   0\/1     Evicted     0          20s\r\ndisk-pressure-test-pvms4   0\/1     Pending     0          10s\r\ndisk-pressure-test-rdx8v   0\/1     Completed   0          69s\r\ndisk-pressure-test-s9m2q   0\/1     Evicted     0          20s\r\ndisk-pressure-test-z2zth   0\/1     Completed   0          46s\r\nhello-26fmz                0\/1     Completed   0          6m7s\r\n         :\r\n<\/code><\/pre>\n<ul class=\"post-ul\">Evicted\u306e\u539f\u56e0\u304cDisk Pressure\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d<\/ul>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>kubectl describe po disk-pressure-test-n4rgw \r\nName:             disk-pressure-test-n4rgw\r\n   :\r\nStatus:           Failed\r\nReason:           Evicted\r\nMessage:          Pod The node had condition: <span class=\"o\">[<\/span>DiskPressure]. \r\n   :\r\nEvents:\r\n  Type     Reason     Age   From               Message\r\n  <span class=\"nt\">----<\/span>     <span class=\"nt\">------<\/span>     <span class=\"nt\">----<\/span>  <span class=\"nt\">----<\/span>               <span class=\"nt\">-------<\/span>\r\n  Normal   Scheduled  29s   default-scheduler  Successfully assigned job-test\/disk-pressure-test-n4rgw to demo-yosshi-cj-w-default-03a7f1b0-fqtj8\r\n  Warning  Evicted    30s   kubelet            The node had condition: <span class=\"o\">[<\/span>DiskPressure].\r\n<\/code><\/pre>\n<ul class=\"post-ul\">\u3053\u306e\u72b6\u614b\u3067kubectl logs\u3092\u5b9f\u884c\u3057\u3066\u30ed\u30b0\u3092\u53d6\u5f97\u3067\u304d\u308b\u304b\u78ba\u8a8d<\/ul>\n<pre class=\"post-pre\"><code>$ kubectl logs -l job-name=hello\r\nunable to retrieve container logs for containerd:\/\/a39e46811fd9cb371853d60f27a40321428a1d0dff2a6587a0e2207d225dfcba\r\n<\/code><\/pre>\n<p>unable to retrieve container logs\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u53d6\u5f97\u3067\u304d\u3001\u7533\u544a\u306b\u3042\u3063\u305f\u72b6\u614b\u3092\u518d\u73fe\u3059\u308b\u3053\u3068\u306b\u6210\u529f<\/p>\n<h3>\u5c0d\u65bc\u7d50\u679c\u9032\u884c\u66f4\u6df1\u5165\u7684\u63a2\u7d22<\/h3>\n<h4>\u67e5\u770bkubelet\u7684\u65e5\u5fd7\u8bb0\u5f55<\/h4>\n<p>\u624b\u5143\u3067\u518d\u73fe\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u3068\u3001\u30ce\u30a4\u30ba\u304c\u5c11\u306a\u3044\u72b6\u614b\u306e\u30ed\u30b0\u3092\u53d6\u5f97\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>Disk Pressure\u767a\u751f\u6642\u306ekubelet\u306e\u30ed\u30b0<\/p>\n<pre class=\"post-pre\"><code>I0214 08:38:39.199718    5148 eviction_manager.go:338] \"Eviction manager: attempting to reclaim\" resourceName=\"ephemeral-storage\"\r\nI0214 08:38:39.201508    5148 container_gc.go:85] \"Attempting to delete unused containers\"\r\nI0214 08:38:39.203363    5148 scope.go:110] \"RemoveContainer\" containerID=\"aa176ae956aa102c5a65b83c9c21f95f5cb19adf77e1205b189663252fd859d7\"\r\nI0214 08:38:39.212115    5148 scope.go:110] \"RemoveContainer\" containerID=\"7a0531f9dea7aeac6d18eece63bc6127cabd744bbd993feade307dcd27ad5e87\"\r\nI0214 08:38:39.219660    5148 scope.go:110] \"RemoveContainer\" containerID=\"5f6f972e2110d22004f6d6cb65ef762b4263e53fa45a3fa34dd33dc393a5399e\"\r\nI0214 08:38:39.282208    5148 scope.go:110] \"RemoveContainer\" containerID=\"4471fe782da67ad8ac3871108b45eb9342d85a3156996534d55d7f450b5dd352\"\r\nI0214 08:38:39.301176    5148 scope.go:110] \"RemoveContainer\" containerID=\"095d21344362bda473daf55c9835a5252f21bd68934ba93b0ffe947f8a129c63\"\r\nI0214 08:38:39.315522    5148 scope.go:110] \"RemoveContainer\" containerID=\"48a095de20e37a4ad729eb15372dfd617fe6c0373b1cb67d6705f186a9cf08a6\"\r\nI0214 08:38:39.617581    5148 image_gc_manager.go:327] \"Attempting to delete unused images\"\r\nI0214 08:38:39.722762    5148 eviction_manager.go:345] \"Eviction manager: able to reduce resource pressure without evicting pods.\" resourceName=\"ephemeral-storage\"\r\n<\/code><\/pre>\n<p>\u30ed\u30b0\u306b\u306feviction_manager.go:338\u306e\u3088\u3046\u306b\u3001\u30ed\u30b0\u3092\u51fa\u529b\u3057\u305f\u8a72\u5f53\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306e\u60c5\u5831\u304c\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u3001\u8a72\u5f53\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3092\u9806\u756a\u306b\u8aad\u3093\u3067\u3044\u304f\u3053\u3068\u3067\u5b9f\u969b\u306b\u8d77\u3053\u3063\u305f\u51e6\u7406\u306e\u5185\u5bb9\u3092\u628a\u63e1\u3057\u3066\u3044\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h4>\u8fdb\u884c\u6e90\u4ee3\u7801\u9605\u8bfb<\/h4>\n<p>\u5f53\u67e5\u770b\u65e5\u5fd7\u4e2d\u7684\u6e90\u4ee3\u7801\u65f6\uff0c\u60c5\u51b5\u5982\u4e0b\u3002<\/p>\n<ul class=\"post-ul\">eviction_manager.go:338<\/ul>\n<pre class=\"post-pre\"><code>\t<span class=\"c\">\/\/ rank the thresholds by eviction priority<\/span>\r\n\t<span class=\"n\">sort<\/span><span class=\"o\">.<\/span><span class=\"n\">Sort<\/span><span class=\"p\">(<\/span><span class=\"n\">byEvictionPriority<\/span><span class=\"p\">(<\/span><span class=\"n\">thresholds<\/span><span class=\"p\">))<\/span>\r\n\t<span class=\"n\">thresholdToReclaim<\/span><span class=\"p\">,<\/span> <span class=\"n\">resourceToReclaim<\/span><span class=\"p\">,<\/span> <span class=\"n\">foundAny<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">getReclaimableThreshold<\/span><span class=\"p\">(<\/span><span class=\"n\">thresholds<\/span><span class=\"p\">)<\/span>\r\n\t<span class=\"k\">if<\/span> <span class=\"o\">!<\/span><span class=\"n\">foundAny<\/span> <span class=\"p\">{<\/span>\r\n\t\t<span class=\"k\">return<\/span> <span class=\"no\">nil<\/span>\r\n\t<span class=\"p\">}<\/span>\r\n\t<span class=\"n\">klog<\/span><span class=\"o\">.<\/span><span class=\"n\">InfoS<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Eviction manager: attempting to reclaim\"<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"resourceName\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">resourceToReclaim<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<p>ref https:\/\/github.com\/kubernetes\/kubernetes\/blob\/v1.23.9\/pkg\/kubelet\/eviction\/eviction_manager.go#L332-L338<\/p>\n<ul class=\"post-ul\">container_gc.go:85<\/ul>\n<pre class=\"post-pre\"><code><span class=\"k\">func<\/span> <span class=\"p\">(<\/span><span class=\"n\">cgc<\/span> <span class=\"o\">*<\/span><span class=\"n\">realContainerGC<\/span><span class=\"p\">)<\/span> <span class=\"n\">DeleteAllUnusedContainers<\/span><span class=\"p\">()<\/span> <span class=\"kt\">error<\/span> <span class=\"p\">{<\/span>\r\n\t<span class=\"n\">klog<\/span><span class=\"o\">.<\/span><span class=\"n\">InfoS<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Attempting to delete unused containers\"<\/span><span class=\"p\">)<\/span>\r\n\t<span class=\"k\">return<\/span> <span class=\"n\">cgc<\/span><span class=\"o\">.<\/span><span class=\"n\">runtime<\/span><span class=\"o\">.<\/span><span class=\"n\">GarbageCollect<\/span><span class=\"p\">(<\/span><span class=\"n\">cgc<\/span><span class=\"o\">.<\/span><span class=\"n\">policy<\/span><span class=\"p\">,<\/span> <span class=\"n\">cgc<\/span><span class=\"o\">.<\/span><span class=\"n\">sourcesReadyProvider<\/span><span class=\"o\">.<\/span><span class=\"n\">AllReady<\/span><span class=\"p\">(),<\/span> <span class=\"no\">true<\/span><span class=\"p\">)<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u4f3c\u4e4e\u53d1\u73b0\u4e86\u5728\u53d1\u751f\u78c1\u76d8\u538b\u529b\u65f6\u7ec8\u6b62\u5bb9\u5668\u7684\u5220\u9664\u64cd\u4f5c\u3002<\/p>\n<h4>\u786e\u8ba4\u5b9e\u65bd\u7684\u7ecf\u8fc7<\/h4>\n<p>\u7531\u4e8e\u5b83\u662f\u5f00\u6e90\u8f6f\u4ef6\uff0c\u6240\u4ee5\u6709\u5f88\u591a\u6211\u4e0d\u4e86\u89e3\u7684\u4e8b\u60c5\uff0c\u4f46\u5f80\u5f80\u5305\u542b\u4e86\u6709\u5173\u53d8\u66f4\u7684PR\u7684\u53c2\u8003\u4fe1\u606f\uff0c\u56e0\u6b64\u6211\u4f1a\u4f7f\u7528git blame\u7b49\u5de5\u5177\u8fdb\u884c\u786e\u8ba4\u3002<\/p>\n<ul class=\"post-ul\">git blame<\/ul>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24f537434c4406c30f0d\/122-0.png\" alt=\"Blaming_kubernetes_container_gc_go_at_v1_23_9_\u00b7kubernetes_kubernetes\u00b7_GitHub.png\" \/><\/div>\n<ul class=\"post-ul\">\u5909\u66f4\u6642\u306ePR<\/ul>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24f537434c4406c30f0d\/124-0.png\" alt=\"Delete_all_dead_containers_and_sandboxes_when_under_disk_pressure__by_dashpole_\u00b7Pull_Request__45896\u00b7_kubernetes_kubernetes.png\" \/><\/div>\n<p>ref https:\/\/github.com\/kubernetes\/kubernetes\/pull\/45896<\/p>\n<p>\u5909\u66f4\u6642\u306ePR\u3092\u8aad\u3093\u3067\u3044\u304f\u3068\u3001Kubernetes v1.8\u304b\u3089Disk Pressure\u767a\u751f\u6642\u306bterminated\u306e\u30b3\u30f3\u30c6\u30ca\u3092\u524a\u9664\u3059\u308b\u51e6\u7406\u304c\u5b9f\u88c5\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u308f\u304b\u308a\u307e\u3059\u3002\u5909\u66f4\u7406\u7531\u304cDisk Pressure\u767a\u751f\u6642\u306b\u4f7f\u3063\u3066\u306a\u3044\u30b3\u30f3\u30c6\u30ca\u3092\u524a\u9664\u3059\u308b\u3053\u3068\u3067\u30c7\u30a3\u30b9\u30af\u306e\u7a7a\u304d\u5bb9\u91cf\u3092\u5897\u3084\u3059\u305f\u3081\u306e\u5b9f\u65bd\u3057\u3066\u3044\u308b\u3068\u3044\u3046\u3053\u3068\u3082\u308f\u304b\u308a\u307e\u3057\u305f\u3002<\/p>\n<h3>\u5bf9\u539f\u56e0\u7684\u601d\u8003<\/h3>\n<p>Kubernetes v1.8\u304b\u3089Disk Pressure\u767a\u751f\u6642\u306bterminated\u306e\u30b3\u30f3\u30c6\u30ca\u3092\u524a\u9664\u3059\u308b\u51e6\u7406\u304c\u5b9f\u88c5\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u4ee5\u4e0b\u306e\u6761\u4ef6\u304c\u91cd\u306a\u3063\u305f\u6642\u306bunable to retrieve container logs\u304c\u51fa\u529b\u3055\u308c\u308b\u3068\u8003\u3048\u3089\u308c\u307e\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">terminated\u306e\u30b3\u30f3\u30c6\u30ca\u304c\u5b58\u5728\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30ce\u30fc\u30c9\u3067Disk Pressure\u306b\u3088\u308bEviction\u304c\u767a\u751f\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>kubectl logs\u3067Pod\u306e\u30ed\u30b0\u3092\u53c2\u7167\u3059\u308b<\/p>\n<p>\u8a72\u5f53\u6a5f\u80fd\u304cKubernetes v1.8\u304b\u3089\u5b9f\u88c5\u3055\u308c\u3066\u3044\u308b\u306b\u3082\u95a2\u308f\u3089\u305a\u306b\u3001\u65b0\u898f\u306e\u30b5\u30dd\u30fc\u30c8\u30b1\u30fc\u30b9\u3068\u3057\u3066\u554f\u3044\u5408\u308f\u305b\u304c\u304d\u305f\u306e\u304b\u306b\u3064\u3044\u3066\u3082\u5c11\u3057\u8003\u3048\u3066\u307f\u307e\u3059\u3002(\u3053\u306e\u30b5\u30dd\u30fc\u30c8\u30b1\u30fc\u30b9\u304c\u4ed6\u306e\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3067\u3082\u3088\u304f\u8d77\u3053\u308b\u3082\u306e\u306a\u306e\u304b\u8003\u3048\u308b)<\/p>\n<p>Kubernetes\u306e\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3067\u306fWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u52d5\u304b\u3059\u30b1\u30fc\u30b9\u304c\u591a\u304f\u3001Deployment\u3092\u4f7f\u7528\u3059\u308b\u30b1\u30fc\u30b9\u304c\u591a\u6570\u3092\u5360\u3081\u307e\u3059\u3002\u305d\u306e\u5834\u5408\u306fPod\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u304cRunning\u306b\u306a\u3063\u3066\u304a\u308a\u3001\u30b3\u30f3\u30c6\u30ca\u306e\u72b6\u614b\u3082terminated\u3067\u306f\u306a\u3044\u3068\u3044\u3046\u5834\u5408\u304c\u591a\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u305d\u306e\u305f\u3081\u3001\u4e0a\u8a18\u306e\u6761\u4ef6\u3092\u5168\u90e8\u6e80\u305f\u3059\u3068\u3044\u3046\u306e\u304c\u3042\u307e\u308a\u591a\u304f\u306a\u3044\u306e\u3067\u3001\u4eca\u56de\u304c\u521d\u3081\u3066\u306e\u30b5\u30dd\u30fc\u30c8\u30b1\u30fc\u30b9\u306b\u306a\u3063\u305f\u306e\u3060\u3068\u8003\u3048\u3089\u308c\u307e\u3059\u3002<\/p>\n<h3>\u786e\u8ba4\u4e8b\u5b9e<\/h3>\n<p>\u7531\u4e8e\u4e0a\u8ff0\u5185\u5bb9\u662f\u57fa\u4e8e\u6211\u624b\u4e2d\u7684\u786e\u8ba4\u5185\u5bb9\u7684\u5047\u8bbe\uff0c\u6240\u4ee5\u76ee\u524d\u8fd8\u6ca1\u6709\u786e\u5207\u7684\u8bc1\u5b9e\u662f\u5426\u4e3a\u5b9e\u9645\u53d1\u751f\u7684\u4e8b\u5b9e\u3002<\/p>\n<p>\u56e0\u6b64\uff0c\u6211\u4eec\u8981\u786e\u8ba4\u4ece\u7528\u6237\u73af\u5883\u4e2d\u83b7\u53d6\u7684kubelet\u662f\u5426\u8f93\u51fa\u4e86\u4e0e\u6211\u624b\u8fb9\u521b\u5efaDisk Pressure\u65f6kubelet\u65e5\u5fd7\u4e2d\u76f8\u540c\u7684\u5185\u5bb9\u3002<\/p>\n<ul class=\"post-ul\">\u518d\u63b2:Disk Pressure\u767a\u751f\u6642\u306ekubelet\u306e\u30ed\u30b0<\/ul>\n<pre class=\"post-pre\"><code>I0214 08:38:39.199718    5148 eviction_manager.go:338] \"Eviction manager: attempting to reclaim\" resourceName=\"ephemeral-storage\"\r\nI0214 08:38:39.201508    5148 container_gc.go:85] \"Attempting to delete unused containers\"\r\nI0214 08:38:39.203363    5148 scope.go:110] \"RemoveContainer\" containerID=\"aa176ae956aa102c5a65b83c9c21f95f5cb19adf77e1205b189663252fd859d7\"\r\nI0214 08:38:39.212115    5148 scope.go:110] \"RemoveContainer\" containerID=\"7a0531f9dea7aeac6d18eece63bc6127cabd744bbd993feade307dcd27ad5e87\"\r\nI0214 08:38:39.219660    5148 scope.go:110] \"RemoveContainer\" containerID=\"5f6f972e2110d22004f6d6cb65ef762b4263e53fa45a3fa34dd33dc393a5399e\"\r\nI0214 08:38:39.282208    5148 scope.go:110] \"RemoveContainer\" containerID=\"4471fe782da67ad8ac3871108b45eb9342d85a3156996534d55d7f450b5dd352\"\r\nI0214 08:38:39.301176    5148 scope.go:110] \"RemoveContainer\" containerID=\"095d21344362bda473daf55c9835a5252f21bd68934ba93b0ffe947f8a129c63\"\r\nI0214 08:38:39.315522    5148 scope.go:110] \"RemoveContainer\" containerID=\"48a095de20e37a4ad729eb15372dfd617fe6c0373b1cb67d6705f186a9cf08a6\"\r\nI0214 08:38:39.617581    5148 image_gc_manager.go:327] \"Attempting to delete unused images\"\r\nI0214 08:38:39.722762    5148 eviction_manager.go:345] \"Eviction manager: able to reduce resource pressure without evicting pods.\" resourceName=\"ephemeral-storage\"\r\n<\/code><\/pre>\n<p>\u554f\u3044\u5408\u308f\u305b\u6642\u306b\u5341\u5206\u306b\u60c5\u5831\u304c\u53d6\u5f97\u3067\u304d\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001\u3053\u306e\u5de5\u7a0b\u306f\u5b9f\u65bd\u3067\u304d\u306a\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u3067\u304d\u308c\u3070\u3084\u3063\u3066\u304a\u304d\u305f\u3044\u5185\u5bb9\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h2>\u539f\u56e0\u306b\u5bfe\u3059\u308b\u5bfe\u51e6<\/h2>\n<p>unable to retrieve container logs\u306e\u539f\u56e0\u306b\u3064\u3044\u3066\u306f\u5206\u304b\u308a\u307e\u3057\u305f\u304c\u3001\u539f\u56e0\u304c\u5206\u304b\u3063\u305f\u3060\u3051\u3067\u306f\u5229\u7528\u8005\u3068\u3057\u3066\u306f\u4ee5\u4e0b\u306b2\u3064\u306e\u8ab2\u984c\u304c\u4f9d\u7136\u3068\u3057\u3066\u5b58\u5728\u3057\u307e\u3059\u3002<\/p>\n<p>kubectl logs\u3067\u30b3\u30f3\u30c6\u30ca\u306e\u30ed\u30b0\u304c\u53d6\u5f97\u3067\u304d\u306a\u3044<\/p>\n<p>Disk Pressure\u304c\u5b9a\u671f\u7684\u306b\u767a\u751f\u3057\u3066\u3044\u308b<\/p>\n<p>\u305d\u308c\u305e\u308c\u306b\u5bfe\u3059\u308b\u5bfe\u51e6\u65b9\u6cd5\u3092\u8003\u3048\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<h3>\u300ckubectl logs\u3067\u30b3\u30f3\u30c6\u30ca\u306e\u30ed\u30b0\u304c\u53d6\u5f97\u3067\u304d\u306a\u3044\u300d\u4ef6\u306e\u5bfe\u51e6<\/h3>\n<p>\u305d\u3082\u305d\u3082\u306e\u8a71\u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059\u304c\u3001kubectl logs\u304c\u8a72\u5f53\u306e\u30b3\u30f3\u30c6\u30ca\u306e\u30ed\u30b0\u3092\u5fc5\u305a\u53d6\u5f97\u3067\u304d\u308b\u3053\u3068\u3092\u4fdd\u8a3c\u3059\u308b\u3088\u3046\u306a\u8a2d\u8a08\u306b\u306a\u3063\u3066\u3044\u307e\u305b\u3093\u3002<\/p>\n<p>\u30b3\u30f3\u30c6\u30ca\u306e\u30ed\u30b0\u306b\u3064\u3044\u3066\u306f\u5404\u30ce\u30fc\u30c9\u306b\u9589\u3058\u305f\u3082\u306e\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u30ed\u30fc\u30ea\u30f3\u30b0\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u6642\u306b\u8a72\u5f53\u306e\u30b5\u30fc\u30d0\u304c\u306a\u304f\u306a\u308b\u3068\u53d6\u5f97\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24f537434c4406c30f0d\/146-0.png\" alt=\"Kubernetes_Logging\u5165\u9580_pdf_-_Speaker_Deck.png\" \/><\/div>\n<p>Job\u304c\u5b8c\u4e86\u3057\u3066\u3001terminated\u306b\u306a\u3063\u3066\u3044\u308b\u30b3\u30f3\u30c6\u30ca\u306b\u3064\u3044\u3066\u306f\u3001UnusedContainers\u3068\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e0a\u3067\u66f8\u304b\u308c\u305f\u308a\u3057\u3066\u304a\u308a\u3001\u305d\u3082\u305d\u3082\u4f7f\u7528\u3057\u3066\u3044\u306a\u3044\u3082\u306e\u3068\u3057\u3066\u6271\u308f\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u305d\u306e\u305f\u3081\u3001\u30ed\u30b0\u304c\u53d6\u5f97\u3067\u304d\u308b\u3053\u3068\u3092\u671f\u5f85\u3059\u308b\u5834\u5408\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306bLogging Beckend(e.g. Grafana Loki)\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24f537434c4406c30f0d\/149-0.png\" alt=\"Kubernetes_Logging\u5165\u9580_pdf_-_Speaker_Deck.png\" \/><\/div>\n<p>kubectl logs\u53ea\u662f\u4e00\u4e2a\u8f85\u52a9\u547d\u4ee4\uff0c\u5728\u5546\u4e1a\u8fd0\u8425\u4e2d\u5982\u679c\u8981\u96c6\u6210\u65e5\u5fd7\u8bb0\u5f55\uff0c\u5efa\u8bae\u7528\u6237\u8003\u8651\u4f7f\u7528\u65e5\u5fd7\u540e\u7aef\uff0c\u5e76\u8fdb\u884c\u6307\u5bfc\u3002<\/p>\n<h3>\u5bf9\u4e8e\u300c\u78c1\u76d8\u538b\u529b\u5b9a\u671f\u53d1\u751f\u300d\u7684\u5904\u7406\u63aa\u65bd\u3002<\/h3>\n<p>Disk Pressure\u304c\u6307\u3057\u3066\u3044\u308bDisk\u306f\u3001kubernetes\u4e0a\u3067\u306fnodefs\u3068imagefs\u306e\uff12\u3064\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n\u305d\u308c\u305e\u308c\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u3082\u306e\u304c\u542b\u307e\u308c\u307e\u3059\u3002<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u8282\u70b9\u6587\u4ef6\u7cfb\u7edf<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u672c\u5730\u78c1\u76d8\u5377<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u7a7a\u76ee\u5f55<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u65e5\u5fd7\u5b58\u50a8<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u7b49<\/ol>\n<\/li>\n<\/ol>\n<p>\u955c\u50cf\u6587\u4ef6\u7cfb\u7edf<br \/>\n\u5bb9\u5668\u955c\u50cf<br \/>\n\u5bb9\u5668\u53ef\u5199\u5c42<\/p>\n<p>ref https:\/\/kubernetes.io\/docs\/concepts\/scheduling-eviction\/node-pressure-eviction\/<\/p>\n<p>\u3082\u3061\u308d\u3093\u30af\u30e9\u30b9\u30bf\u5168\u4f53\u306e\u30c7\u30a3\u30b9\u30af\u4f7f\u7528\u91cf\u3092\u5897\u3084\u3059\u3068\u3044\u3046\u30a2\u30d7\u30ed\u30fc\u30c1\u3082\u3042\u308a\u307e\u3059\u304c\u3001\u539f\u56e0\u306b\u5408\u308f\u305b\u3066\u5bfe\u7b56\u3057\u306a\u3044\u3068\u52b9\u679c\u304c\u3042\u307e\u308a\u51fa\u306a\u3044\u30b1\u30fc\u30b9\u3082\u3042\u308b\u306e\u3067\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<h4>nodefs\u306e\u5bfe\u7b56<\/h4>\n<p>\u5982\u679c\u7531\u4e8eNode.js\u6587\u4ef6\u7cfb\u7edf\u6a21\u5757(nodefs)\u7684\u539f\u56e0\u5bfc\u81f4\u4e86\u78c1\u76d8\u538b\u529b\u7684\u53d1\u751f\uff0c\u53ef\u4ee5\u8003\u8651\u4ee5\u4e0b\u5bf9\u7b56\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">resource.requests\/limit\u306e\u8a2d\u5b9a\u898b\u76f4\u3057<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">PV\u306e\u5229\u7528\u306e\u691c\u8a0e<\/ul>\n<h5>\u8d44\u6e90\u8bf7\u6c42\/\u9650\u5236\u8bbe\u7f6e\u7684\u5ba1\u67e5\u548c\u8c03\u6574<\/h5>\n<p>\u5728\u8bbe\u7f6eephemeral storage\u7684requests\/limits\u65f6\uff0c\u8bf7\u6ce8\u610f\u4ee5\u4e0b\u4e24\u70b9\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">requests\u3092\u8a2d\u5b9a\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">ephemeral storage\u306b\u95a2\u3057\u3066\u306f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u30b1\u30fc\u30b9\u304c\u7d50\u69cb\u591a\u304f\u3001\u8a2d\u5b9a\u3057\u3066\u3044\u305f\u3089\u9632\u3052\u305f\u306a\u3068\u3044\u3046\u30b1\u30fc\u30b9\u3092\u898b\u308b\u3053\u3068\u3082\u6642\u3005\u3042\u308a\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u904b\u7528\u6642\u306b\u5b9a\u671f\u7684\u306brequests\/limit\u306e\u898b\u76f4\u3057\u3092\u884c\u3046<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u521d\u56de\u30ea\u30ea\u30fc\u30b9\u6642\u306f\u8a2d\u5b9a\u3057\u305f\u3051\u3069\u3001\u6a5f\u80fd\u8ffd\u52a0\u7b49\u306b\u3088\u308a\u4f7f\u7528\u3059\u308b\u30ea\u30bd\u30fc\u30b9\u304c\u5897\u3048\u308b\u30b1\u30fc\u30b9\u304c\u7d50\u69cb\u51fa\u3066\u304f\u308b\u3068\u601d\u3044\u307e\u3059\u3002\u305d\u306e\u969b\u306brequests\/limit\u3092\u4fee\u6b63\u3057\u3066\u3044\u308b\u30b1\u30fc\u30b9\u306f\u5c11\u306a\u3044\u5370\u8c61\u3092\u53d7\u3051\u3066\u3044\u308b\u306e\u3067\u3001\u3067\u304d\u308c\u3070\u898b\u76f4\u3057\u3057\u305f\u307b\u3046\u304c\u826f\u3044\u3067\u3059\u3002<\/ul>\n<p>\u53c2\u8003\uff1aKubernetes \u7684\u4e34\u65f6\u5b58\u50a8<\/p>\n<h5>PV\u306e\u5229\u7528\u306e\u691c\u8a0e<\/h5>\n<p>\u30ce\u30fc\u30c9\u4e0a\u306e\u30c7\u30a3\u30b9\u30af\u3067\u8db3\u308a\u306a\u3044\u5834\u5408\u306fPV\u3092\u4f7f\u3063\u3066\u5916\u90e8\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\u3002<br \/>\nCPU\u3084\u30e1\u30e2\u30ea\u306e\u5897\u52a0\u91cf\u3068\u3057\u3066\u30c7\u30a3\u30b9\u30af\u306e\u5897\u52a0\u91cf\u304c\u591a\u3044\u5834\u5408\u306f\u3001\u5916\u90e8\u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u5229\u7528\u3092\u691c\u8a0e\u3059\u308b\u3068\u3044\u3046\u9078\u629e\u80a2\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u901a\u5e38\u306ePV\u4ee5\u5916\u306b\u3082Generic Ephemeral Volume\u3092\u4f7f\u3046\u3068\u3044\u3046\u9078\u629e\u80a2\u3082\u3042\u308b\u306e\u3067\u691c\u8a0e\u3057\u3066\u307f\u308b\u3068\u3044\u3046\u65b9\u6cd5\u3082\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u53c2\u8003\uff1aKubernetes: CSI \u3092\u4f7f\u3063\u305fEphemeral Volume\u306e\u52d5\u4f5c\u691c\u8a3c<\/p>\n<h4>\u56fe\u50cf\u6587\u4ef6\u7cfb\u7edf\u7684\u9632\u5fa1\u63aa\u65bd<\/h4>\n<p>\u5982\u679c\u51fa\u73b0\u7531\u4e8e\u56fe\u50cf\u6587\u4ef6\u7cfb\u7edf\u5f15\u8d77\u7684\u78c1\u76d8\u538b\u529b\u95ee\u9898\uff0c\u53ef\u4ee5\u8003\u8651\u4ee5\u4e0b\u5bf9\u7b56\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Image GC\u306e\u8a2d\u5b9a\u306e\u898b\u76f4\u3057<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">emptyDir\u306e\u5229\u7528\u306e\u691c\u8a0e<\/ul>\n<h5>\u91cd\u65b0\u5ba1\u67e5Image GC\u7684\u8bbe\u7f6e\u3002<\/h5>\n<p>Kubelet \u5728\u56fe\u50cf\u5783\u573e\u6536\u96c6\u65b9\u9762\u6709\u4e00\u4e2a\u673a\u5236\uff0c\u6839\u636e\u4ee5\u4e0b\u8bbe\u7f6e\u6267\u884c\u5783\u573e\u6536\u96c6\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">imageMinimumGCAge: \u30c7\u30d5\u30a9\u30eb\u30c82min<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">imageGCHighThresholdPercent : \u30c7\u30d5\u30a9\u30eb\u30c8 85%<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">imageGCLowThresholdPercent: \u30c7\u30d5\u30a9\u30eb\u30c8 80%<\/ul>\n<pre class=\"post-pre\"><code>\t<span class=\"k\">if<\/span> <span class=\"n\">obj<\/span><span class=\"o\">.<\/span><span class=\"n\">ImageMinimumGCAge<\/span> <span class=\"o\">==<\/span> <span class=\"n\">zeroDuration<\/span> <span class=\"p\">{<\/span>\r\n\t\t<span class=\"n\">obj<\/span><span class=\"o\">.<\/span><span class=\"n\">ImageMinimumGCAge<\/span> <span class=\"o\">=<\/span> <span class=\"n\">metav1<\/span><span class=\"o\">.<\/span><span class=\"n\">Duration<\/span><span class=\"p\">{<\/span><span class=\"n\">Duration<\/span><span class=\"o\">:<\/span> <span class=\"m\">2<\/span> <span class=\"o\">*<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Minute<\/span><span class=\"p\">}<\/span>\r\n\t<span class=\"p\">}<\/span>\r\n\t<span class=\"k\">if<\/span> <span class=\"n\">obj<\/span><span class=\"o\">.<\/span><span class=\"n\">ImageGCHighThresholdPercent<\/span> <span class=\"o\">==<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\r\n\t\t<span class=\"c\">\/\/ default is below docker's default dm.min_free_space of 90%<\/span>\r\n\t\t<span class=\"n\">obj<\/span><span class=\"o\">.<\/span><span class=\"n\">ImageGCHighThresholdPercent<\/span> <span class=\"o\">=<\/span> <span class=\"n\">utilpointer<\/span><span class=\"o\">.<\/span><span class=\"n\">Int32Ptr<\/span><span class=\"p\">(<\/span><span class=\"m\">85<\/span><span class=\"p\">)<\/span>\r\n\t<span class=\"p\">}<\/span>\r\n\t<span class=\"k\">if<\/span> <span class=\"n\">obj<\/span><span class=\"o\">.<\/span><span class=\"n\">ImageGCLowThresholdPercent<\/span> <span class=\"o\">==<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\r\n\t\t<span class=\"n\">obj<\/span><span class=\"o\">.<\/span><span class=\"n\">ImageGCLowThresholdPercent<\/span> <span class=\"o\">=<\/span> <span class=\"n\">utilpointer<\/span><span class=\"o\">.<\/span><span class=\"n\">Int32Ptr<\/span><span class=\"p\">(<\/span><span class=\"m\">80<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<p>\u53c2\u8003\u94fe\u63a5 https:\/\/github.com\/kubernetes\/kubernetes\/blob\/v1.23.9\/pkg\/kubelet\/apis\/config\/v1beta1\/defaults.go#L135-L143<\/p>\n<p>Please note that the provided link is a specific location in the GitHub repository of Kubernetes, and cannot be paraphrased directly.<\/p>\n<p>\u5f53\u4f7f\u7528\u91cf\u9ad8\u4e8eHighThresholdPercent\u65f6\uff0cImage GC \u4f1a\u6309\u7167\u4ece\u65e7\u5230\u65b0\u7684\u987a\u5e8f\uff0c\u5220\u9664\u56fe\u50cf\uff0c\u76f4\u5230\u4f7f\u7528\u91cf\u4f4e\u4e8e\u6216\u7b49\u4e8eLowThresholdPercent\u3002<\/p>\n<p>\u5728\u5f53\u524d\u7684\u9ed8\u8ba4\u8bbe\u7f6e\u4e2d\uff0c\u5f53\u78c1\u76d8\u4f7f\u7528\u7387\u8d85\u8fc785%\u65f6\uff0c\u5c06\u4ece\u65e7\u56fe\u50cf\u4e2d\u5220\u9664\u4ee5\u4f7f\u78c1\u76d8\u4f7f\u7528\u7387\u56de\u523080%\u4ee5\u4e0b\u3002<\/p>\n<p>\u5728Kubernetes\u7684\u60c5\u51b5\u4e0b\uff0c\u6bcf3\u52304\u4e2a\u6708\u4f1a\u53d1\u5e03\u4e00\u4e2a\u6b21\u8981\u7248\u672c\uff0c\u5e76\u4e14\u65e7\u7684\u6b21\u8981\u7248\u672c\u5c06\u88ab\u5f03\u7528\u3002\u4e3a\u4e86\u8ddf\u968f\u8fd9\u4e00\u60c5\u51b5\uff0c\u5efa\u8bae\u5b9a\u671f\u4f7f\u7528\u4e22\u5f03\u8282\u70b9\u7684\u65b9\u5f0f\u8fdb\u884c\u6eda\u52a8\u66f4\u65b0\uff0c\u8fd9\u6837\u6bcf\u4e2a\u8282\u70b9\u7684\u5bff\u547d\u901a\u5e38\u6700\u957f\u4e3a4\u4e2a\u6708\u3002<\/p>\n<p>\u4f7f\u7528Web\u5e94\u7528\u7a0b\u5e8f\u4f5c\u4e3a\u4e3b\u4f53\u65f6\uff0c\u5728\u56db\u4e2a\u6708\u7684\u65f6\u95f4\u5185\uff0c\u5927\u91cf\u62c9\u53d6\u56fe\u50cf\u7684\u60c5\u51b5\u4e0d\u4f1a\u90a3\u4e48\u5e38\u89c1\uff0c\u6240\u4ee5\u5373\u4f7f\u4f7f\u7528\u9ed8\u8ba4\u503c\u4e5f\u4e0d\u4f1a\u51fa\u73b0\u592a\u591a\u95ee\u9898\u3002<\/p>\n<p>\u7136\u800c\uff0c\u6709\u4e9b\u4eba\u66f4\u503e\u5411\u4e8e\u4ee5Job\u4e3a\u4e3b\u4f53\u6765\u4f7f\u7528\uff0c\u800c\u4e0d\u662f\u591a\u6b21\u6267\u884c\u76f8\u540c\u7684\u5bb9\u5668\u955c\u50cf\uff0c\u8fd9\u79cd\u4f7f\u7528\u65b9\u5f0f\u4f1a\u5bfc\u81f4\u5bb9\u5668\u955c\u50cf\u7684\u4f7f\u7528\u91cf\u6025\u5267\u589e\u52a0\u3002<\/p>\n<p>\u5728\u8fd9\u4e2a\u652f\u6301\u6848\u4f8b\u4e2d\uff0c\u8fd9\u4e2a\u56e0\u7d20\u6240\u5360\u6bd4\u4f8b\u5f88\u9ad8\u3002\uff08\u53ea\u662f\u7b80\u5355\u5730\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u5e76\u4e0d\u80fd\u4fdd\u8bc1\u4e00\u5207\u90fd\u4f1a\u597d\u8f6c\u3002\uff09<\/p>\n<p>\u53c2\u8003\uff1aKubernetes \u4e2d\u7684\u5783\u573e\u56de\u6536\u5904\u7406<\/p>\n<h5>\u8003\u8651\u4f7f\u7528emptyDir<\/h5>\n<p>\u5982\u679c\u8981\u4f7f\u7528\u5bb9\u5668\u53ef\u5199\u5c42\uff0c\u8bf7\u8003\u8651\u4f7f\u7528emptyDir\u3002<\/p>\n<p>\u7531\u4e8eemptyDir\u662f\u4ee5Pod\u4e3a\u5355\u4f4d\u8fdb\u884c\u7ba1\u7406\u7684\uff0c\u6240\u4ee5\u5982\u679c\u5bb9\u5668\u5d29\u6e83\uff0c\u5199\u5165\u5bb9\u5668\u53ef\u5199\u5c42\u7684\u6570\u636e\u5c06\u4e0e\u5bb9\u5668\u4e00\u8d77\u6d88\u5931\uff0c\u4f46emptyDir\u5c06\u4f1a\u7ee7\u627fPod\u7ea7\u522b\u7684\u7ba1\u7406\u3002\u6b64\u5916\uff0c\u5982\u679c\u7531\u4e8e\u67d0\u79cd\u539f\u56e0\u800c\u4ecd\u4fdd\u7559\u65e7\u5bb9\u5668\uff0c\u90a3\u4e48\u5199\u5165\u5bb9\u5668\u7684\u53ef\u5199\u5c42\u7684\u6570\u636e\u5c06\u4e0d\u4f1a\u6d88\u5931\uff0c\u800c\u4f1a\u5360\u7528\u78c1\u76d8\u7a7a\u95f4\u3002<\/p>\n<p>\u6211\u8ba4\u4e3a\uff0c\u4f7f\u7528 emptyDir \u6bd4\u4f7f\u7528\u5bb9\u5668\u7684\u53ef\u5199\u5c42\u66f4\u7b26\u5408\u8981\u6c42\u7684\u60c5\u51b5\u66f4\u591a\uff0c\u56e0\u4e3a emptyDir \u8fd8\u53ef\u4ee5\u4f7f\u7528 sizeLimit \u7b49\u529f\u80fd\u3002<\/p>\n<h2>\u6700\u540e<\/h2>\n<p>\u7531\u4e8e\u7ecf\u5e38\u542c\u5230\u6709\u4eba\u8bf4\u4ed6\u4eec\u5bf9Kubernetes\u7684\u6545\u969c\u6392\u9664\u4e0d\u592a\u4e86\u89e3\uff0c\u6240\u4ee5\u6211\u51b3\u5b9a\u4e3a\u5916\u90e8\u64b0\u5199\u4e00\u4efd\u603b\u7ed3\u3002<\/p>\n<p>\u8fd9\u6b21\u6211\u5199\u4e86\u4e00\u4e2a\u82b1\u4e86\u4e00\u4e9b\u65f6\u95f4\u7684\u6848\u4f8b\uff0c\u6240\u4ee5\u6587\u7ae0\u4f1a\u6bd4\u8f83\u957f\uff0c\u4f46\u5728\u5347\u7ea7\u8c03\u67e5\u65f6\uff0c\u6211\u8ba4\u4e3a\u8c03\u67e5\u7684\u6d41\u7a0b\u901a\u5e38\u90fd\u662f\u4e00\u6837\u7684\u3002<\/p>\n<p>\u5982\u679c\u9700\u8981\uff0c\u5728Kubernetes\u6545\u969c\u6392\u9664\u65f6\uff0c\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b\u8fd9\u4e2a\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u5728Zettl\u63d0\u4f9bKubernetes\u4f5c\u4e3a\u4e00\u9879\u670d\u52a1\u7ed9Yahoo! JAPAN\u3002 \u5f53\u7528\u6237\u4f7f\u7528Kubernet [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-35741","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884c&quot;kubectl logs&quot;\u65f6\uff0c\u8f93\u51fa&quot;\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7&quot;\u7684\u95ee\u9898 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884ckubectl-logs\u65f6\uff0c\u8f93\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884c&quot;kubectl logs&quot;\u65f6\uff0c\u8f93\u51fa&quot;\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7&quot;\u7684\u95ee\u9898\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u5728Zettl\u63d0\u4f9bKubernetes\u4f5c\u4e3a\u4e00\u9879\u670d\u52a1\u7ed9Yahoo! JAPAN\u3002 \u5f53\u7528\u6237\u4f7f\u7528Kubernet [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884ckubectl-logs\u65f6\uff0c\u8f93\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-22T12:05:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T20:34:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24f537434c4406c30f0d\/2-0.png\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/\",\"name\":\"\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884c\\\"kubectl logs\\\"\u65f6\uff0c\u8f93\u51fa\\\"\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7\\\"\u7684\u95ee\u9898 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-04-22T12:05:24+00:00\",\"dateModified\":\"2024-04-29T20:34:39+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884c&#8221;kubectl logs&#8221;\u65f6\uff0c\u8f93\u51fa&#8221;\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7&#8221;\u7684\u95ee\u9898\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884c\"kubectl logs\"\u65f6\uff0c\u8f93\u51fa\"\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7\"\u7684\u95ee\u9898 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884ckubectl-logs\u65f6\uff0c\u8f93\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884c\"kubectl logs\"\u65f6\uff0c\u8f93\u51fa\"\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7\"\u7684\u95ee\u9898","og_description":"\u9996\u5148 \u5728Zettl\u63d0\u4f9bKubernetes\u4f5c\u4e3a\u4e00\u9879\u670d\u52a1\u7ed9Yahoo! JAPAN\u3002 \u5f53\u7528\u6237\u4f7f\u7528Kubernet [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884ckubectl-logs\u65f6\uff0c\u8f93\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-04-22T12:05:24+00:00","article_modified_time":"2024-04-29T20:34:39+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d24f537434c4406c30f0d\/2-0.png"}],"author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"7 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/","name":"\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884c\"kubectl logs\"\u65f6\uff0c\u8f93\u51fa\"\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7\"\u7684\u95ee\u9898 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-04-22T12:05:24+00:00","dateModified":"2024-04-29T20:34:39+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4ecb\u7ecd\u4e00\u4e2a\u652f\u6301\u6848\u4f8b\uff0c\u8be5\u6848\u4f8b\u6d89\u53ca\u5728\u6267\u884c&#8221;kubectl logs&#8221;\u65f6\uff0c\u8f93\u51fa&#8221;\u65e0\u6cd5\u68c0\u7d22\u5bb9\u5668\u65e5\u5fd7&#8221;\u7684\u95ee\u9898"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bb%8b%e7%bb%8d%e4%b8%80%e4%b8%aa%e6%94%af%e6%8c%81%e6%a1%88%e4%be%8b%ef%bc%8c%e8%af%a5%e6%a1%88%e4%be%8b%e6%b6%89%e5%8f%8a%e5%9c%a8%e6%89%a7%e8%a1%8ckubectl-logs%e6%97%b6%ef%bc%8c%e8%be%93\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35741","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=35741"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35741\/revisions"}],"predecessor-version":[{"id":89709,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35741\/revisions\/89709"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=35741"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=35741"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=35741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}