{"id":8067,"date":"2022-04-24T17:19:00","date_gmt":"2022-04-24T09:19:00","guid":{"rendered":"https:\/\/blog.ywdevops.cn\/?p=8067"},"modified":"2026-05-28T14:53:35","modified_gmt":"2026-05-28T06:53:35","slug":"k8s-7","status":"publish","type":"post","link":"https:\/\/blog.ywdevops.cn\/index.php\/2022\/04\/24\/k8s-7\/","title":{"rendered":"k8s\u5b58\u50a8\u5377pv\u3001pvc\u3001StorageClass"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Kubernetes\u652f\u6301\u7c7b\u4f3c\u7684\u5b58\u50a8\u5377\u529f\u80fd\u4ee5\u5b9e\u73b0\u77ed\u751f\u547d\u5468\u671f\u7684\u5bb9\u5668\u5e94\u7528\u6570\u636e\u7684\u6301\u4e45\u5316\uff0c\u4e0d\u8fc7\uff0c\u5176\u5b58\u50a8\u5377\u7ed1\u5b9a\u4e8ePod\u5bf9\u8c61\u800c\u975e\u5bb9\u5668\u7ea7\u522b\uff0c\u5e76\u53ef\u5171\u4eab\u7ed9\u5185\u90e8\u7684\u6240\u6709\u5bb9\u5668\u4f7f\u7528\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e00\u3001\u5b58\u50a8\u5377\u57fa\u7840\uff1a<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pod\u672c\u8eab\u6709\u751f\u547d\u5468\u671f\uff0c\u5176\u5e94\u7528\u5bb9\u5668\u53ca\u751f\u6210\u7684\u6570\u636e\u81ea\u8eab\u5747\u65e0\u6cd5\u72ec\u7acb\u4e8e\u8be5\u751f\u547d\u5468\u671f\u4e4b\u5916\u6301\u4e45\u5b58\u5728\uff0c\u5e76\u4e14\u540c\u4e00Pod\u4e2d\u7684\u5bb9\u5668\u53ef\u5171\u4eabPID\u3001Network\u3001IPC\u548cUTS\u540d\u79f0\u7a7a\u95f4\uff0c\u4f46Mount\u548cUSER\u540d\u79f0\u7a7a\u95f4\u5374\u5404\u81ea\u72ec\u7acb\uff0c\u56e0\u800c\u8de8\u5bb9\u5668\u7684\u8fdb\u7a0b\u5f7c\u6b64\u95f4\u9ed8\u8ba4\u65e0\u6cd5\u57fa\u4e8e\u5171\u4eab\u7684\u5b58\u50a8\u7a7a\u95f4\u4ea4\u6362\u6587\u4ef6\u6216\u6570\u636e\u3002\u56e0\u800c\uff0c\u501f\u52a9\u7279\u5b9a\u7684\u5b58\u50a8\u673a\u5236\u751a\u81f3\u662f\u72ec\u7acb\u4e8ePod\u751f\u547d\u5468\u671f\u7684\u5b58\u50a8\u8bbe\u5907\u5b8c\u6210\u6570\u636e\u6301\u4e45\u5316<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1\u3001\u5b58\u50a8\u5377\u6982\u8ff0\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b80\u5355\u6765\u8bf4\uff0c\u5b58\u50a8\u5377\u662f\u5b9a\u4e49\u5728Pod\u8d44\u6e90\u4e4b\u4e0a\u53ef\u88ab\u5176\u5185\u90e8\u7684\u6240\u6709\u5bb9\u5668\u6302\u8f7d\u7684\u5171\u4eab\u76ee\u5f55\uff0c\u8be5\u76ee\u5f55\u5173\u8054\u81f3\u5bbf\u4e3b\u673a\u6216\u67d0\u5916\u90e8\u7684\u5b58\u50a8\u8bbe\u5907\u4e4b\u4e0a\u7684\u5b58\u50a8\u7a7a\u95f4\uff0c\u53ef\u7531Pod\u5185\u7684\u591a\u4e2a\u5bb9\u5668\u540c\u65f6\u6302\u8f7d\u4f7f\u7528\u3002Pod\u5b58\u50a8\u5377\u72ec\u7acb\u4e8e\u5bb9\u5668\u81ea\u8eab\u7684\u6587\u4ef6\u7cfb\u7edf\uff0c\u56e0\u800c\u4e5f\u72ec\u7acb\u4e8e\u5bb9\u5668\u7684\u751f\u547d\u5468\u671f\uff0c\u5b83\u5b58\u50a8\u7684\u6570\u636e\u53ef\u4e8e\u5bb9\u5668\u91cd\u542f\u6216\u91cd\u5efa\u540e\u7ee7\u7eed\u4f7f\u7528\uff0c\u4e0b\u56fe\u8868\u793apod\u5bb9\u5668\u4e0e\u5b58\u50a8\u5377\u4e4b\u95f4\u5173\u7cfb\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"705\" height=\"351\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/7-2.png\" alt=\"\" class=\"wp-image-8070\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/7-2.png 705w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/7-2-300x149.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/7-2-600x299.png 600w\" sizes=\"auto, (max-width: 705px) 100vw, 705px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\u7cfb\u7edf\u5185\u7f6e\u4e86\u591a\u79cd\u7c7b\u578b\u7684\u5b58\u50a8\u5377\u63d2\u4ef6\uff0c\u56e0\u800c\u80fd\u591f\u76f4\u63a5\u652f\u6301\u591a\u79cd\u7c7b\u578b\u5b58\u50a8\u7cfb\u7edf\uff08\u5373\u5b58\u50a8\u670d\u52a1\u65b9\uff09\uff0c\u4f8b\u5982CephFS\u3001NFS\u3001RBD\u3001iscsi\u548cvSphereVolume\u7b49\u3002\u5b9a\u4e49Pod\u8d44\u6e90\u65f6\uff0c\u7528\u6237\u53ef\u5728\u5176spec.volumes\u5b57\u6bb5\u4e2d\u5d4c\u5957\u914d\u7f6e\u9009\u5b9a\u7684\u5b58\u50a8\u5377\u63d2\u4ef6\uff0c\u5e76\u7ed3\u5408\u76f8\u5e94\u7684\u5b58\u50a8\u670d\u52a1\u6765\u4f7f\u7528\u7279\u5b9a\u7c7b\u578b\u7684\u5b58\u50a8\u5377\uff0c\u751a\u81f3\u4f7f\u7528CS\u6216flexVolume\u5b58\u50a8\u5377\u63d2\u4ef6\u6765\u6269\u5c55\u652f\u6301\u66f4\u591a\u7684\u5b58\u50a8\u670d\u52a1\u7cfb\u7edf\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\u652f\u6301\u7684\u5b58\u50a8\u5377\u53ef\u7b80\u5355\u5f52\u4e3a\u4ee5\u4e0b\u7c7b\u522b\uff0c\u5b83\u4eec\u4e5f\u5404\u81ea\u6709\u7740\u4e0d\u5c11\u7684\u5b9e\u73b0\u63d2\u4ef6\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(1)\uff1a\u4e34\u65f6\u5b58\u50a8\u5377\uff1aemptyDir<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(2)\uff1a\u672c\u5730\u5b58\u50a8\u5377\uff1ahostPath\u548clocal<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(3)\uff1a\u7f51\u7edc\u5b58\u50a8\u5377\uff0c\u4e3b\u8981\u5305\u62ec\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4e91\u5b58\u50a8\u2014\u2014awsElasticBlockStore\u3001gcePersistentDisk\u3001azureDisk\u548cazureFile\u3002<\/li>\n\n\n\n<li>\u7f51\u7edc\u6587\u4ef6\u7cfb\u7edf\u2014\u2014NFS\u3001GlusterFS\u3001CephFS\u548cCinder\u3002<\/li>\n\n\n\n<li>\u7f51\u7edc\u5757\u8bbe\u5907\u2014\u2014iscsi\u3001FC\u3001RBD\u548cvSphereVolume<\/li>\n\n\n\n<li>\u7f51\u7edc\u5b58\u50a8\u5e73\u53f0\u2014\u2014Quobyte\u3001PortworxVolume\u3001StorageOS\u548c<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">(4)\uff1a\u7279\u6b8a\u5b58\u50a8\u5377\uff1aSecret\u3001ConfigMap\u3001DownwardAPI\u548cProjected\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(5)\uff1a\u6269\u5c55\u652f\u6301\u7b2c\u4e09\u65b9\u5b58\u50a8\u7684\u5b58\u50a8\u63a5\u53e3\uff08Out-of-Tree\u5377\u63d2\u4ef6\uff09\uff1aCSI\u548cFlexVolume\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2\u3001\u914d\u7f6ePod\u5b58\u50a8\u5377\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728Pod\u4e2d\u5b9a\u4e49\u4f7f\u7528\u5b58\u50a8\u5377\u7684\u914d\u7f6e\u7531\u4e24\u90e8\u5206\u7ec4\u6210\uff1a\u4e00\u90e8\u5206\u901a\u8fc7.spec.volumes\u5b57\u6bb5\u5b9a\u4e49\u5728Pod\u4e4b\u4e0a\u7684\u5b58\u50a8\u5377\u5217\u8868\uff0c\u5b83\u7ecf\u7531\u7279\u5b9a\u7684\u5b58\u50a8\u5377\u63d2\u4ef6\u5e76\u7ed3\u5408\u7279\u5b9a\u7684\u5b58\u50a8\u7cfb\u7edf\u7684\u8bbf\u95ee\u63a5\u53e3\u8fdb\u884c\u5b9a\u4e49\uff1b\u53e6\u4e00\u90e8\u5206\u662f\u5d4c\u5957\u5b9a\u4e49\u5728\u5bb9\u5668\u7684volumeMounts\u5b57\u6bb5\u4e0a\u7684\u5b58\u50a8\u5377\u6302\u8f7d\u5217\u8868\uff0c\u5b83\u53ea\u80fd\u6302\u8f7d\u5f53\u524dPod\u5bf9\u8c61\u4e2d\u5b9a\u4e49\u7684\u5b58\u50a8\u5377\u3002\u4e0d\u8fc7\uff0c\u5b9a\u4e49\u4e86\u5b58\u50a8\u5377\u7684Pod\u5185\u7684\u5bb9\u5668\u4e5f\u53ef\u4ee5\u9009\u62e9\u4e0d\u6302\u8f7d\u4efb\u4f55\u5b58\u50a8\u5377\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u56fe1\u4e2d\u4f8b\u5b50\u8868\u793a\u5c06\u5bbf\u4e3b\u673a\u7684\u8def\u5f84\uff0c\u6302\u8f7d\u5230Pod\u4e2dnginx\u5bb9\u5668\u7684\u65e5\u5fd7\u8def\u5f84\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"503\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/1-2.png\" alt=\"\" class=\"wp-image-8077\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/1-2.png 706w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/1-2-300x214.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/1-2-600x427.png 600w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><figcaption class=\"wp-element-caption\">                                                                                                                              <\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e8c\u3001\u4e34\u65f6\u5b58\u50a8\u5377\uff1a<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\u652f\u6301\u7684\u5b58\u50a8\u5377\u7c7b\u578b\u4e2d\uff0cemptyDir\u5b58\u50a8\u5377\u7684\u751f\u547d\u5468\u671f\u4e0e\u5176\u6240\u5c5e\u7684Pod\u5bf9\u8c61\u76f8\u540c\uff0c\u5b83\u65e0\u6cd5\u8131\u79bbPod\u5bf9\u8c61\u7684\u751f\u547d\u5468\u671f\u63d0\u4f9b\u6570\u636e\u5b58\u50a8\u529f\u80fd\uff0c\u56e0\u6b64\u901a\u5e38\u4ec5\u7528\u4e8e\u6570\u636e\u7f13\u5b58\u6216\u4e34\u65f6\u5b58\u50a8\u3002\u4e0d\u8fc7\uff0c\u57fa\u4e8eemptyDir\u6784\u5efa\u7684gitRepo\u5b58\u50a8\u5377\u53ef\u4ee5\u5728Pod\u5bf9\u8c61\u7684\u751f\u547d\u5468\u671f\u8d77\u59cb\u65f6\uff0c\u4ece\u76f8\u5e94\u7684Git\u4ed3\u5e93\u4e2d\u514b\u9686\u76f8\u5e94\u7684\u6570\u636e\u6587\u4ef6\u5230\u5e95\u5c42\u7684emptyDir\u4e2d\uff0c\u4e5f\u5c31\u4f7f\u5f97\u5b83\u5177\u6709\u4e86\u4e00\u5b9a\u610f\u4e49\u4e0a\u7684\u6301\u4e45\u6027<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1\u3001emptyDir\u5b58\u50a8\u5377\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">emptyDir\u5b58\u50a8\u5377\u53ef\u4ee5\u7406\u89e3\u4e3aPod\u5bf9\u8c61\u4e0a\u7684\u4e00\u4e2a\u4e34\u65f6\u76ee\u5f55\uff0c\u7c7b\u4f3c\u4e8eDocker\u4e0a\u7684\u201cDocker\u6302\u8f7d\u5377\u201d\uff0c\u5728Pod\u5bf9\u8c61\u542f\u52a8\u65f6\u5373\u88ab\u521b\u5efa\uff0c<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">\u800c\u5728Pod\u5bf9\u8c61\u88ab\u79fb\u9664\u65f6\u4e00\u5e76\u88ab\u5220\u9664<\/mark><\/strong>\u3002\u56e0\u6b64\uff0cemptyDir\u5b58\u50a8\u5377\u53ea\u80fd\u7528\u4e8e\u67d0\u4e9b\u7279\u6b8a\u573a\u666f\u4e2d\uff0c\u4f8b\u5982\u540c\u4e00Pod\u5185\u7684\u591a\u4e2a\u5bb9\u5668\u95f4\u7684\u6587\u4ef6\u5171\u4eab\uff0c\u6216\u4f5c\u4e3a\u5bb9\u5668\u6570\u636e\u7684\u4e34\u65f6\u5b58\u50a8\u76ee\u5f55\u7528\u4e8e\u6570\u636e\u7f13\u5b58\u7cfb\u7edf\u7b49\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">emptyDir\u5b58\u50a8\u5377\u53ef\u7528\u5b57\u6bb5\u4e3b\u8981\u6709\u4e24\u4e2a\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>medium\uff1a\u6b64\u76ee\u5f55\u6240\u5728\u7684\u5b58\u50a8\u4ecb\u8d28\u7684\u7c7b\u578b\uff0c\u53ef\u7528\u503c\u4e3adefault\u6216Memory\uff0c\u9ed8\u8ba4\u4e3adefault\uff0c\u8868\u793a\u4f7f\u7528\u8282\u70b9\u7684\u9ed8\u8ba4\u5b58\u50a8\u4ecb\u8d28\uff0c\u4e5f\u5c31\u662f\u78c1\u76d8\u7a7a\u95f4\uff1bMemory\u8868\u793a\u4f7f\u7528\u57fa\u4e8eRAM\u7684\u4e34\u65f6\u6587\u4ef6\u7cfb\u7edftmpfs\uff0c\u603b\u4f53\u53ef\u7528\u7a7a\u95f4\u53d7\u9650\u4e8e\u5185\u5b58\uff0c\u4f46\u6027\u80fd\u975e\u5e38\u597d\uff0c\u901a\u5e38\u7528\u4e8e\u4e3a\u5bb9\u5668\u4e2d\u7684\u5e94\u7528\u63d0\u4f9b\u7f13\u5b58\u5b58\u50a8\u3002<\/li>\n\n\n\n<li>sizeLimit\uff1a\u5f53\u524d\u5b58\u50a8\u5377\u7684\u7a7a\u95f4\u9650\u989d\uff0c\u9ed8\u8ba4\u503c\u4e3anil\uff0c\u8868\u793a\u4e0d\u9650\u5236\uff1b\u4e0d\u8fc7\uff0c\u5728medium\u5b57\u6bb5\u503c\u4e3aMemory\u65f6\uff0c\u5efa\u8bae\u52a1\u5fc5\u5b9a\u4e49\u6b64\u9650\u989d\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u4f8b\u5b50\u8868\u793a\u540c\u4e00pod\u4e2d\u7684busybox\u5bb9\u5668\u5171\u4eabtomcat\u5bb9\u5668\u7684\u65e5\u5fd7\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"573\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/2.png\" alt=\"\" class=\"wp-image-8084\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/2.png 709w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/2-300x242.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/2-600x485.png 600w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0a\u56fe\u4e2d\u4f7f\u7528emptyDir\u5b58\u50a8\u5377\uff0c\u901a\u8fc7\u6b64\u5377\u5b9e\u73b0tomcat\u548cbusybox\u5bb9\u5668\u5171\u4eab\u5b58\u50a8\u5377\uff0cemptyDir\u5377\u7b80\u5355\u6613\u7528\uff0c\u4f46\u4ec5\u80fd\u7528\u4e8e\u4e34\u65f6\u5b58\u50a8\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">emptyDir\u914d\u5408\u5b57\u6bb5\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>emptyDir: {}\n    medium: Memory\n    siteLimit: 64Mi   #\u6b64\u53c2\u6570\u53ef\u5355\u72ec\u4f7f\u7528\uff0c\u4f46\u662f\u5982\u679c\u914d\u7f6e\u4e86Memory\u5efa\u8bae\u4e00\u5b9a\u8981\u914d\u7f6e\u6b64\u53c2\u6570<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e09\u3001hostPath\u5b58\u50a8\u5377\uff1a<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">hostPath\u5b58\u50a8\u5377\u63d2\u4ef6\u662f\u5c06\u5de5\u4f5c\u8282\u70b9\u4e0a\u67d0\u6587\u4ef6\u7cfb\u7edf\u7684\u76ee\u5f55\u6216\u6587\u4ef6\u5173\u8054\u5230Pod\u4e0a\u7684\u4e00\u79cd\u5b58\u50a8\u5377\u7c7b\u578b\uff0c\u5176\u6570\u636e\u5177\u6709\u540c\u5de5\u4f5c\u8282\u70b9\u751f\u547d\u5468\u671f\u4e00\u6837\u7684\u6301\u4e45\u6027\u3002hostPath\u5b58\u50a8\u5377\u4f7f\u7528\u7684\u662f\u5de5\u4f5c\u8282\u70b9\u672c\u5730\u7684\u5b58\u50a8\u7a7a\u95f4\uff0c\u6240\u4ee5\u4ec5\u9002\u7528\u4e8e\u7279\u5b9a\u60c5\u51b5\u4e0b\u7684\u5b58\u50a8\u5377\u4f7f\u7528\u9700\u6c42\uff0c\u4f8b\u5982\u5c06\u5de5\u4f5c\u8282\u70b9\u4e0a\u7684\u6587\u4ef6\u7cfb\u7edf\u5173\u8054\u4e3aPod\u7684\u5b58\u50a8\u5377\uff0c\u4ece\u800c\u8ba9\u5bb9\u5668\u8bbf\u95ee\u8282\u70b9\u6587\u4ef6\u7cfb\u7edf\u4e0a\u7684\u6570\u636e\uff0chostPath\u5b58\u50a8\u5377\u5728\u8fd0\u884c\u6709\u7ba1\u7406\u4efb\u52a1\u7684\u7cfb\u7edf\u7ea7Pod\u8d44\u6e90\uff0c\u4ee5\u53caPod\u8d44\u6e90\u9700\u8981\u8bbf\u95ee\u8282\u70b9\u4e0a\u7684\u6587\u4ef6\u65f6\u5c24\u4e3a\u6709\u7528\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u914d\u7f6ehostPath\u5b58\u50a8\u5377\u7684\u5d4c\u5957\u5b57\u6bb5\u6709\u4e24\u4e2a\uff1a\u4e00\u4e2a\u7528\u4e8e\u6307\u5b9a\u5de5\u4f5c\u8282\u70b9\u4e0a\u7684\u76ee\u5f55\u8def\u5f84\u7684\u5fc5\u9009\u5b57\u6bb5path\uff1b\u53e6\u4e00\u4e2a\u7528\u4e8e\u6307\u5b9a\u8282\u70b9\u4e4b\u4e0a\u5b58\u50a8\u7c7b\u578b\u7684type\u3002hostPath\u652f\u6301\u4f7f\u7528\u7684\u8282\u70b9\u5b58\u50a8\u7c7b\u578b\u6709\u5982\u4e0b\u51e0\u79cd\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DirectoryOrCreate\uff1a\u6307\u5b9a\u7684\u8def\u5f84\u4e0d\u5b58\u5728\u65f6\uff0c\u81ea\u52a8\u5c06\u5176\u521b\u5efa\u4e3a0755\u6743\u9650\u7684\u7a7a\u76ee\u5f55\uff0c\u5c5e\u4e3b\u548c\u5c5e\u7ec4\u5747\u4e3akubelet<\/li>\n\n\n\n<li>Directory\uff1a\u4e8b\u5148\u5fc5\u987b\u5b58\u5728\u7684\u76ee\u5f55\u8def\u5f84<\/li>\n\n\n\n<li>FileOrCreate\uff1a\u6307\u5b9a\u7684\u8def\u5f84\u4e0d\u5b58\u5728\u65f6\uff0c\u81ea\u52a8\u5c06\u5176\u521b\u5efa\u4e3a0644\u6743\u9650\u7684\u7a7a\u6587\u4ef6\uff0c\u5c5e\u4e3b\u548c\u5c5e\u7ec4\u5747\u4e3akubelet<\/li>\n\n\n\n<li>File\uff1a\u6587\u4ef6\uff0c\u5fc5\u987b\u5b58\u5728\u7684\u6587\u4ef6\u8def\u5f84<\/li>\n\n\n\n<li>Socket\uff1a\u4e8b\u5148\u5fc5\u987b\u5b58\u5728\u7684Socket\u6587\u4ef6\u8def\u5f84<\/li>\n\n\n\n<li>CharDevice\uff1a\u4e8b\u5148\u5fc5\u987b\u5b58\u5728\u7684\u5b57\u7b26\u8bbe\u5907\u6587\u4ef6\u8def\u5f84<\/li>\n\n\n\n<li>BlockDevice: \u4e8b\u5148\u5fc5\u987b\u5b58\u5728\u7684\u5757\u8bbe\u5907\u6587\u4ef6\u8def\u5f84<\/li>\n\n\n\n<li>&#8220;&#8221; \uff1a\u7a7a\u5b57\u7b26\u4e32\uff0c\u9ed8\u8ba4\u914d\u7f6e\uff0c\u5728\u5173\u8054hostPath\u5b58\u50a8\u5377\u4e4b\u524d\u4e0d\u8fdb\u884c\u4efb\u4f55\u68c0\u67e5<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u7c7b<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Pod\u5bf9\u8c61\u901a\u5e38\u53d7\u63a7\u4e8eDaemonSet\u7c7b\u578b\u7684Pod\u63a7\u5236\u5668\uff0c\u5b83\u8fd0\u884c\u5728\u96c6\u7fa4\u4e2d\u7684\u6bcf\u4e2a\u5de5\u4f5c\u8282\u70b9\u4e0a\uff0c\u8d1f\u8d23\u6536\u96c6\u5de5\u4f5c\u8282\u70b9\u4e0a\u7cfb\u7edf\u7ea7\u7684\u76f8\u5173\u6570\u636e\uff0c\u56e0\u6b64\u4f7f\u7528hostPath\u5b58\u50a8\u5377\u4e5f\u7406\u6240\u5e94\u5f53<\/mark><\/strong>\u3002\u7136\u800c\uff0c\u57fa\u4e8e\u540c\u4e00\u4e2a\u6a21\u677f\u521b\u5efaPod\u5bf9\u8c61\u4ecd\u53ef\u80fd\u4f1a\u56e0\u8282\u70b9\u4e0a\u6587\u4ef6\u7684\u4e0d\u540c\u800c\u5b58\u5728\u7740\u4e0d\u540c\u7684\u884c\u4e3a\uff0c\u800c\u4e14\u5728\u8282\u70b9\u4e0a\u521b\u5efa\u7684\u6587\u4ef6\u6216\u76ee\u5f55\u9ed8\u8ba4\u4ec5root\u7528\u6237\u53ef\u5199\uff0c\u82e5\u671f\u671b\u5bb9\u5668\u5185\u7684\u8fdb\u7a0b\u62e5\u6709\u5199\u6743\u9650\uff0c\u5219\u9700\u8981\u5c06\u8be5\u5bb9\u5668\u8fd0\u884c\u4e8e\u7279\u6743\u6a21\u5f0f\uff0c\u4e0d\u8fc7\u8fd9\u5b58\u5728\u6f5c\u5728\u7684\u5b89\u5168\u98ce\u9669<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u56db\u3001\u7f51\u7edc\u5b58\u50a8\u5377\uff1a<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\u5185\u7f6e\u4e86\u591a\u79cd\u7c7b\u578b\u7684\u7f51\u7edc\u5b58\u50a8\u5377\u63d2\u4ef6\uff0c\u5b83\u4eec\u652f\u6301\u7684\u5b58\u50a8\u670d\u52a1\u5305\u62ec\u4f20\u7edf\u7684NAS\u6216SAN\u8bbe\u5907(\u4f8b\u5982NFS\u3001iscsi\u548cFC\u7b49)\u3001\u5206\u5e03\u5f0f\u5b58\u50a8(\u4f8b\u5982GlusterFS\u3001CephFS\u548cRBD\u7b49)\u3001\u4e91\u5b58\u50a8(\u4f8b\u5982gcePersistentDisk\u3001azureDisk\u3001Cinder\u548cawsElasticBlockStore\u7b49)\u3001\u4ee5\u53ca\u6784\u5efa\u5728\u5404\u7c7b\u5b58\u50a8\u7cfb\u7edf\u4e4b\u4e0a\u7684\u62bd\u8c61\u7ba1\u7406\u5c42(\u4f8b\u5982flocker\u3001portworxVolume\u548cvSphereVolume\u7b49)\uff0c\u8fd9\u7c7b\u670d\u52a1\u901a\u5e38\u90fd\u662f\u72ec\u7acb\u8fd0\u884c\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u56e0\u76f8\u5e94\u7684\u5b58\u50a8\u5377\u53ef\u4ee5\u652f\u6301\u8d85\u8d8a\u8282\u70b9\u751f\u547d\u5468\u671f\u7684\u6570\u636e\u6301\u4e45\u6027<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1\u3001NFS\u5b58\u50a8\u5377\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NFS\u5373\u7f51\u7edc\u6587\u4ef6\u7cfb\u7edf\uff08Network File System\uff09\uff0c\u5b83\u662f\u4e00\u79cd\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u534f\u8bae\u5176\u529f\u80fd\u65e8\u5728\u5141\u8bb8\u5ba2\u6237\u7aef\u4e3b\u673a\u53ef\u4ee5\u50cf\u8bbf\u95ee\u672c\u5730\u5b58\u50a8\u4e00\u6837\u901a\u8fc7\u7f51\u7edc\u8bbf\u95ee\u670d\u52a1\u5668\u7aef\u6587\u4ef6<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\u7684NFS\u5b58\u50a8\u5377\u7528\u4e8e\u5173\u8054\u67d0\u4e8b\u5148\u5b58\u5728\u7684NFS\u670d\u52a1\u5668\u4e0a\u5bfc\u51fa(\u5171\u4eab)\u7684\u5b58\u50a8\u7a7a\u95f4\u5230Pod\u5bf9\u8c61\u4e2d\u4ee5\u4f9b\u5bb9\u5668\u4f7f\u7528\uff0c\u8be5\u7c7b\u578b\u7684\u5b58\u50a8\u5377\u5728Pod\u5bf9\u8c61\u7ec8\u6b62\u540e\u4ec5\u662f\u88ab\u5378\u8f7d\u800c\u975e\u88ab\u5220\u9664\u3002\u800c\u4e14\uff0cNFS\u662f\u6587\u4ef6\u7cfb\u7edf\u7ea7\u5171\u4eab\u670d\u52a1\uff0c\u5b83\u652f\u6301\u540c\u65f6\u5b58\u5728\u7684\u591a\u8def\u6302\u8f7d\u8bf7\u6c42\uff0c\u53ef\u7531\u591a\u4e2aPod\u5bf9\u8c61\u540c\u65f6\u5173\u8054\u4f7f\u7528\u3002NFS\u5b58\u50a8\u5377\u65f6\u652f\u6301\u5d4c\u5957\u4f7f\u7528\u4ee5\u4e0b\u51e0\u4e2a\u5b57\u6bb5:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>server \uff1aNFS\u670d\u52a1\u5668\u7684IP\u5730\u5740\u6216\u4e3b\u673a\u540d\uff0c\u5fc5\u9009\u5b57\u6bb5<\/li>\n\n\n\n<li>path \uff1aNFS\u670d\u52a1\u5668\u5bfc\u51fa\uff08\u5171\u4eab\uff09\u7684\u6587\u4ef6\u7cfb\u7edf\u8def\u5f84\uff0c\u5fc5\u9009\u5b57\u6bb5<\/li>\n\n\n\n<li>readOnly \uff1a\u662f\u5426\u4ee5\u53ea\u8bfb\u65b9\u5f0f\u6302\u8f7d\uff0c\u9ed8\u8ba4\u4e3afalse<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u4f8b\u5b50\u8868\u793a\u5c06nginx\u7684\u65e5\u5fd7\uff0c\u6302\u8f7d\u5230nfs\u5171\u4eab\u8def\u5f84\/data\/nfs\u4e0b\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"710\" height=\"521\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/4-2.png\" alt=\"\" class=\"wp-image-8101\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/4-2.png 710w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/4-2-300x220.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/4-2-600x440.png 600w\" sizes=\"auto, (max-width: 710px) 100vw, 710px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">pod\u521b\u5efa\u5b8c\u6210\u540e\uff0c\u5728nfs\u670d\u52a1\u5668\u7684\/data\/nfs\u8def\u5f84\u4e0b\u53ef\u4ee5\u770b\u5230\u6302\u8f7d\u7684\u5185\u5bb9\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"140\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/5-2.png\" alt=\"\" class=\"wp-image-8102\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/5-2.png 707w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/5-2-300x59.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/5-2-600x119.png 600w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">nfs\u7684\u5171\u4eab\u914d\u7f6e\u6587\u4ef6\u8868\u660e\u5141\u8bb8pod\u6240\u5728\u7684\u4e3b\u673aIP\u6302\u8f7d\uff0c\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"101\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/6-3.png\" alt=\"\" class=\"wp-image-8104\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/6-3.png 707w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/6-3-300x43.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/6-3-600x86.png 600w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\u610f\u4e0a\u56fe\u4e2d\u7684\u84dd\u8272\u5b57\u4f53\uff0c\u5171\u4eab\u7ed9\u7684IP\u5730\u5740\u4e3apod\u6240\u5728\u7684\u5bbf\u4e3b\u673a\u5730\u5740\uff0c\u4e0d\u662fPod\u5730\u5740\uff0c\u5982\u679c\u5199pod\u5730\u5740\u4e0d\u901a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2\u3001RBD\u5b58\u50a8\u5377<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f85\u642d\u5efa\u73af\u5883\u6d4b\u8bd5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3\u3001CephFS\u5b58\u50a8\u5377<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f85\u642d\u5efa\u73af\u5883\u6d4b\u8bd5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4\u3001GlusterFS\u5b58\u50a8\u5377<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f85\u642d\u5efa\u73af\u5883\u6d4b\u8bd5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e94\u3001\u6301\u4e45\u5b58\u50a8\u5377\uff1a<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PV\uff08PersistentVolume\uff09\u4e0ePVC\uff08PersistentVolumeClaim)\u662f\u5728\u7528\u6237\u4e0e\u5b58\u50a8\u670d\u52a1\u4e4b\u95f4\u6dfb\u52a0\u7684\u4e00\u4e2a\u4e2d\u95f4\u5c42\uff0c\u7ba1\u7406\u5458\u4e8b\u5148\u6839\u636ePV\u652f\u6301\u7684\u5b58\u50a8\u5377\u63d2\u4ef6\u53ca\u9002\u914d\u7684\u5b58\u50a8\u65b9\u6848\uff08\u76ee\u6807\u5b58\u50a8\u7cfb\u7edf\uff09\u7ec6\u8282\u5b9a\u4e49\u597d\u53ef\u4ee5\u652f\u6491\u5b58\u50a8\u5377\u7684\u5e95\u5c42\u5b58\u50a8\u7a7a\u95f4\uff0c\u800c\u540e\u7531\u7528\u6237\u901a\u8fc7PVC\u58f0\u660e\u8981\u4f7f\u7528\u7684\u5b58\u50a8\u7279\u6027\u6765\u7ed1\u5b9a\u7b26\u5408\u6761\u4ef6\u7684\u6700\u4f73PV\u5b9a\u4e49\u5b58\u50a8\u5377\uff0c\u4ece\u800c\u5b9e\u73b0\u5b58\u50a8\u7cfb\u7edf\u7684\u4f7f\u7528\u4e0e\u7ba1\u7406\u804c\u80fd\u7684\u89e3\u8026\uff0c\u5927\u5927\u7b80\u5316\u4e86\u7528\u6237\u4f7f\u7528\u5b58\u50a8\u7684\u65b9\u5f0f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PV\u548cPVC\u7684\u751f\u547d\u5468\u671f\u7531Controller Manager\u4e2d\u4e13\u7528\u7684PV\u63a7\u5236\u5668(PV Controller) \u72ec\u7acb\u7ba1\u7406\uff0c\u8fd9\u79cd\u673a\u5236\u7684\u5b58\u50a8\u5377\u4e0d\u518d\u4f9d\u9644\u5e76\u53d7\u9650\u4e8ePod\u5bf9\u8c61\u7684\u751f\u547d\u5468\u671f\uff0c\u4ece\u800c\u5b9e\u73b0\u4e86\u7528\u6237\u548c\u96c6\u7fa4\u7ba1\u7406\u5458\u7684\u804c\u8d23\u76f8\u5206\u79bb<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1\u3001PV\u4e0ePVC\u57fa\u7840\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PV\u662f\u7531\u96c6\u7fa4\u7ba1\u7406\u5458\u4e8e\u5168\u5c40\u7ea7\u522b\u914d\u7f6e\u7684\u9884\u6302\u8f7d\u5b58\u50a8\u7a7a\u95f4\uff0c\u5b83\u901a\u8fc7\u652f\u6301\u7684\u5b58\u50a8\u5377\u63d2\u4ef6\u53ca\u7ed9\u5b9a\u7684\u914d\u7f6e\u53c2\u6570\u5173\u8054\u81f3\u67d0\u4e2a\u5b58\u50a8\u7cfb\u7edf\u4e0a\u53ef\u7528\u6570\u636e\u5b58\u50a8\u7684\u4e00\u6bb5\u7a7a\u95f4\uff0c\u8fd9\u6bb5\u5b58\u50a8\u7a7a\u95f4\u53ef\u80fd\u662fCeph\u5b58\u50a8\u7cfb\u7edf\u4e0a\u7684\u4e00\u4e2a\u5b58\u50a8\u6620\u50cf\u3001\u4e00\u4e2a\u6587\u4ef6\u7cfb\u7edf\uff08CephFS\uff09\u6216\u5176\u5b50\u76ee\u5f55\uff0c\u4e5f\u53ef\u80fd\u662fNFS\u5b58\u50a8\u7cfb\u7edf\u4e0a\u7684\u4e00\u4e2a\u5171\u4eab\u76ee\u5f55\u7b49\uff0cPV\u5c06\u5b58\u50a8\u7cfb\u7edf\u4e4b\u4e0a\u7684\u5b58\u50a8\u7a7a\u95f4\u62bd\u8c61\u4e3aKubernetes\u7cfb\u7edf\u5168\u5c40\u7ea7\u522b\u7684API\u8d44\u6e90\uff0c\u7531\u96c6\u7fa4\u7ba1\u7406\u5458\u8d1f\u8d23\u7ba1\u7406\u548c\u7ef4\u62a4\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5c06PV\u63d0\u4f9b\u7684\u5b58\u50a8\u7a7a\u95f4\u7528\u4e8ePod\u5bf9\u8c61\u7684\u5b58\u50a8\u5377\u65f6\uff0c\u7528\u6237\u9700\u8981\u4e8b\u5148\u4f7f\u7528PVC\u5728\u540d\u79f0\u7a7a\u95f4\u7ea7\u522b\u58f0\u660e\u6240\u9700\u8981\u7684\u5b58\u50a8\u7a7a\u95f4\u5927\u5c0f\u53ca\u8bbf\u95ee\u6a21\u5f0f\u5e76\u63d0\u4ea4\u7ed9Kubernetes API Server\uff0c\u63a5\u4e0b\u6765\u7531PV\u63a7\u5236\u5668\u8d1f\u8d23\u67e5\u627e\u4e0e\u4e4b\u5339\u914d\u7684PV\u8d44\u6e90\u5e76\u5b8c\u6210\u7ed1\u5b9a\u3002\u968f\u540e\uff0c\u7528\u6237\u5728Pod\u8d44\u6e90\u4e2d\u4f7f\u7528persistentVolumeClaim\u7c7b\u578b\u7684\u5b58\u50a8\u5377\u63d2\u4ef6\u6307\u660e\u8981\u4f7f\u7528\u7684PVC\u5bf9\u8c61\u7684\u540d\u79f0\u5373\u53ef\u4f7f\u7528\u5176\u7ed1\u5b9a\u5230\u7684PV\u6240\u6307\u5411\u7684\u5b58\u50a8\u7a7a\u95f4\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"532\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/7-3.png\" alt=\"\" class=\"wp-image-8109\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/7-3.png 707w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/7-3-300x226.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/7-3-600x451.png 600w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">\u7b80\u5355\u7406\u89e3\u5c31\u662f\uff1a\u5b58\u50a8\u7cfb\u7edf\u901a\u8fc7CSI\u4e0ek8s\u5bf9\u63a5\u540e\uff0c\u7ba1\u7406\u5458\u521b\u5efaPV\uff0c\u5982\u679cpod\u60f3\u4f7f\u7528pv\u7a7a\u95f4\uff0c\u5c31\u8981\u5148\u5b9a\u4e00\u4e2apvc\u6765\u5411pv\u7533\u8bf7\u7a7a\u95f4\uff0c\u7136\u540e\u628apvc\u548cpod\u7ed1\u5b9a\u5373\u53ef<\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">PV\u548cPVC\u662f\u4e00\u5bf9\u4e00\u7684\u5173\u7cfb\uff1a\u4e00\u4e2aPVC\u4ec5\u80fd\u7ed1\u5b9a\u4e00\u4e2aPV\uff0c\u800c\u4e00\u4e2aPV\u5728\u67d0\u4e00\u65f6\u523b\u4e5f\u4ec5\u53ef\u88ab\u4e00\u4e2aPVC\u6240\u7ed1<\/mark>\u5b9a\u3002\u4e3a\u4e86\u80fd\u591f\u8ba9\u7528\u6237\u66f4\u7cbe\u7ec6\u5730\u8868\u8fbe\u5b58\u50a8\u9700\u6c42\uff0cPV\u8d44\u6e90\u5bf9\u8c61\u7684\u5b9a\u4e49\u652f\u6301\u5b58\u50a8\u5bb9\u91cf\u3001\u5b58\u50a8\u7c7b\u3001\u5377\u6a21\u578b\u548c\u8bbf\u95ee\u6a21\u5f0f\u7b49\u5c5e\u6027\u7ef4\u5ea6\u7684\u7ea6\u675f\u3002\u76f8\u5e94\u5730\uff0cPVC\u8d44\u6e90\u80fd\u591f\u4ece\u8bbf\u95ee\u6a21\u5f0f\u3001\u6570\u636e\u6e90\u3001\u5b58\u50a8\u8d44\u6e90\u5bb9\u91cf\u9700\u6c42\u548c\u9650\u5236\u3001\u6807\u7b7e\u9009\u62e9\u5668\u3001\u5b58\u50a8\u7c7b\u540d\u79f0\u3001\u5377\u6a21\u578b\u548c\u5377\u540d\u79f0\u7b49\u591a\u4e2a\u4e0d\u540c\u7684\u7ef4\u5ea6\u5411PV\u8d44\u6e90\u53d1\u8d77\u5339\u914d\u8bf7\u6c42\u5e76\u5b8c\u6210\u7b5b\u9009\u3002<\/p>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\u610f\uff1aPV\u5c5e\u4e8e\u96c6\u7fa4\u7ea7\u522b\uff0cPVC\u5c5e\u4e8e\u547d\u540d\u7a7a\u95f4\u7ea7\u522b\uff0cPV\u76ee\u524d\u6ca1\u6709Namespace\u9694\u79bb\uff0c\u4e0d\u9700\u8981\u6307\u5b9a\u547d\u540d\u7a7a\u95f4\uff0c\u5728\u4efb\u610f\u547d\u540d\u7a7a\u95f4\u4e0b\u521b\u5efa\u7684PV\u5747\u53ef\u4ee5\u5728\u5176\u4ed6Namespace\u4f7f\u7528<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u4f8b\u5b50\u4e2d\uff0c\u4f7f\u7528NFS\u5b58\u50a8\u7cfb\u7edf\u7684PV\u8d44\u6e90\uff0c\u5b83\u5c06\u7a7a\u95f4\u5927\u5c0f\u9650\u5236\u4e3a5GB\uff0c\u5e76\u652f\u6301\u5355\u8def\u8bfb\u5199\u64cd\u4f5c\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"275\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/8-1.png\" alt=\"\" class=\"wp-image-8112\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/8-1.png 706w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/8-1-300x117.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/8-1-600x234.png 600w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: PersistentVolume\nmetadata:\n  name: pv-test\nspec:\n  capacity:                                #\u6307\u5b9apv\u5bb9\u91cf\n    storage: 5Gi\n  volumeMode: Filesystem                   #PV\u7684\u5377\u6a21\u578b\uff0c\u9ed8\u8ba4\u683c\u5f0f\u5316\u4e3a\u6587\u4ef6\u7cfb\u7edf\n  accessModes:                             #\u6307\u5b9aPV\u8bbf\u95ee\u6a21\u5f0f\n    - ReadWriteOnce                        #\u5355\u8def\u8bfb\u5199\n  persistentVolumeReclaimPolicy: Recycle   #PV\u88ab\u91ca\u653e\u65f6\u7684\u5904\u7406\u673a\u5236\uff0c\u53ea\u6709NFS\u652f\u6301Recycle\n  mountOptions:                            #\u6302\u8f7d\u9009\u9879\u7ec4\u6210\u5217\u8868\n    - hard\n    - nfsvers=4.1\n  nfs:\n    path: \/data\/pv\n    server: 192.168.206.137\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6267\u884c\u547d\u4ee4\u521b\u5efaPV\uff0c\u82e5\u80fd\u591f\u6b63\u786e\u5173\u8054\u5230\u6307\u5b9a\u7684\u540e\u7aef\u5b58\u50a8\uff0c\u8be5PV\u5bf9\u8c61\u7684\u72b6\u6001\u5c06\u663e\u793a\u4e3aAvailable\uff0c\u5426\u5219\u5176\u72b6\u6001\u4e3aPending\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"89\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/9-1.png\" alt=\"\" class=\"wp-image-8114\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/9-1.png 706w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/9-1-300x38.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/9-1-600x76.png 600w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u4f8b\u5b50\u4e2d\uff0c\u5b9a\u4e49\u4e86\u4e00\u4e2aPVC\u5411pv\u7533\u8bf7\u8d44\u6e90\uff0c\u5b83\u4ec5\u5b9a\u4e49\u4e86\u671f\u671b\u7684\u5b58\u50a8\u7a7a\u95f4\u8303\u56f4\u3001\u8bbf\u95ee\u6a21\u5f0f\u548c\u5377\u6a21\u5f0f\u4ee5\u7b5b\u9009\u96c6\u7fa4\u4e0a\u7684PV\u8d44\u6e90\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"224\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/10-1.png\" alt=\"\" class=\"wp-image-8118\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/10-1.png 706w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/10-1-300x95.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/10-1-600x190.png 600w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u521b\u5efaPVC\u540e\uff0c<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">\u6b64\u65f6\u63a7\u5236\u5e73\u9762\u4f1a\u5728\u96c6\u7fa4\u4e2d\u5bfb\u627e\u4e00\u4e2a\u7b26\u5408\u6761\u4ef6\u7684PV\u6765\u4e0ePVC\u8fdb\u884c\u7ed1\u5b9a<\/mark>\uff0c\u7ed1\u5b9a\u540e\u72b6\u6001\u5c06\u4eceAvailable\u53d8\u6210Bound\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"706\" height=\"162\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/11.png\" alt=\"\" class=\"wp-image-8120\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/11.png 706w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/11-300x69.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/11-600x138.png 600w\" sizes=\"auto, (max-width: 706px) 100vw, 706px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\u610f\uff1aPVC\u548cPV\u8fdb\u884c\u7ed1\u5b9a\u7684\u524d\u63d0\u6761\u4ef6\u662f\u4e00\u4e9b\u53c2\u6570\u5fc5\u987b\u5339\u914d\uff0c\u6bd4\u5982accessModes\u3001storageClassName\u3001volumeMode\u90fd\u9700\u8981\u76f8\u540c\uff0c\u5e76\u4e14PVC\u7684storage\u9700\u8981\u5c0f\u4e8e\u7b49\u4e8ePV\u7684storage\u914d\u7f6e\uff0c\u5426\u4fa7\u7ed1\u5b9a\u5931\u8d25<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u4f8b\u5b50\u8868\u793a\u5728pod\u4e2d\u4f7f\u7528pvc\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"472\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/12.png\" alt=\"\" class=\"wp-image-8124\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/12.png 707w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/12-300x200.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/12-600x401.png 600w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u521b\u5efa\u5b8cpod\u540e\uff0c\u53ef\u4ee5\u770b\u5230\uff0c\u5df2\u7ecf\u770b\u5230pv\u4e2d\u7684\u6307\u5b9a\u7684\u5b58\u50a8\u8def\u5f84\u5df2\u7ecf\u6302\u8f7d\u51fa\u6765\u5185\u5bb9\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"179\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/13.png\" alt=\"\" class=\"wp-image-8126\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/13.png 707w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/13-300x76.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2022\/04\/13-600x152.png 600w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/figure>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\u610f\uff1apvc\u548cpod\u8981\u5728\u76f8\u540c\u7684\u547d\u540d\u7a7a\u95f4\u4e2d\uff0cPVC\u662f\u9488\u5bf9\u547d\u540d\u7a7a\u95f4\u7ea7\u522b\u7684<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\u5982\u679c\u60f3\u8981PVC\u76f4\u63a5\u7ed1\u5b9a\u5230\u6307\u5b9a\u7684PV\u4e0a<\/mark>\uff0c\u53ef\u901a\u8fc7\u5982\u4e0b\u914d\u7f6e\u5b9e\u73b0\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5728PV\u4e2d\u901a\u8fc7claimRef\u6765\u6307\u5b9aPVC\u7684\u540d\u5b57\u548c\u6240\u5728\u7684namespace<\/li>\n\n\n\n<li>\u5728PVC\u4e2d\u901a\u8fc7volumeName\u6765\u6307\u5b9aPV\u7684\u540d\u5b57<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>#PV\napiVersion: v1\nkind: PersistentVolume\nmetadata:\n  name: foo-pv\nspec:\n  storageClassName: \"\"\n  claimRef:\n    name: foo-pvc    #\u6307\u5b9apvc\u540d\u5b57\n    namespace: foo   #\u6307\u5b9apvc\u6240\u5728namespace\n  .......\n\n\n#PVC\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: foo-pvc      #\u5b9a\u4e49pvc\u540d\n  namespace: foo     #\u5b9a\u4e49pvc\u6240\u5728\u7684namespace\nspec:\n  storageClassName: \"\"\n  volumeName: foo-pv #\u6307\u5b9apv\u540d\u5b57\n  .......\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\u610f\uff1a\u8fd9\u79cd\u6307\u5b9a\u540d\u79f0\u7684\u7ed1\u5b9a\u65b9\u6cd5\u4e0d\u4f1a\u8003\u8651\u67d0\u4e9bvolume\u7684\u7ed1\u5b9a\u6761\u4ef6\u662f\u5426\u5339\u914d\uff0c\u6bd4\u5982\uff1a\u8282\u70b9\u4eb2\u548c\u6027<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">PVC\u4e5f\u53ef\u4ee5\u901a\u8fc7\u6807\u7b7e\u9009\u62e9\u6765\u5339\u914d\u6307\u5b9a\u7684PV<\/mark>\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#PV\napiVersion: v1\nkind: PersistentVolume\nmetadata:\n  name: foo-pv\n  labels:               #\u5b9a\u4e49\u6807\u7b7e\n    app: test-pv\n    environment: production\nspec:\n  storageClassName: \"\"\n  claimRef:\n    name: foo-pvc    #\u6307\u5b9apvc\u540d\u5b57\n    namespace: foo   #\u6307\u5b9apvc\u6240\u5728namespace\n  .......\n\n#PVC\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: foo-pvc      #\u5b9a\u4e49pvc\u540d\n  namespace: foo     #\u5b9a\u4e49pvc\u6240\u5728\u7684namespace\nspec:\n  storageClassName: \"\"\n  volumeName: foo-pv #\u6307\u5b9apv\u540d\u5b57\n  selector:          #\u9009\u62e9\u6807\u7b7e\n    matchLabels:\n      app: test-pv\n      environment: production\n  .......\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\u610f\uff1a\u5982\u679cPVC\u4f7f\u7528\u4e86selector\uff0c\u90a3\u4e48\u65e0\u6cd5\u4f7f\u7528storageClass\u6765\u5206\u914dPV<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\u4e00\u4e2aPVC\u88ab\u591a\u4e2apod\u6216\u8005pod\u4e2d\u591a\u4e2a\u5bb9\u5668\u4f7f\u7528<\/mark>\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u4e00\u4e2aPod\u4e2d\u6709\u4e24\u4e2a\u5bb9\u5668\uff0c\u4e00\u4e2amysql\u5bb9\u5668\uff0c\u4e00\u4e2anginx\u5bb9\u5668\uff0c\u73b0\u5728\u4e24\u4e2a\u5bb9\u5668\u4f7f\u7528\u540c\u4e00\u4e2aPVC\uff0c\u6b64\u65f6\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528\u5b50\u76ee\u5f55\u7684\u5f62\u5f0f\u6765\u9488\u5bf9\u6027\u4f7f\u7528\uff0c\u6bd4\u5982\uff1aPV\u7684\u8def\u5f84\u662f\/data\/volume ,volume\u8def\u5f84\u4e0b\u6709\u4e24\u4e2a\u5b50\u76ee\u5f55mysql \u548c html \u76ee\u5f55\uff0c\u73b0\u5728\u9700\u8981\u5c06mysql\u76ee\u5f55\u6302\u8f7d\u5230mysql\u5bb9\u5668\u7684\/usr\/local\u76ee\u5f55\u4e0b\uff0c\u53e6\u4e00\u4e2ahtml\u76ee\u5f55\u6302\u8f7d\u5230nignx\u5bb9\u5668\u7684\/usr\/share\/nginx\/\u76ee\u5f55\u4e0b, \u5728pod\u4e2d\u4f7f\u7528PVC\u7684\u65f6\u5019\u5c31\u53ef\u4ee5\u901a\u8fc7subPath \u6765\u6302\u8f7d\u5b50\u76ee\u5f55\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"646\" height=\"457\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2025\/12\/16.png\" alt=\"\" class=\"wp-image-19370\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2025\/12\/16.png 646w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2025\/12\/16-300x212.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2025\/12\/16-600x424.png 600w\" sizes=\"auto, (max-width: 646px) 100vw, 646px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\uff1asubPath\u4e2d\u8def\u5f84\u540d\u79f0\u4e0d\u80fd\u4ee5&#8221;\/ &#8221; \u5f00\u5934\uff0c\u8981\u7528\u76f8\u5bf9\u8def\u5f84\u7684\u5f62\u5f0f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2\u3001PV\u56de\u6536\u7b56\u7565<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f53\u7528\u6237\u4f7f\u7528\u5b8c\u5377\u65f6\uff0c\u53ef\u4ee5\u4eceAPI\u4e2d\u5220\u9664PVC\u5bf9\u8c61\uff0c\u4ece\u800c\u5141\u8bb8\u56de\u6536\u8d44\u6e90\u3002\u56de\u6536\u7b56\u7565(persistentVolumeReclaimPolicy)\u4f1a\u544a\u8bc9PV\u5982\u4f55\u5904\u7406\u8be5\u5377\u3002\u76ee\u524d\u56de\u6536\u7b56\u7565\u53ef\u4ee5\u8bbe\u7f6e\u4e3a\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Retain\uff1a\u4fdd\u7559\uff0c\u8be5\u7b56\u7565\u5141\u8bb8\u624b\u52a8\u56de\u6536\u8d44\u6e90\uff0c\u5f53\u5220\u9664PVC\u65f6\uff0cPV\u4ecd\u7136\u5b58\u5728\uff0cPV\u4e2d\u7684\u6570\u636e\u4e5f\u5b58\u5728\uff0cPV\u88ab\u6807\u8bb0\u5df2\u91ca\u653e\uff0c\u5728\u6e05\u7a7a\u6570\u636e\u4e4b\u524d\u4e0d\u80fd\u88ab\u5176\u4ed6PVC\u4f7f\u7528\uff0c\u624b\u52a8\u6e05\u7406\u6570\u636e\u5220\u9664PV\u5e76\u91cd\u65b0\u521b\u5efaPV\u624d\u53ef\u4ee5\u7ee7\u7eed\u4f7f\u7528<\/li>\n\n\n\n<li>Recycle(\u5df2\u6dd8\u6c70)\uff1a\u56de\u6536\uff0c\u5982\u679cVolume\u63d2\u4ef6\u652f\u6301\uff0cRecycle\u7b56\u7565\u4f1a\u5bf9\u5377\u6267\u884crm -rf\u6e05\u7406\u8be5PV\uff0c\u5e76\u4f7f\u5176\u53ef\u7528\u4e8e\u4e0b\u4e00\u4e2a\u65b0\u7684PVC\uff0c\u4f46\u662f\u672c\u7b56\u7565\u5c06\u6765\u4f1a\u88ab\u5f03\u7528\uff0c\u76ee\u524d\u53ea\u6709NFS\u548cHostPath\u652f\u6301\u8be5\u7b56\u7565<\/li>\n\n\n\n<li>Delete\uff1a\u5220\u9664\uff0c\u5982\u679cVolume\u63d2\u4ef6\u652f\u6301\uff0c\u5220\u9664PVC\u65f6\u4f1a\u540c\u65f6\u5220\u9664PV\uff0c\u52a8\u6001\u5377\u9ed8\u8ba4\u4e3aDelete\uff0c\u76ee\u524d\u652f\u6301Delete\u7684\u5b58\u50a8\u540e\u7aef\u5305\u62ecAWS EBS\u3001GCEPD\u3001Azure Disk\u3001OpenStack Cinder\u7b49<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">3\u3001PV\u8bbf\u95ee\u7b56\u7565<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9e\u9645\u4f7f\u7528PV\u65f6\uff0c\u53ef\u80fd\u9488\u5bf9\u4e0d\u540c\u7684\u5e94\u7528\u4f1a\u6709\u4e0d\u540c\u7684\u8bbf\u95ee\u7b56\u7565\uff0c\u6bd4\u5982\u67d0\u7c7bPod\u53ef\u4ee5\u8bfb\u5199\uff0c\u67d0\u7c7bPod\u53ea\u80fd\u8bfb\uff0c\u6216\u8005\u9700\u8981\u914d\u7f6e\u662f\u5426\u53ef\u4ee5\u88ab\u591a\u4e2a\u4e0d\u540c\u7684Pod\u540c\u65f6\u8bfb\u5199\u7b49\uff0c\u6b64\u65f6\u53ef\u4ee5\u4f7f\u7528PV\u7684\u8bbf\u95ee\u7b56\u7565\u8fdb\u884c\u7b80\u5355\u63a7\u5236\uff0c\u76ee\u524d\u652f\u6301\u7684\u8bbf\u95ee\u7b56\u7565\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ReadWriteOnce\uff1a\u53ef\u4ee5\u88ab\u5355\u8282\u70b9\u4ee5\u8bfb\u5199\u6a21\u5f0f\u6302\u8f7d\uff0c\u547d\u4ee4\u884c\u4e2d\u53ef\u4ee5\u88ab\u7f29\u5199\u4e3aRWO<\/li>\n\n\n\n<li>ReadOnlyMany\uff1a\u53ef\u4ee5\u88ab\u591a\u4e2a\u8282\u70b9\u4ee5\u53ea\u8bfb\u6a21\u5f0f\u6302\u8f7d\uff0c\u547d\u4ee4\u884c\u4e2d\u53ef\u4ee5\u88ab\u7f29\u5199\u4e3aROX<\/li>\n\n\n\n<li>ReadWriteMany\uff1a\u53ef\u4ee5\u88ab\u591a\u4e2a\u8282\u70b9\u4ee5\u8bfb\u5199\u6a21\u5f0f\u6302\u8f7d\uff0c\u547d\u4ee4\u884c\u4e2d\u53ef\u4ee5\u88ab\u7f29\u5199\u4e3aRWX<\/li>\n\n\n\n<li>ReadWriteOncePod\uff1a\u53ea\u80fd\u88ab\u4e00\u4e2aPod\u4ee5\u8bfb\u5199\u7684\u6a21\u5f0f\u6302\u8f7d\uff0c\u547d\u4ee4\u4e2d\u53ef\u4ee5\u88ab\u7f29\u5199\u4e3aRWOP(1.22\u7248\u672c\u4ee5\u4e0a)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">PV\u5728\u521b\u5efa\u65f6\u53ef\u4ee5\u6307\u5b9a\u4e0d\u540c\u7684\u8bbf\u95ee\u7b56\u7565\uff0c\u4f46\u662f\u4e5f\u8981\u540e\u7aef\u7684\u5b58\u50a8\u652f\u6301\u624d\u53ef\u4ee5\uff0c\u4e00\u822c\u60c5\u51b5\u4e0b\u5927\u90e8\u5206\u5757\u5b58\u50a8\u662f\u4e0d\u652f\u6301ReadWriteMany\u7684\uff0c\u5177\u4f53\u540e\u7aef\u5b58\u50a8\u652f\u6301\u7684\u8bbf\u95ee\u6a21\u5f0f\u53ef\u4ee5\u53c2\u8003\u5b98\u7f51\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;kubernetes.io\/zh-cn\/docs\/concepts\/storage\/persistent-volumes\/#access-modes<\/code><\/pre>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u6ce8\uff1a\u4e00\u4e2apvc\u53ef\u4ee5\u540c\u65f6\u88ab\u591a\u4e2apod\u6302\u8f7d\u4f7f\u7528\uff0cpvc\u548cpv\u4e3a\u4e00\u5bf9\u4e00<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4\u3001PVC\u6269\u5bb9<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PVC\u6269\u5bb9\u673a\u5236\u57281.24\u7248\u672c\u8fbe\u5230stable\u9636\u6bb5\uff0c\u76ee\u524d\u53ea\u6709CSI\uff08\u5bb9\u5668\u5b58\u50a8\u63a5\u53e3\uff0c\u5bf9\u63a5\u5382\u5546\u5b58\u50a8\u7684\uff09\u548cRBD\uff08\u5757\u8bbe\u5907\u63a5\u53e3\uff09\u652f\u6301PVC\u6269\u5bb9\uff0c\u5982\u9700\u8981\u6269\u5bb9PVC\uff0c\u9700\u8981\u5728StorageClass\u4e2d\u914d\u7f6e\u53c2\u6570allowVolumeExpansion=true<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"649\" height=\"378\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2025\/12\/15.png\" alt=\"\" class=\"wp-image-19361\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2025\/12\/15.png 649w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2025\/12\/15-300x175.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2025\/12\/15-600x349.png 600w\" sizes=\"auto, (max-width: 649px) 100vw, 649px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u4fee\u6539PVC\u7684\u5b9a\u4e49\u6587\u4ef6\u4e2d\u7684\u5b57\u6bb5\uff0cresources.requests.storage\u7684\u503c\u4e3a\u4e00\u4e2a\u66f4\u5927\u7684\u503c\u5373\u53ef<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5\u3001PV\u751f\u547d\u5468\u671f\u7684\u51e0\u4e2a\u9636\u6bb5\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Available\uff1a\u53ef\u7528\u72b6\u6001\uff0c\u8fd8\u672a\u4e0ePVC\u7ed1\u5b9a<\/li>\n\n\n\n<li>Bound\uff1a \u5df2\u4e0ePVC\u7ed1\u5b9a<\/li>\n\n\n\n<li>Released\uff1a\u4e0e\u4e4b\u7ed1\u5b9a\u7684PVC\u5df2\u88ab\u5220\u9664\uff0c\u4f46\u8d44\u6e90\u672a\u56de\u6536\uff0c\u65e0\u6cd5\u88ab\u5176\u4ed6PVC\u4f7f\u7528<\/li>\n\n\n\n<li>Failed\uff1a \u81ea\u52a8\u8d44\u6e90\u56de\u6536\u5931\u8d25<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u516d\u3001\u52a8\u6001\u5b58\u50a8StorageClass<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3a\u4ec0\u4e48\u9700\u8981StorageClass\uff1f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u4e00\u4e2a\u5927\u89c4\u6a21\u7684Kubernetes\u96c6\u7fa4\u91cc,\u53ef\u80fd\u6709\u6210\u5343\u4e0a\u4e07\u4e2aPVC,\u8fd9\u5c31\u610f\u5473\u7740\u8fd0\u7ef4\u4eba\u5458\u5fc5\u987b\u5b9e\u73b0\u521b\u5efa\u51fa\u591a\u4e2aPV,\u6b64\u5916,\u968f\u7740\u9879\u76ee\u7684\u9700\u8981,\u4f1a\u6709\u65b0\u7684PVC\u4e0d\u65ad\u88ab\u63d0\u4ea4,\u90a3\u4e48\u8fd0\u7ef4\u4eba\u5458\u5c31\u9700\u8981\u4e0d\u65ad\u7684\u6dfb\u52a0\u65b0\u7684\u6ee1\u8db3\u8981\u6c42\u7684PV,\u5426\u5219\u65b0\u7684Pod\u5c31\u4f1a\u56e0\u4e3aPVC\u7ed1\u5b9a\u4e0d\u5230PV\u800c\u5bfc\u81f4\u521b\u5efa\u5931\u8d25.\u800c\u4e14\u901a\u8fc7 PVC \u8bf7\u6c42\u5230\u4e00\u5b9a\u7684\u5b58\u50a8\u7a7a\u95f4\u4e5f\u5f88\u6709\u53ef\u80fd\u4e0d\u8db3\u4ee5\u6ee1\u8db3\u5e94\u7528\u5bf9\u4e8e\u5b58\u50a8\u8bbe\u5907\u7684\u5404\u79cd\u9700\u6c42\uff0c\u800c\u4e14\u4e0d\u540c\u7684\u5e94\u7528\u7a0b\u5e8f\u5bf9\u4e8e\u5b58\u50a8\u6027\u80fd\u7684\u8981\u6c42\u53ef\u80fd\u4e5f\u4e0d\u5c3d\u76f8\u540c\uff0c\u6bd4\u5982\u8bfb\u5199\u901f\u5ea6\u3001\u5e76\u53d1\u6027\u80fd\u7b49\uff0c\u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e00\u95ee\u9898\uff0cKubernetes \u53c8\u4e3a\u6211\u4eec\u5f15\u5165\u4e86\u4e00\u4e2a\u65b0\u7684\u8d44\u6e90\u5bf9\u8c61\uff1aStorageClass\uff0c\u901a\u8fc7 StorageClass \u7684\u5b9a\u4e49\uff0c\u7ba1\u7406\u5458\u53ef\u4ee5\u5c06\u5b58\u50a8\u8d44\u6e90\u5b9a\u4e49\u4e3a\u67d0\u79cd\u7c7b\u578b\u7684\u8d44\u6e90\uff0c\u6bd4\u5982\u5feb\u901f\u5b58\u50a8\u3001\u6162\u901f\u5b58\u50a8\u7b49\uff0c\u7528\u6237\u6839\u636e StorageClass \u7684\u63cf\u8ff0\u5c31\u53ef\u4ee5\u975e\u5e38\u76f4\u89c2\u7684\u77e5\u9053\u5404\u79cd\u5b58\u50a8\u8d44\u6e90\u7684\u5177\u4f53\u7279\u6027\u4e86\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u6839\u636e\u5e94\u7528\u7684\u7279\u6027\u53bb\u7533\u8bf7\u5408\u9002\u7684\u5b58\u50a8\u8d44\u6e90\u4e86<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">StorageClass\u81ea\u52a8\u7ba1\u7406PV\u7684\u751f\u547d\u5468\u671f\uff0c\u6bd4\u5982\u521b\u5efa\u3001\u5220\u9664\u3001\u81ea\u52a8\u6269\u5bb9\u7b49\uff0c<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">StorageClass\u6ca1\u6709\u547d\u540d\u7a7a\u95f4\u9694\u79bb\u6027<\/mark><\/strong>\uff0c<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\u5c5e\u4e8e\u96c6\u7fa4\u7ea7\u522b\u7684\u8d44\u6e90<\/mark><\/strong>\uff0c\u901a\u8fc7\u5b83\u53ef\u4ee5\u52a8\u6001\u7ba1\u7406\u96c6\u7fa4\u4e2d\u7684PV\uff0c\u8fd9\u6837Kubernetes\u7ba1\u7406\u5458\u5c31\u65e0\u987b\u6d6a\u8d39\u5927\u91cf\u7684\u65f6\u95f4\u5728PV\u7684\u7ba1\u7406\u4e2d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728Kubernetes\u4e2d\uff0c\u7ba1\u7406\u5458\u53ef\u4ee5\u53ea\u521b\u5efaStorageClass\u201c\u94fe\u63a5\u201d\u5230\u540e\u7aef\u4e0d\u540c\u7684\u5b58\u50a8\uff0c\u6bd4\u5982Ceph\u3001GlusterFS\u3001OpenStack\u7684Cinder\u3001\u5176\u4ed6\u516c\u6709\u4e91\u63d0\u4f9b\u7684\u5b58\u50a8\u7b49\uff0c\u4e4b\u540e\u6709\u5b58\u50a8\u9700\u6c42\u7684\u6280\u672f\u4eba\u5458\uff0c\u521b\u5efa\u4e00\u4e2aPVC\u6307\u5411\u5bf9\u5e94\u7684StorageClass\u5373\u53ef\uff0cStorageClass\u4f1a\u81ea\u52a8\u521b\u5efaPV\u4f9bPod\u4f7f\u7528\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528StatefulSet\u7684volumeClaimTemplate\u81ea\u52a8\u5206\u522b\u4e3a\u6bcf\u4e2aPod\u7533\u8bf7\u4e00\u4e2aPVC\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b80\u5355\u7406\u89e3\u5c31\u662f\uff1a\u4e0d\u7528\u624b\u52a8\u521b\u5efapv\u4e86\uff0c\u521b\u5efastorageclass\u540e\uff0c\u5728\u9700\u8981\u7533\u8bf7\u7a7a\u95f4\u7684\u65f6\u5019\uff0c\u521b\u5efapvc\uff0cstorageclass\u5185\u90e8\u4f1a\u81ea\u52a8\u521b\u5efa\u548c\u7ba1\u7406pv<\/p>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background wp-block-paragraph\">\u52a8\u6001\u5377\u521b\u5efa\u7684pv\u7684\u56de\u6536\u7b56\u7565\u9ed8\u8ba4\u5c31\u662fdelete\uff0c\u5373\u5220\u9664pvc\u540e\uff0cpv\u4e5f\u4e00\u8d77\u5220\u9664<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">StorageClass\u4e00\u65e6\u521b\u5efa\u4e86\uff0c\u5c31\u4e0d\u80fd\u4fee\u6539\uff0c\u5982\u679c\u8981\u4fee\u6539\uff0c\u9700\u8981\u5220\u9664\u5e76\u65b0\u5efa<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53c2\u6570AllowVolumeExpansion\u53c2\u6570\u5982\u679c\u8bbe\u7f6e\u4e3atrue\uff0c\u8bf4\u660ePV\u652f\u6301\u6269\u5bb9\uff0c \u53ef\u901a\u8fc7\u7f16\u8f91\u589e\u52a0PVC\u7684\u7a7a\u95f4\u5927\u5c0f\u6765\u5b9e\u73b0PV\u7684\u6269\u5bb9\uff0c\u6b64\u53c2\u6570\u53ea\u652f\u6301\u6269\u5bb9\uff0c\u4e0d\u652f\u6301\u7f29\u5bb9<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">\u4f7f\u7528longhorn\u4f5c\u4e3a\u5b58\u50a8(\u751f\u4ea7\u73af\u5883\u53ef\u7528)<\/mark><\/strong>\uff0c\u53c2\u8003\u94fe\u63a5\uff1a<a href=\"https:\/\/blog.ywdevops.cn\/index.php\/2026\/04\/23\/longhorn\/\" target=\"_blank\" rel=\"noreferrer noopener\">Longhorn\u5b58\u50a8<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">\u4f7f\u7528NFS\u4f5c\u4e3a\u540e\u7aef\u5b58\u50a8(\u975e\u9ad8\u53ef\u7528\uff0c\u53ef\u7528\u4e8e\u6d4b\u8bd5)\uff1a<\/mark><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u9762\u4f8b\u5b50\u6f14\u793a\u4f7f\u7528NFS\u4f5c\u4e3a\u540e\u7aef\u5b58\u50a8\uff0c\u6765\u521b\u5efastorageclass\uff0c\u5982\u679c\u8981\u4f7f\u7528NFS\uff0c\u9700\u8981\u5148\u5b89\u88c5nfs-subdir-external-provisioner\u63d2\u4ef6\uff0c\u901a\u8fc7<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Helm Chart\u79bb\u7ebf\u5b89\u88c5<\/mark><\/strong>\u6b65\u9aa4\u5982\u4e0b\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1\u3001\u4e0b\u8f7dHelm Chart\u5305\uff0c\u9700\u8981\u5728\u6709\u7f51\u7edc\u7684\u673a\u5668\u4e0a\u6267\u884c\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/github.com\/kubernetes-sigs\/nfs-subdir-external-provisioner\/releases\/download\/nfs-subdir-external-provisioner-4.0.18\/nfs-subdir-external-provisioner-4.0.18.tgz<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">2\u3001\u4e0b\u8f7d\u955c\u50cf\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker pull registry.cn-beijing.aliyuncs.com\/pylixm\/nfs-subdir-external-provisioner:v4.0.0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">3\u3001\u4fee\u6539chart\u4e2d\u7684\u914d\u7f6e\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u89e3\u538bChart\ntar -xzf nfs-subdir-external-provisioner-4.0.18.tgz\n\n# \u4fee\u6539values.yaml\ncd nfs-subdir-external-provisioner\nvim values.yaml\n\n# \u4fee\u6539\u4ee5\u4e0b\u914d\u7f6e\uff1a\nnfs:\n  server: 192.168.1.100  # NFS\u670d\u52a1\u5668IP\n  path: \/data\/nfs        # NFS\u5171\u4eab\u8def\u5f84\nimage:\n  repository: your-registry.com\/nfs-subdir-external-provisioner\n  tag: v4.0.0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">4\u3001\u6700\u540e\u5b89\u88c5\u8fdb\u53bb\u96c6\u7fa4\u4e2d\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>helm install nfs-provisioner . \\\n  --namespace nfs-system \\\n  --create-namespace \\\n  -f values.yaml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b89\u88c5\u5b8c\u6210\u540e\u4f1a\u751f\u6210\u4e00\u4e2a\u9ed8\u8ba4\u7684storageclass\uff0c\u8fd9\u4e2a\u4e5f\u53ef\u4ee5\u4f7f\u7528\uff0c\u5982\u679c\u4e0d\u7528\u4e5f\u53ef\u4ee5\u81ea\u5df1\u521b\u5efa\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"649\" height=\"145\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/17.png\" alt=\"\" class=\"wp-image-19383\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/17.png 649w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/17-300x67.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/17-600x134.png 600w\" sizes=\"auto, (max-width: 649px) 100vw, 649px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7helm list -n nfs-system\u4e5f\u53ef\u4ee5\u770b\u5230\u5df2\u7ecf\u5b89\u88c5\u7684\u5305\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"645\" height=\"104\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/18.png\" alt=\"\" class=\"wp-image-19386\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/18.png 645w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/18-300x48.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/18-600x97.png 600w\" sizes=\"auto, (max-width: 645px) 100vw, 645px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\uff1a\u5982\u679c\u8981\u5378\u8f7d\u53ef\u4ee5\u901a\u8fc7helm uninstall nfs-provisioner\u6765\u5b8c\u6210<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5\u3001\u521b\u5efa\u4e00\u4e2a\u81ea\u5b9a\u4e49\u7684storageClass\uff0cyaml\u6587\u4ef6\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: storage.k8s.io\/v1\nkind: StorageClass\nmetadata:\n  name: nfs-storage\n  # \u8bbe\u7f6e\u4e3a\u9ed8\u8ba4\u5b58\u50a8\u7c7b\uff08\u53ef\u9009\uff09\n  annotations:\n    storageclass.kubernetes.io\/is-default-class: \"true\"\nprovisioner: cluster.local\/nfs-provisioner-nfs-subdir-external-provisioner \nparameters:\n  # \u8def\u5f84\u6a21\u5f0f\uff1a\u6309\u547d\u540d\u7a7a\u95f4\u548cPVC\u540d\u79f0\u521b\u5efa\u5b50\u76ee\u5f55\n  pathPattern: \"${.PVC.namespace}\/${.PVC.name}\"\n  # \u5220\u9664PVC\u65f6\u7684\u884c\u4e3a\uff1adelete-\u5220\u9664\uff0cretain-\u4fdd\u7559\uff0carchive-\u5f52\u6863\n  onDelete: \"delete\"\n  # \u53ef\u9009\uff1a\u5f52\u6863\u8def\u5f84\n  archiveOnDelete: \"false\"\n  # \u53ef\u9009\uff1a\u6307\u5b9anfs\u670d\u52a1\u5668\u548c\u8def\u5f84\uff08\u5982\u679cProvisioner\u5df2\u914d\u7f6e\u5219\u53ef\u7701\u7565\uff09\n  # server: 192.168.1.100\n  # path: \/data\/nfs\n# \u5377\u7ed1\u5b9a\u6a21\u5f0f\nvolumeBindingMode: Immediate\n# \u56de\u6536\u7b56\u7565\nreclaimPolicy: Delete\n# \u5141\u8bb8\u5377\u6269\u5bb9\nallowVolumeExpansion: true<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>volumeBindingMode\uff1a\u7ed1\u5b9a\u6a21\u5f0f\uff0c\u9ed8\u8ba4\u503c\u4e3aImmediate\uff0c\u8868\u793a\u5f53pvc\u521b\u5efa\u540e\uff0c\u5c31\u52a8\u6001\u521b\u5efapv\u4e0e\u4e4b\u7ed1\u5b9a\uff0c\u5982\u679c\u6709\u90e8\u5206node\u8282\u70b9\u65e0\u6cd5\u8bbf\u95ee\u5b58\u50a8\uff0c\u800c\u521b\u5efa\u7684pod\u53c8\u8c03\u5ea6\u5230\u6b64\u8282\u70b9\u4e0a\uff0c\u53ef\u4ee5\u5bfc\u81f4\u8c03\u5ea6\u5931\u8d25\uff0c\u8fd8\u6709\u4e00\u4e2a\u53c2\u6570WaitForFirstConsumer\uff0c\u8868\u793apvc\u548cpv\u7684\u7ed1\u5b9a\u64cd\u4f5c\u5c06\u7b49\u5f85\u7b2c\u4e00\u4e2a\u4f7f\u7528pvc\u7684pod\u521b\u5efa\u51fa\u6765\u540e\u8fdb\u884c\uff0c\u5728pod\u6240\u5728\u7684node\u4e0a\u521b\u5efapv<\/li>\n\n\n\n<li>annotations\uff1a\u6307\u5b9a\u9ed8\u8ba4\u7684StorageClass\uff0c\u4f9b\u90a3\u4e9b\u6ca1\u6709\u6307\u5b9aStorageClass\u7684PVC\u4f7f\u7528\uff0c<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\u5982\u679c\u96c6\u7fa4\u4e2d\u591a\u4e2astorageclass\u90fd\u914d\u7f6e\u4e3a\u9ed8\u8ba4StorageClass\uff0c\u90a3\u4e48\u7b49\u4e8e\u6ca1\u6709\u9ed8\u8ba4StorageClass<\/mark><\/li>\n\n\n\n<li>provisioner\uff1a\u6307\u5b9a\u5b58\u50a8\u63d2\u4ef6\uff0c\u8fd9\u4e2a\u503c\u9700\u8981\u901a\u8fc7kubectl describe po podname -n nfs-system |grep &#8220;PROVISIONER_NAME&#8221; \u6765\u67e5\u770b<\/li>\n\n\n\n<li>pathPattern\uff1a\u4f1a\u5728\u5b58\u50a8\u4e2d\u521b\u5efanamespace\/pvcname\u540d\u5b57\u7684\u5b50\u76ee\u5f55<\/li>\n\n\n\n<li>archiveOnDelete\uff1a\u662f\u5426\u5f52\u6863\uff0c\u5f53\u8bbe\u7f6e\u4e3afalse\u65f6\uff0c\u5220\u9664 PVC \u65f6\u76f4\u63a5\u5220\u9664 NFS \u670d\u52a1\u5668\u4e0a\u7684\u6570\u636e\u76ee\u5f55\uff0c\u5982\u679c\u4e3atrue\uff0c\u5220\u9664 PVC \u65f6\u5c06\u6570\u636e\u76ee\u5f55\u91cd\u547d\u540d\u4e3a&nbsp;<code>archived-&lt;\u76ee\u5f55\u540d&gt;<\/code>\u8fdb\u884c\u5f52\u6863<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">6\u3001\u521b\u5efaPVC\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: test-pvc\n  namespace: default\nspec:\n  storageClassName: nfs-storage\n  accessModes:\n    - ReadWriteMany\n  resources:\n    requests:\n      storage: 20Gi<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u521b\u5efa\u540e\u5728\u5b58\u50a8\u76ee\u5f55\u91cc\u5c31\u53ef\u4ee5\u770b\u5230\u5df2\u7ecf\u6839\u636enamespace\/pvc-name\u6765\u521b\u5efa\u76ee\u5f55\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"649\" height=\"93\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/1.png\" alt=\"\" class=\"wp-image-19396\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/1.png 649w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/1-300x43.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/1-600x86.png 600w\" sizes=\"auto, (max-width: 649px) 100vw, 649px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">7\u3001\u521b\u5efapod\uff0c\u5e76\u4f7f\u7528PVC\uff0c\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: nginx-test\nspec:\n  selector:\n    matchLabels:\n      app: nginx\n  replicas: 3\n  template:\n    metadata:\n      labels:\n        app: nginx\n    spec:\n      containers:\n      - name: nginx\n        image: nginx:latest\n        imagePullPolicy: IfNotPresent\n        ports:\n        - containerPort: 80\n        volumeMounts:\n        - name: nfs-volume\n          mountPath: \/usr\/share\/nginx\/html\n          subPath: html\n      volumes:\n        - name: nfs-volume\n          persistentVolumeClaim:\n            claimName: test-pvc<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>subPath\uff1a\u5c06pvc\u7684\u5b50\u76ee\u5f55html\u6302\u8f7d\u5230\/usr\/share\/nginx\/html\u4e0b<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u521b\u5efa\u5b8c\u6210\u540e\u5728\u5b58\u50a8\u7684test-pvc\u76ee\u5f55\u4e0b\u4f1a\u81ea\u52a8\u521b\u5efahtml\u76ee\u5f55\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"651\" height=\"164\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/2.png\" alt=\"\" class=\"wp-image-19399\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/2.png 651w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/2-300x76.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/2-600x151.png 600w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728html\u76ee\u5f55\u4e0b\u521b\u5efaindex.html\uff0c\u53bbpod\u7684\u5bb9\u5668\u4e2d\u67e5\u770b\uff0c\u53ef\u4ee5\u770b\u5230\u6587\u4ef6\u548c\u5185\u5bb9\u90fd\u5df2\u5b58\u5728\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"643\" height=\"222\" src=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/3.png\" alt=\"\" class=\"wp-image-19400\" srcset=\"https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/3.png 643w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/3-300x104.png 300w, https:\/\/blog.ywdevops.cn\/wp-content\/uploads\/2026\/01\/3-600x207.png 600w\" sizes=\"auto, (max-width: 643px) 100vw, 643px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\u610f\uff1a\u5728 Kubernetes \u4e2d\uff0c\u6bcf\u4e2a StorageClass \u53ea\u80fd\u5173\u8054\u4e00\u4e2a provisioner\u3002\u5982\u679c\u4f60\u6709\u591a\u4e2a NFS \u670d\u52a1\u5668\uff08\u4e0d\u540c IP\u3001\u4e0d\u540c\u5171\u4eab\u8def\u5f84\u3001\u4e0d\u540c\u914d\u7f6e\uff09\uff0c\u9700\u8981<strong>\u4e3a\u6bcf\u4e2a NFS \u540e\u7aef\u90e8\u7f72\u72ec\u7acb\u7684 nfs-provisioner<\/strong>\uff0c<strong>\u4e3a\u6bcf\u4e2a provisioner \u521b\u5efa\u5bf9\u5e94\u7684 StorageClass<\/strong>\uff0c<strong>\u5728 PVC \u4e2d\u6307\u5b9a\u4e0d\u540c\u7684 storageClassName \u6765\u9009\u62e9\u4e0d\u540c\u7684 NFS \u540e\u7aef<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes\u652f\u6301\u7c7b\u4f3c\u7684\u5b58\u50a8\u5377\u529f\u80fd\u4ee5\u5b9e\u73b0\u77ed\u751f\u547d\u5468\u671f\u7684\u5bb9\u5668\u5e94\u7528\u6570\u636e\u7684\u6301\u4e45\u5316\uff0c\u4e0d\u8fc7\uff0c\u5176\u5b58\u50a8\u5377\u7ed1\u5b9a\u4e8ePod\u5bf9\u8c61 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":8087,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[93,23],"tags":[],"class_list":["post-8067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernetes","category-rong"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"_links":{"self":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/8067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/comments?post=8067"}],"version-history":[{"count":120,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/8067\/revisions"}],"predecessor-version":[{"id":20440,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/posts\/8067\/revisions\/20440"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/media\/8087"}],"wp:attachment":[{"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/media?parent=8067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/categories?post=8067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ywdevops.cn\/index.php\/wp-json\/wp\/v2\/tags?post=8067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}