{"id":1916,"date":"2026-04-02T23:22:18","date_gmt":"2026-04-02T15:22:18","guid":{"rendered":"https:\/\/www.dataz8.com\/?p=1916"},"modified":"2026-04-02T23:22:22","modified_gmt":"2026-04-02T15:22:22","slug":"kubernetes-nfs-%e5%8a%a8%e6%80%81%e5%ad%98%e5%82%a8%e5%ae%8c%e6%95%b4%e8%b8%a9%e5%9d%91%e6%8c%87%e5%8d%97%ef%bc%88%e5%ae%9e%e6%88%98%ef%bc%89","status":"publish","type":"post","link":"https:\/\/www.dataz8.com\/?p=1916","title":{"rendered":"Kubernetes + NFS \u52a8\u6001\u5b58\u50a8\u5b8c\u6574\u8e29\u5751\u6307\u5357\uff08\u5b9e\u6218\uff09"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E4%B8%80%E3%80%81%E8%83%8C%E6%99%AF%E4%B8%8E%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF\" >\u4e00\u3001\u80cc\u666f\u4e0e\u9002\u7528\u573a\u666f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E4%BA%8C%E3%80%81%E6%95%B4%E4%BD%93%E6%9E%B6%E6%9E%84\" >\u4e8c\u3001\u6574\u4f53\u67b6\u6784<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E4%B8%89%E3%80%81NFS_%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%83%A8%E7%BD%B2\" >\u4e09\u3001NFS \u670d\u52a1\u7aef\u90e8\u7f72<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#1_%E5%AE%89%E8%A3%85_NFS\" >1. \u5b89\u88c5 NFS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#2_%E5%88%9B%E5%BB%BA%E5%85%B1%E4%BA%AB%E7%9B%AE%E5%BD%95\" >2. \u521b\u5efa\u5171\u4eab\u76ee\u5f55<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#3_%E9%85%8D%E7%BD%AE_exports\" >3. \u914d\u7f6e exports<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#4_%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1\" >4. \u542f\u52a8\u670d\u52a1<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E5%9B%9B%E3%80%81Kubernetes_%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%87%86%E5%A4%87\" >\u56db\u3001Kubernetes \u5ba2\u6237\u7aef\u51c6\u5907<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E4%BA%94%E3%80%81%E9%83%A8%E7%BD%B2_NFS_%E5%8A%A8%E6%80%81_Provisioner\" >\u4e94\u3001\u90e8\u7f72 NFS \u52a8\u6001 Provisioner<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#1_%E5%88%9B%E5%BB%BA_RBAC\" >1. \u521b\u5efa RBAC<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#2_%E9%83%A8%E7%BD%B2_Provisioner\" >2. \u90e8\u7f72 Provisioner<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E5%85%AD%E3%80%81%E5%88%9B%E5%BB%BA_StorageClass\" >\u516d\u3001\u521b\u5efa StorageClass<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E4%B8%83%E3%80%81PVC_%E6%B5%8B%E8%AF%95\" >\u4e03\u3001PVC \u6d4b\u8bd5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E5%85%AB%E3%80%81%E5%AE%9E%E6%88%98%E8%B8%A9%E5%9D%91%E6%80%BB%E7%BB%93%EF%BC%88%E9%87%8D%E7%82%B9%EF%BC%89\" >\u516b\u3001\u5b9e\u6218\u8e29\u5751\u603b\u7ed3\uff08\u91cd\u70b9\uff09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#1_%E6%9D%83%E9%99%90%E9%97%AE%E9%A2%98%EF%BC%88%E6%9C%80%E5%B8%B8%E8%A7%81%EF%BC%89\" >1. \u6743\u9650\u95ee\u9898\uff08\u6700\u5e38\u89c1\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#2_Pod_%E4%B8%80%E7%9B%B4_Pending\" >2. Pod \u4e00\u76f4 Pending<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#3_mount_%E5%A4%B1%E8%B4%A5\" >3. mount \u5931\u8d25<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#4_%E6%80%A7%E8%83%BD%E9%97%AE%E9%A2%98%EF%BC%88%E6%A0%B8%E5%BF%83%E5%9D%91%EF%BC%89\" >4. \u6027\u80fd\u95ee\u9898\uff08\u6838\u5fc3\u5751\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#5_PostgreSQL_%E5%9C%BA%E6%99%AF%E8%B8%A9%E5%9D%91%EF%BC%88%E9%87%8D%E7%82%B9%EF%BC%89\" >5. PostgreSQL \u573a\u666f\u8e29\u5751\uff08\u91cd\u70b9\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#6_reclaimPolicy_%E5%9D%91\" >6. reclaimPolicy \u5751<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#7_%E5%AD%90%E7%9B%AE%E5%BD%95%E7%88%86%E7%82%B8%E9%97%AE%E9%A2%98\" >7. \u5b50\u76ee\u5f55\u7206\u70b8\u95ee\u9898<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E4%B9%9D%E3%80%81%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%EF%BC%88%E5%BC%BA%E7%83%88%E5%BB%BA%E8%AE%AE%EF%BC%89\" >\u4e5d\u3001\u6700\u4f73\u5b9e\u8df5\uff08\u5f3a\u70c8\u5efa\u8bae\uff09<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#1_%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E5%BB%BA%E8%AE%AE\" >1. \u751f\u4ea7\u73af\u5883\u5efa\u8bae<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#2_%E9%AB%98%E5%8F%AF%E7%94%A8%E6%96%B9%E6%A1%88\" >2. \u9ad8\u53ef\u7528\u65b9\u6848<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#3_%E5%AE%89%E5%85%A8%E5%BB%BA%E8%AE%AE\" >3. \u5b89\u5168\u5efa\u8bae<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E5%8D%81%E3%80%81%E6%80%BB%E7%BB%93\" >\u5341\u3001\u603b\u7ed3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%E5%8D%81%E4%B8%80%E3%80%81%E8%BF%9B%E9%98%B6%E5%BB%BA%E8%AE%AE\" >\u5341\u4e00\u3001\u8fdb\u9636\u5efa\u8bae<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/www.dataz8.com\/?p=1916\/#%EF%BC%88%E9%99%84%EF%BC%89%E6%8E%92%E9%9A%9C%E9%80%9F%E6%9F%A5%E8%A1%A8\" >\uff08\u9644\uff09\u6392\u969c\u901f\u67e5\u8868<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%B8%80%E3%80%81%E8%83%8C%E6%99%AF%E4%B8%8E%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF\"><\/span>\u4e00\u3001\u80cc\u666f\u4e0e\u9002\u7528\u573a\u666f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728 Kubernetes \u96c6\u7fa4\u4e2d\uff0c\u6301\u4e45\u5316\u5b58\u50a8\u662f\u6838\u5fc3\u80fd\u529b\u4e4b\u4e00\u3002\u5bf9\u4e8e\u4e2d\u5c0f\u89c4\u6a21\u96c6\u7fa4\u6216\u79c1\u6709\u5316\u73af\u5883\uff0cNFS\uff08Network File System\uff09\u56e0\u5176\u90e8\u7f72\u7b80\u5355\u3001\u6210\u672c\u4f4e\u3001\u6613\u7ef4\u62a4\uff0c\u6210\u4e3a\u975e\u5e38\u5e38\u89c1\u7684\u5b58\u50a8\u65b9\u6848\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5c24\u5176\u5728\u4ee5\u4e0b\u573a\u666f\u4e2d\u975e\u5e38\u9002\u7528\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6570\u636e\u5e93\uff08PostgreSQL \/ MySQL \/ Redis \u6301\u4e45\u5316\uff09<\/li>\n\n\n\n<li>\u65e5\u5fd7\u5b58\u50a8\uff08ELK \/ Loki\uff09<\/li>\n\n\n\n<li>\u4e2d\u95f4\u4ef6\uff08RabbitMQ \/ Kafka \u90e8\u5206\u573a\u666f\uff09<\/li>\n\n\n\n<li>\u5f00\u53d1\u6d4b\u8bd5\u73af\u5883<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u6587\u57fa\u4e8e\u5b9e\u6218\u7ecf\u9a8c\uff08\u542b PostgreSQL Operator + NFS \u52a8\u6001\u5b58\u50a8\uff09\uff0c\u603b\u7ed3\u5b8c\u6574\u90e8\u7f72\u6d41\u7a0b + \u5e38\u89c1\u8e29\u5751\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%BA%8C%E3%80%81%E6%95%B4%E4%BD%93%E6%9E%B6%E6%9E%84\"><\/span>\u4e8c\u3001\u6574\u4f53\u67b6\u6784<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>Pod \u2192 PVC \u2192 StorageClass \u2192 NFS Provisioner \u2192 NFS Server\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ec4\u4ef6\u8bf4\u660e\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PVC\uff1a\u7528\u6237\u7533\u8bf7\u5b58\u50a8<\/li>\n\n\n\n<li>StorageClass\uff1a\u5b9a\u4e49\u5b58\u50a8\u7b56\u7565<\/li>\n\n\n\n<li>NFS Provisioner\uff1a\u52a8\u6001\u521b\u5efa\u76ee\u5f55<\/li>\n\n\n\n<li>NFS Server\uff1a\u771f\u6b63\u5b58\u50a8\u6570\u636e<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u63a8\u8350\u7ec4\u4ef6\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>nfs-subdir-external-provisioner\uff08\u5b98\u65b9\u7ef4\u62a4\uff09<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%B8%89%E3%80%81NFS_%E6%9C%8D%E5%8A%A1%E7%AB%AF%E9%83%A8%E7%BD%B2\"><\/span>\u4e09\u3001NFS \u670d\u52a1\u7aef\u90e8\u7f72<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_%E5%AE%89%E8%A3%85_NFS\"><\/span>1. \u5b89\u88c5 NFS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>yum install -y nfs-utils   # CentOS\napt install -y nfs-kernel-server  # Ubuntu\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_%E5%88%9B%E5%BB%BA%E5%85%B1%E4%BA%AB%E7%9B%AE%E5%BD%95\"><\/span>2. \u521b\u5efa\u5171\u4eab\u76ee\u5f55<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \/data\/nfs\nchmod -R 777 \/data\/nfs\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_%E9%85%8D%E7%BD%AE_exports\"><\/span>3. \u914d\u7f6e exports<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>vim \/etc\/exports\n\n\/data\/nfs *(rw,sync,no_root_squash,no_subtree_check)\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1\"><\/span>4. \u542f\u52a8\u670d\u52a1<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable nfs-server\nsystemctl start nfs-server\nexportfs -rv\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%9B%9B%E3%80%81Kubernetes_%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%87%86%E5%A4%87\"><\/span>\u56db\u3001Kubernetes \u5ba2\u6237\u7aef\u51c6\u5907<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6240\u6709\u8282\u70b9\u5fc5\u987b\u5b89\u88c5\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yum install -y nfs-utils\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5426\u5219\u4f1a\u51fa\u73b0\u5178\u578b\u62a5\u9519\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mount.nfs: command not found\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%BA%94%E3%80%81%E9%83%A8%E7%BD%B2_NFS_%E5%8A%A8%E6%80%81_Provisioner\"><\/span>\u4e94\u3001\u90e8\u7f72 NFS \u52a8\u6001 Provisioner<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_%E5%88%9B%E5%BB%BA_RBAC\"><\/span>1. \u521b\u5efa RBAC<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: nfs-client-provisioner\n---\napiVersion: rbac.authorization.k8s.io\/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: run-nfs-client-provisioner\nroleRef:\n  kind: ClusterRole\n  name: cluster-admin\n  apiGroup: rbac.authorization.k8s.io\nsubjects:\n- kind: ServiceAccount\n  name: nfs-client-provisioner\n  namespace: default\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_%E9%83%A8%E7%BD%B2_Provisioner\"><\/span>2. \u90e8\u7f72 Provisioner<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: nfs-client-provisioner\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: nfs-client-provisioner\n  template:\n    metadata:\n      labels:\n        app: nfs-client-provisioner\n    spec:\n      serviceAccountName: nfs-client-provisioner\n      containers:\n      - name: nfs-client-provisioner\n        image: registry.k8s.io\/sig-storage\/nfs-subdir-external-provisioner:v4.0.2\n        env:\n        - name: PROVISIONER_NAME\n          value: example.com\/nfs\n        - name: NFS_SERVER\n          value: &lt;NFS_SERVER_IP&gt;\n        - name: NFS_PATH\n          value: \/data\/nfs\n        volumeMounts:\n        - name: nfs-client-root\n          mountPath: \/persistentvolumes\n      volumes:\n      - name: nfs-client-root\n        nfs:\n          server: &lt;NFS_SERVER_IP&gt;\n          path: \/data\/nfs\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%85%AD%E3%80%81%E5%88%9B%E5%BB%BA_StorageClass\"><\/span>\u516d\u3001\u521b\u5efa StorageClass<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: storage.k8s.io\/v1\nkind: StorageClass\nmetadata:\n  name: nfs-storage\nprovisioner: example.com\/nfs\nreclaimPolicy: Retain\nvolumeBindingMode: Immediate\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%B8%83%E3%80%81PVC_%E6%B5%8B%E8%AF%95\"><\/span>\u4e03\u3001PVC \u6d4b\u8bd5<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: test-pvc\nspec:\n  accessModes:\n  - ReadWriteMany\n  resources:\n    requests:\n      storage: 1Gi\n  storageClassName: nfs-storage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u9a8c\u8bc1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get pvc\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%85%AB%E3%80%81%E5%AE%9E%E6%88%98%E8%B8%A9%E5%9D%91%E6%80%BB%E7%BB%93%EF%BC%88%E9%87%8D%E7%82%B9%EF%BC%89\"><\/span>\u516b\u3001\u5b9e\u6218\u8e29\u5751\u603b\u7ed3\uff08\u91cd\u70b9\uff09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_%E6%9D%83%E9%99%90%E9%97%AE%E9%A2%98%EF%BC%88%E6%9C%80%E5%B8%B8%E8%A7%81%EF%BC%89\"><\/span>1. \u6743\u9650\u95ee\u9898\uff08\u6700\u5e38\u89c1\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u73b0\u8c61\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Permission denied\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u56e0\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NFS \u9ed8\u8ba4 root_squash<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u89e3\u51b3\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>no_root_squash\nchmod 777\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Pod_%E4%B8%80%E7%9B%B4_Pending\"><\/span>2. Pod \u4e00\u76f4 Pending<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u56e0\u6392\u67e5\u987a\u5e8f\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1\uff09PVC \u662f\u5426 Bound<br>2\uff09Provisioner \u662f\u5426\u8fd0\u884c<br>3\uff09StorageClass \u662f\u5426\u5339\u914d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5173\u952e\u547d\u4ee4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl describe pvc\nkubectl logs provisioner\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_mount_%E5%A4%B1%E8%B4%A5\"><\/span>3. mount \u5931\u8d25<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u62a5\u9519\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mount.nfs: access denied\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u56e0\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>exports \u672a\u653e\u5f00<\/li>\n\n\n\n<li>\u9632\u706b\u5899\u672a\u5f00<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u89e3\u51b3\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl stop firewalld\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6216\u653e\u884c 2049 \u7aef\u53e3<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_%E6%80%A7%E8%83%BD%E9%97%AE%E9%A2%98%EF%BC%88%E6%A0%B8%E5%BF%83%E5%9D%91%EF%BC%89\"><\/span>4. \u6027\u80fd\u95ee\u9898\uff08\u6838\u5fc3\u5751\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">NFS \u672c\u8d28\u95ee\u9898\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5355\u70b9\u74f6\u9888<\/li>\n\n\n\n<li>\u9ad8 IO \u5ef6\u8fdf<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f18\u5316\u5efa\u8bae\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SSD \u78c1\u76d8<\/li>\n\n\n\n<li>\u72ec\u7acb\u5b58\u50a8\u7f51\u7edc<\/li>\n\n\n\n<li>\u8c03\u6574 mount \u53c2\u6570<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>rsize=1048576,wsize=1048576\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_PostgreSQL_%E5%9C%BA%E6%99%AF%E8%B8%A9%E5%9D%91%EF%BC%88%E9%87%8D%E7%82%B9%EF%BC%89\"><\/span>5. PostgreSQL \u573a\u666f\u8e29\u5751\uff08\u91cd\u70b9\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u95ee\u9898\uff1a\u6570\u636e\u5e93\u6027\u80fd\u5dee \/ \u5361\u987f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u56e0\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>fsync + NFS \u5ef6\u8fdf<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u89e3\u51b3\u5efa\u8bae\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6d4b\u8bd5\u73af\u5883\u53ef\u7528<\/li>\n\n\n\n<li>\u751f\u4ea7\u5efa\u8bae\uff1aCeph \/ \u4e91\u76d8<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"6_reclaimPolicy_%E5%9D%91\"><\/span>6. reclaimPolicy \u5751<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Delete\uff1a\u5220\u9664 PVC \u4f1a\u5220\u6570\u636e<\/li>\n\n\n\n<li>Retain\uff1a\u6570\u636e\u4fdd\u7559\uff08\u63a8\u8350\uff09<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"7_%E5%AD%90%E7%9B%AE%E5%BD%95%E7%88%86%E7%82%B8%E9%97%AE%E9%A2%98\"><\/span>7. \u5b50\u76ee\u5f55\u7206\u70b8\u95ee\u9898<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u73b0\u8c61\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/data\/nfs\/\n  pvc-xxxx\n  pvc-yyyy\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u95ee\u9898\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6587\u4ef6\u6570\u91cf\u8fc7\u591a<\/li>\n\n\n\n<li>inode \u8017\u5c3d<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u5efa\u8bae\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b9a\u671f\u6e05\u7406<\/li>\n\n\n\n<li>\u89c4\u8303\u547d\u540d<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%B9%9D%E3%80%81%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%EF%BC%88%E5%BC%BA%E7%83%88%E5%BB%BA%E8%AE%AE%EF%BC%89\"><\/span>\u4e5d\u3001\u6700\u4f73\u5b9e\u8df5\uff08\u5f3a\u70c8\u5efa\u8bae\uff09<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E5%BB%BA%E8%AE%AE\"><\/span>1. \u751f\u4ea7\u73af\u5883\u5efa\u8bae<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u573a\u666f<\/th><th>\u63a8\u8350\u5b58\u50a8<\/th><\/tr><\/thead><tbody><tr><td>\u6d4b\u8bd5<\/td><td>NFS<\/td><\/tr><tr><td>\u751f\u4ea7\u6570\u636e\u5e93<\/td><td>Ceph \/ \u4e91\u76d8<\/td><\/tr><tr><td>\u65e5\u5fd7<\/td><td>NFS \/ \u5bf9\u8c61\u5b58\u50a8<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_%E9%AB%98%E5%8F%AF%E7%94%A8%E6%96%B9%E6%A1%88\"><\/span>2. \u9ad8\u53ef\u7528\u65b9\u6848<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">NFS \u672c\u8eab\u65e0 HA\uff0c\u5efa\u8bae\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Keepalived + VIP<\/li>\n\n\n\n<li>\u53cc\u673a\u70ed\u5907<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_%E5%AE%89%E5%85%A8%E5%BB%BA%E8%AE%AE\"><\/span>3. \u5b89\u5168\u5efa\u8bae<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9650\u5236 IP \u767d\u540d\u5355<\/li>\n\n\n\n<li>\u4e0d\u8981\u4f7f\u7528 <code>*<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%8D%81%E3%80%81%E6%80%BB%E7%BB%93\"><\/span>\u5341\u3001\u603b\u7ed3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">NFS \u52a8\u6001\u5b58\u50a8\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f18\u70b9\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u90e8\u7f72\u7b80\u5355<\/li>\n\n\n\n<li>\u6210\u672c\u4f4e<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u7f3a\u70b9\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6027\u80fd\u74f6\u9888<\/li>\n\n\n\n<li>\u65e0\u9ad8\u53ef\u7528<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 &#8220;\u80fd\u7528\uff0c\u4f46\u522b\u5728\u6838\u5fc3\u751f\u4ea7\u6570\u636e\u5e93\u4e0a\u7528&#8221;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%8D%81%E4%B8%80%E3%80%81%E8%BF%9B%E9%98%B6%E5%BB%BA%E8%AE%AE\"><\/span>\u5341\u4e00\u3001\u8fdb\u9636\u5efa\u8bae<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u4f60\u5df2\u7ecf\u505a\u5230\u8fd9\u4e00\u6b65\uff0c\u4e0b\u4e00\u6b65\u5efa\u8bae\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5b66\u4e60 Ceph\uff08Rook\uff09<\/li>\n\n\n\n<li>\u4f7f\u7528 CSI \u6807\u51c6\u9a71\u52a8<\/li>\n\n\n\n<li>\u5f15\u5165\u5b58\u50a8\u76d1\u63a7\uff08Prometheus + Grafana\uff09<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EF%BC%88%E9%99%84%EF%BC%89%E6%8E%92%E9%9A%9C%E9%80%9F%E6%9F%A5%E8%A1%A8\"><\/span>\uff08\u9644\uff09\u6392\u969c\u901f\u67e5\u8868<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u95ee\u9898<\/th><th>\u5173\u952e\u547d\u4ee4<\/th><\/tr><\/thead><tbody><tr><td>PVC Pending<\/td><td>kubectl describe pvc<\/td><\/tr><tr><td>\u6302\u8f7d\u5931\u8d25<\/td><td>showmount -e<\/td><\/tr><tr><td>\u6743\u9650\u95ee\u9898<\/td><td>chmod 777<\/td><\/tr><tr><td>Provisioner \u5f02\u5e38<\/td><td>kubectl logs<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u80cc\u666f\u4e0e\u9002\u7528\u573a\u666f \u5728 Kubernetes \u96c6\u7fa4\u4e2d\uff0c\u6301\u4e45\u5316 &#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_zb_attr":"","zolo_post_video_link":"","footnotes":""},"categories":[5],"tags":[],"series":[],"class_list":["post-1916","post","type-post","status-publish","format-standard","hentry","category-kubernetes"],"_links":{"self":[{"href":"https:\/\/www.dataz8.com\/index.php?rest_route=\/wp\/v2\/posts\/1916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dataz8.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dataz8.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dataz8.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dataz8.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1916"}],"version-history":[{"count":1,"href":"https:\/\/www.dataz8.com\/index.php?rest_route=\/wp\/v2\/posts\/1916\/revisions"}],"predecessor-version":[{"id":1917,"href":"https:\/\/www.dataz8.com\/index.php?rest_route=\/wp\/v2\/posts\/1916\/revisions\/1917"}],"wp:attachment":[{"href":"https:\/\/www.dataz8.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dataz8.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dataz8.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1916"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/www.dataz8.com\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=1916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}