{"id":26898,"date":"2022-11-12T07:25:50","date_gmt":"2023-03-18T21:18:20","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/"},"modified":"2025-08-11T23:40:56","modified_gmt":"2025-08-11T15:40:56","slug":"juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/","title":{"rendered":"Juju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress"},"content":{"rendered":"<h1>\u52a8\u673a\u6700\u8fd1\u5f00\u59cb\u517b\u4ed3\u9f20\uff0c\u60f3\u8981\u8bb0\u5f55\u5b83\u7684\u65e5\u8bb0\uff0c\u4e8e\u662f\u7528helm\u5efa\u7acb\u4e86WordPress\u7f51\u7ad9\u3002\u610f\u5916\u5730\uff0c\u6211\u5728\u8fd9\u65b9\u9762\u9047\u5230\u4e86\u4e00\u4e9b\u56f0\u96be\uff0c\u6240\u4ee5\u6211\u51b3\u5b9a\u628a\u8fd9\u4e9b\u95ee\u9898\u8bb0\u5f55\u4e0b\u6765\u3002<\/p>\n<h1>\u524d\u63d0\u6761\u4ef6<\/p>\n<ul class=\"post-ul\">kubernetes\u3068helm\u304c\u5229\u7528\u3067\u304d\u308b\u74b0\u5883<\/ul>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> kubectl version\r\n<span class=\"go\">Client Version: version.Info{Major:\"1\", Minor:\"11\", GitVersion:\"v1.11.1\", GitCommit:\"b1b29978270dc22fecc592ac55d903350454310a\", GitTreeState:\"clean\", BuildDate:\"2018-07-17T18:53:20Z\", GoVersion:\"go1.10.3\", Compiler:\"gc\", Platform:\"linux\/amd64\"}\r\nServer Version: version.Info{Major:\"1\", Minor:\"10\", GitVersion:\"v1.10.5\", GitCommit:\"32ac1c9073b132b8ba18aa830f46b77dcceb0723\", GitTreeState:\"clean\", BuildDate:\"2018-06-21T11:34:22Z\", GoVersion:\"go1.9.3\", Compiler:\"gc\", Platform:\"linux\/amd64\"}\r\n<\/span><\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> helm version\r\n<span class=\"go\">Client: &amp;version.Version{SemVer:\"v2.9.1\", GitCommit:\"20adb27c7c5868466912eebdf6664e7390ebe710\", GitTreeState:\"clean\"}\r\nServer: &amp;version.Version{SemVer:\"v2.9.1\", GitCommit:\"20adb27c7c5868466912eebdf6664e7390ebe710\", GitTreeState:\"clean\"}\r\n<\/span><\/code><\/pre>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">helm\u306eChart\u306fstable\/wordpress\u3067appVersion: 4.9.7<\/ul>\n<\/li>\n<\/ul>\n<p>\u7b46\u8005\u306e\u74b0\u5883\u306fconjure-up =&gt; Juju:lxc\u3067\u69cb\u7bc9\u3057\u305fkubernetes(1node)<\/p>\n<h1>\u521b\u5efa\u6301\u4e45\u5377\u3002\u7531\u4e8e\u8981\u5b89\u88c5WordPress\u7684Helm Chart\uff0c\u6240\u4ee5\u9700\u8981\u521b\u5efa\u4e24\u4e2a\u5fc5\u8981\u7684PersistentVolume\uff08PV\uff09\u3002<\/p>\n<p>\u6211\u662f\u6839\u636e\u8fd9\u91cc\u63d0\u4f9b\u7684\u65b9\u6cd5\u6765\u521b\u5efaNFS\u4e0a\u7684PV\u7684\u3002<br \/>\n\u5173\u4e8eKubernetes\uff1aPersistentVolume\u6982\u8ff0\u548c\u5728minikube\u4e0a\u8fdb\u884c\u9a8c\u8bc1\u3002<\/p>\n<p>\u9996\u5148\uff0c\u521b\u5efa\u5404\u4e2a PV \u7684\u76ee\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">install<\/span> <span class=\"nt\">--directory<\/span> <span class=\"nt\">--mode<\/span><span class=\"o\">=<\/span>777 \/mnt\/datahdd01\/kube\/rwo20g-wordpress01-wordpress\r\n<span class=\"nb\">install<\/span> <span class=\"nt\">--directory<\/span> <span class=\"nt\">--mode<\/span><span class=\"o\">=<\/span>777 \/mnt\/datahdd01\/kube\/rwo8g-wordpress01-mariadb\r\n<\/code><\/pre>\n<p>\u7136\u540e\uff0c\u521b\u5efa\u7528\u4e8e\u6307\u5411\u4e0a\u8ff0\u76ee\u5f55\u7684PV yaml\u6587\u4ef6\u3002<\/p>\n<p>\u4e3a\u4e86\u907f\u514d\u56fe\u7247\u6216\u4fdd\u5b58\u7a7a\u95f4\u4e0d\u8db3\u7684\u60c5\u51b5\u53d1\u751f\uff0c\u5efa\u8bae\u5c06\u5c3a\u5bf8\u8bbe\u7f6e\u5f97\u7a0d\u5927\u4e00\u4e9b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">PersistentVolume<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nfs-rwo20g-wordpress01-wordpress<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">capacity<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">storage<\/span><span class=\"pi\">:<\/span> <span class=\"s\">20Gi<\/span>\r\n  <span class=\"na\">accessModes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ReadWriteOnce<\/span>\r\n  <span class=\"c1\"># PersistentVolumeClaim \u3092\u524a\u9664\u3057\u305f\u6642\u306e\u52d5\u4f5c<\/span>\r\n  <span class=\"na\">persistentVolumeReclaimPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Recycle<\/span>\r\n  <span class=\"na\">mountOptions<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">hard<\/span>\r\n  <span class=\"c1\">## \u30de\u30a6\u30f3\u30c8\u5148\u306eNFS Server\u306e\u60c5\u5831\u3092\u8a18\u8f09<\/span>\r\n  <span class=\"na\">nfs<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">path<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/mnt\/datahdd01\/kube\/rwo20g-wordpress01-wordpress<\/span>\r\n    <span class=\"na\">server<\/span><span class=\"pi\">:<\/span> <span class=\"s\">10.174.70.1<\/span>\r\n<\/code><\/pre>\n<p>\u56e0\u4e3a\u4e0d\u77e5\u9053\u8981\u4f7f\u7528\u591a\u5c11\uff0c\u6240\u4ee5\u5c06Helm\u56fe\u8868\u7684\u9ed8\u8ba4\u8bbe\u7f6e\u66f4\u6539\u4e3a8G\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">PersistentVolume<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nfs-rwo8g-wordpress01-mariadb<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">capacity<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">storage<\/span><span class=\"pi\">:<\/span> <span class=\"s\">8Gi<\/span>\r\n  <span class=\"na\">accessModes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ReadWriteOnce<\/span>\r\n  <span class=\"c1\"># PersistentVolumeClaim \u3092\u524a\u9664\u3057\u305f\u6642\u306e\u52d5\u4f5c<\/span>\r\n  <span class=\"na\">persistentVolumeReclaimPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Recycle<\/span>\r\n  <span class=\"na\">mountOptions<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">hard<\/span>\r\n  <span class=\"c1\">## \u30de\u30a6\u30f3\u30c8\u5148\u306eNFS Server\u306e\u60c5\u5831\u3092\u8a18\u8f09<\/span>\r\n  <span class=\"na\">nfs<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">path<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/mnt\/datahdd01\/kube\/rwo8g-wordpress01-mariadb<\/span>\r\n    <span class=\"na\">server<\/span><span class=\"pi\">:<\/span> <span class=\"s\">10.174.70.1<\/span>\r\n<\/code><\/pre>\n<p>\u5c06\u521b\u5efa\u7684PV\u7684yaml\u5e94\u7528\u4e8eKubernetes\uff0c\u5e76\u5b9e\u9645\u521b\u5efaPV\u3002<\/p>\n<pre class=\"post-pre\"><code>kubectl apply <span class=\"nt\">-f<\/span> .\/volumes\/nfs\/pv-nfs-rwo20g-wordpress01-wordpress.yaml\r\nkubectl apply <span class=\"nt\">-f<\/span> .\/volumes\/nfs\/pv-nfs-rwo8g-wordpress01-mariadb.yaml\r\n<\/code><\/pre>\n<h1>\u5b89\u88c5 helm<br \/>\n\u4f7f\u7528helm install\u547d\u4ee4\u5b89\u88c5WordPress\u3002<\/p>\n<pre class=\"post-pre\"><code>helm <span class=\"nb\">install<\/span> <span class=\"se\">\\<\/span>\r\n<span class=\"nt\">--name<\/span> wordpress01 <span class=\"se\">\\<\/span>\r\n<span class=\"nt\">--namespace<\/span> faru <span class=\"se\">\\<\/span>\r\n<span class=\"nt\">--set<\/span> <span class=\"nv\">serviceType<\/span><span class=\"o\">=<\/span>NodePort <span class=\"se\">\\<\/span>\r\n<span class=\"nt\">--set<\/span> mariadb.rootUser.password<span class=\"o\">=<\/span><span class=\"k\">*****<\/span> <span class=\"se\">\\<\/span>\r\n<span class=\"nt\">--set<\/span> mariadb.db.password<span class=\"o\">=<\/span><span class=\"k\">*****<\/span> <span class=\"se\">\\<\/span>\r\n<span class=\"nt\">--set<\/span> persistence.size<span class=\"o\">=<\/span>20Gi <span class=\"se\">\\<\/span>\r\n<span class=\"nt\">--set<\/span> livenessProbe.initialDelaySeconds<span class=\"o\">=<\/span>1200 <span class=\"se\">\\<\/span>\r\nstable\/wordpress\r\n<\/code><\/pre>\n<p>\u9009\u9879\u7684\u542b\u4e49<\/p>\n<div>\n<div class=\"post-table\">\u30aa\u30d7\u30b7\u30e7\u30f3\u5f79\u5272\u5099\u8003&#8211;namespace faru\u30ea\u30ea\u30fc\u30b9\u3059\u308bkubernetes\u4e0a\u306enamespace\u3092\u6307\u5b9a\u3059\u308b<br \/>\n&#8211;set serviceType=NodePort\u4f5c\u6210\u3059\u308bService\u306eType\u3046\u3061\u306eKubernetes\u306f1Node\u3057\u304b\u306a\u3044\u306e\u3067NodePort\u3092\u4f7f\u3063\u3066\u3044\u308b&#8211;set mariadb.rootUser.password=*****MariaDB\u306e\u30eb\u30fc\u30c8\u30e6\u30fc\u30b6\u30d1\u30b9\u30ef\u30fc\u30c9*****\u306f\u7f6e\u304d\u63db\u3048\u308b&#8211;set mariadb.db.password=*****MariaDB\u306eWordpress\u7528\u30e6\u30fc\u30b6\u30d1\u30b9\u30ef\u30fc\u30c9*****\u306f\u7f6e\u304d\u63db\u3048\u308b&#8211;set persistence.size=20GiWordPress\u7528PVC\u306e\u30b5\u30a4\u30ba<br \/>\n&#8211;set livenessProbe.initialDelaySeconds=1200\u751f\u5b58\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u306e\u521d\u671f\u7336\u4e88\u6642\u9593\u8a73\u7d30\u8aac\u660e\u3057\u307e\u3059<\/p>\n<h2>\u6d3b\u52a8\u63a2\u9488\u7684\u521d\u59cb\u5ef6\u8fdf\u79d2\u6570\u3002\u8fd9\u5c31\u662f\u8fd9\u6b21\u5361\u4f4f\u7684\u5730\u65b9\u3002<br \/>\n\u5982\u679c\u6ca1\u6709\u8fdb\u884c\u8fd9\u4e2a\u8bbe\u7f6e\u5c31\u542f\u52a8\u7684\u8bdd\uff0cPods\u7684\u65e5\u5fd7\u4f1a\u5728\u4e0b\u9762\u7684\u5730\u65b9\u7ee7\u7eed\u524d\u8fdb\uff0c\u7136\u540e\u5bb9\u5668\u4f1a\u91cd\u65b0\u542f\u52a8\uff0c\u5e76\u4e14\u65e0\u8bba\u7b49\u5f85\u591a\u4e45\uff0cWordPress\u90fd\u4e0d\u4f1a\u542f\u52a8\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"go\">Welcome to the Bitnami wordpress container\r\nSubscribe to project updates by watching https:\/\/github.com\/bitnami\/bitnami-docker-wordpress\r\nSubmit issues and feature requests at https:\/\/github.com\/bitnami\/bitnami-docker-wordpress\/issues\r\n<\/span><span class=\"gp\"> WARN  ==&amp;gt;<\/span> You <span class=\"nb\">set <\/span>the environment variable <span class=\"nv\">ALLOW_EMPTY_PASSWORD<\/span><span class=\"o\">=<\/span>yes. For safety reasons, <span class=\"k\">do <\/span>not use this flag <span class=\"k\">in <\/span>a production environment.\r\n<span class=\"go\">nami    INFO  Initializing apache\r\n<\/span><span class=\"gp\">apache  INFO  ==&amp;gt;<\/span> Reconfiguring PID file location...\r\n<span class=\"go\">nami    INFO  apache successfully initialized\r\nnami    INFO  Initializing php\r\nnami    INFO  php successfully initialized\r\nnami    INFO  Initializing mysql-client\r\nnami    INFO  mysql-client successfully initialized\r\nnami    INFO  Initializing wordpress\r\nwordpre INFO  WordPress has been already initialized, restoring...\r\nmysql-c INFO  Trying to connect to MySQL server\r\nmysql-c INFO  Found MySQL server listening at wordpress01-mariadb:3306\r\nmysql-c INFO  MySQL server listening and working at wordpress01-mariadb:3306\r\nwordpre INFO  Upgrading WordPress Database ...\r\n<\/span><\/code><\/pre>\n<p>\u5728\u67e5\u627e\u8fc7\u7a0b\u4e2d\uff0c\u6211\u5728\u5b98\u65b9\u95ee\u9898\u4e2d\u627e\u5230\u4e86\u76f8\u540c\u7684\u75c7\u72b6\u3002<br \/>\n\u53c2\u8003\uff1akubernetes\u56fe\u8868\u5728\u8fde\u63a5\u5916\u90e8\u6570\u636e\u5e93\u540e\u51fa\u73b0\u5361\u987f\u95ee\u9898\uff03136\u3002<\/p>\n<p>\u6362\u53e5\u8bdd\u8bf4\uff0c\u56e0\u4e3a\u5bb9\u5668\u521d\u59cb\u5316\u975e\u5e38\u8017\u65f6\uff0c\u5bfc\u81f4\u5728\u542f\u52a8\u5b8c\u6210\u4e4b\u524d\u8fdb\u884c\u5065\u5eb7\u68c0\u67e5\uff08livenessProbe\uff09\uff0c\u4ece\u800c\u4f7fKubernetes\u9519\u8bef\u5730\u8ba4\u4e3a\u5bb9\u5668\u5df2\u7ecf\u5d29\u6e83\u5e76\u91cd\u65b0\u542f\u52a8\u3002<br \/>\n\u4f5c\u4e3a\u5bf9\u7b56\uff0c\u6839\u636e\u95ee\u9898\uff08issue\uff09\u4e2d\u7684\u5efa\u8bae\uff0c\u5927\u5e45\u589e\u52a0\u4e86initialDelaySeconds\u3002<br \/>\n\u8bbe\u5b9a1200\u79d2\u662f\u5408\u9002\u7684\u3002<\/p>\n<h1>\u4f7f\u7528iptables\u8fdb\u884c\u7aef\u53e3\u8f6c\u53d1<br \/>\n\u7531\u4e8e\u5728\u672c\u5730lxc\u4e0a\u642d\u5efa\u4e86Kubernetes\u8282\u70b9\uff0c\u6240\u4ee5\u9700\u8981\u5c06Service\u8fdb\u884c\u7aef\u53e3\u8f6c\u53d1\u4ee5\u8fdb\u884c\u5916\u90e8\u516c\u5f00\u3002<\/p>\n<p>\u7531\u4e8ekubectl\u7684port-forward\u53ea\u80fd\u4f7f\u7528localhost\uff0c\u56e0\u6b64\u6211\u5c1d\u8bd5\u901a\u8fc7\u4fee\u6539iptables\u521b\u5efa\u4e86\u4e00\u4e2a\u7528\u4e8e\u7aef\u53e3\u8f6c\u53d1\u7684shell\u811a\u672c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/bin\/bash<\/span>\r\n\r\n<span class=\"c\"># exit code not 0 error<\/span>\r\n<span class=\"nb\">set<\/span> <span class=\"nt\">-e<\/span>\r\n\r\n<span class=\"c\">### Usage<\/span>\r\nusage_exit<span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\r\n  <span class=\"nb\">echo<\/span> <span class=\"s2\">\"Usage: <\/span><span class=\"nv\">$0<\/span><span class=\"s2\"> [-m ADD\/DEL] [-i private_if_name] [-p local_port] [-n kube_namespace] [ -s kube_service_name]\"<\/span>\r\n  <span class=\"nb\">echo<\/span> <span class=\"s2\">\"ex) <\/span><span class=\"nv\">$0<\/span><span class=\"s2\"> -m ADD -i lxdbr0 -p 8081 -n faru -s metabase01-metabase\"<\/span>\r\n  <span class=\"nb\">exit <\/span>1\r\n<span class=\"o\">}<\/span>\r\n\r\n<span class=\"c\">### opts<\/span>\r\n<span class=\"k\">while <\/span><span class=\"nb\">getopts <\/span>m:i:p:n:s: OPT\r\n<span class=\"k\">do\r\n  case<\/span> <span class=\"nv\">$OPT<\/span> <span class=\"k\">in\r\n    <\/span>m<span class=\"p\">)<\/span>  <span class=\"nv\">MODE<\/span><span class=\"o\">=<\/span><span class=\"nv\">$OPTARG<\/span>\r\n        <span class=\"p\">;;<\/span>\r\n    i<span class=\"p\">)<\/span>  <span class=\"nv\">PRIVATE_IF_NAME<\/span><span class=\"o\">=<\/span><span class=\"nv\">$OPTARG<\/span>\r\n        <span class=\"p\">;;<\/span>\r\n    p<span class=\"p\">)<\/span>  <span class=\"nv\">LOCAL_PORT<\/span><span class=\"o\">=<\/span><span class=\"nv\">$OPTARG<\/span>\r\n        <span class=\"p\">;;<\/span>\r\n    n<span class=\"p\">)<\/span>  <span class=\"nv\">NAMESPACE<\/span><span class=\"o\">=<\/span><span class=\"nv\">$OPTARG<\/span>\r\n        <span class=\"p\">;;<\/span>\r\n    s<span class=\"p\">)<\/span>  <span class=\"nv\">SERVICE_NAME<\/span><span class=\"o\">=<\/span><span class=\"nv\">$OPTARG<\/span>\r\n        <span class=\"p\">;;<\/span>\r\n    <span class=\"se\">\\?<\/span><span class=\"p\">)<\/span> usage_exit\r\n        <span class=\"p\">;;<\/span>\r\n  <span class=\"k\">esac<\/span>\r\n<span class=\"k\">done\r\n\r\nif<\/span> <span class=\"o\">[<\/span> <span class=\"nv\">$OPTIND<\/span> <span class=\"nt\">-lt<\/span> 11 <span class=\"o\">]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then\r\n  <\/span><span class=\"nb\">echo<\/span> <span class=\"s2\">\"options are insufficient.\"<\/span>\r\n  usage_exit\r\n<span class=\"k\">fi<\/span>\r\n\r\n<span class=\"c\">### opts check<\/span>\r\n<span class=\"k\">case<\/span> <span class=\"nv\">$MODE<\/span> <span class=\"k\">in\r\n  <\/span>ADD<span class=\"p\">)<\/span>  <span class=\"nv\">APPEND_OR_DELETE<\/span><span class=\"o\">=<\/span><span class=\"s1\">'I'<\/span>\r\n        <span class=\"nv\">APPEND_NUMBER<\/span><span class=\"o\">=<\/span><span class=\"s1\">'1'<\/span>\r\n        <span class=\"p\">;;<\/span>\r\n  DEL<span class=\"p\">)<\/span>  <span class=\"nv\">APPEND_OR_DELETE<\/span><span class=\"o\">=<\/span><span class=\"s1\">'D'<\/span>\r\n        <span class=\"nv\">APPEND_NUMBER<\/span><span class=\"o\">=<\/span><span class=\"s1\">''<\/span>\r\n        <span class=\"p\">;;<\/span>\r\n  <span class=\"se\">\\?<\/span><span class=\"p\">)<\/span>   <span class=\"nb\">echo<\/span> <span class=\"s2\">\"option m is ADD or DEL\"<\/span>\r\n        usage_exit\r\n        <span class=\"p\">;;<\/span>\r\n<span class=\"k\">esac<\/span>\r\n\r\n<span class=\"c\">### private_if_namebash<\/span>\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"getting private IP\"<\/span>\r\n<span class=\"nv\">PRIVATE_IP<\/span><span class=\"o\">=<\/span><span class=\"si\">$(<\/span>ip <span class=\"nt\">-f<\/span> inet address show dev <span class=\"k\">${<\/span><span class=\"nv\">PRIVATE_IF_NAME<\/span><span class=\"k\">}<\/span> | <span class=\"nb\">grep<\/span> <span class=\"nt\">-o<\/span> <span class=\"s1\">'inet [0-9]\\+\\.[0-9]\\+\\.[0-9]\\+\\.[0-9]\\+'<\/span> | <span class=\"nb\">grep<\/span> <span class=\"nt\">-o<\/span> <span class=\"o\">[<\/span>0-9].<span class=\"k\">*<\/span> | <span class=\"nb\">head<\/span> <span class=\"nt\">-n<\/span> 1<span class=\"si\">)<\/span>\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"&gt;&gt; <\/span><span class=\"k\">${<\/span><span class=\"nv\">PRIVATE_IP<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n\r\n<span class=\"c\">### get info from kubernetes<\/span>\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"getting kubernetes service port and IP\"<\/span>\r\n<span class=\"nv\">NODE_PORT<\/span><span class=\"o\">=<\/span><span class=\"si\">$(<\/span>kubectl get <span class=\"nt\">--namespace<\/span> <span class=\"k\">${<\/span><span class=\"nv\">NAMESPACE<\/span><span class=\"k\">}<\/span> <span class=\"nt\">-o<\/span> <span class=\"nv\">jsonpath<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"{.spec.ports[0].nodePort}\"<\/span> services <span class=\"k\">${<\/span><span class=\"nv\">SERVICE_NAME<\/span><span class=\"k\">}<\/span><span class=\"si\">)<\/span>\r\n<span class=\"nv\">NODE_IP<\/span><span class=\"o\">=<\/span><span class=\"si\">$(<\/span>kubectl get nodes <span class=\"nt\">--namespace<\/span> <span class=\"k\">${<\/span><span class=\"nv\">NAMESPACE<\/span><span class=\"k\">}<\/span> <span class=\"nt\">-o<\/span> <span class=\"nv\">jsonpath<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"{.items[0].status.addresses[0].address}\"<\/span><span class=\"si\">)<\/span>\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"&gt;&gt; <\/span><span class=\"k\">${<\/span><span class=\"nv\">NODE_IP<\/span><span class=\"k\">}<\/span><span class=\"s2\">:<\/span><span class=\"k\">${<\/span><span class=\"nv\">NODE_PORT<\/span><span class=\"k\">}<\/span><span class=\"s2\">(<\/span><span class=\"k\">${<\/span><span class=\"nv\">SERVICE_NAME<\/span><span class=\"k\">}<\/span><span class=\"s2\">)\"<\/span>\r\n\r\n<span class=\"c\">### setting iptables<\/span>\r\n<span class=\"nv\">COMMENT<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"port forward setting :: port <\/span><span class=\"k\">${<\/span><span class=\"nv\">LOCAL_PORT<\/span><span class=\"k\">}<\/span><span class=\"s2\"> =&gt; <\/span><span class=\"k\">${<\/span><span class=\"nv\">NODE_IP<\/span><span class=\"k\">}<\/span><span class=\"s2\">:<\/span><span class=\"k\">${<\/span><span class=\"nv\">NODE_PORT<\/span><span class=\"k\">}<\/span><span class=\"s2\">(<\/span><span class=\"k\">${<\/span><span class=\"nv\">SERVICE_NAME<\/span><span class=\"k\">}<\/span><span class=\"s2\">)\"<\/span>\r\n\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"setting iptables\"<\/span>\r\n<span class=\"c\"># nat:PREROUTING<\/span>\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"&gt;&gt; nat:PREROUTING\"<\/span>\r\niptables <span class=\"nt\">-t<\/span> nat -<span class=\"k\">${<\/span><span class=\"nv\">APPEND_OR_DELETE<\/span><span class=\"k\">}<\/span> PREROUTING <span class=\"k\">${<\/span><span class=\"nv\">APPEND_NUMBER<\/span><span class=\"k\">}<\/span> <span class=\"nt\">-p<\/span> tcp <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">--dport<\/span> <span class=\"k\">${<\/span><span class=\"nv\">LOCAL_PORT<\/span><span class=\"k\">}<\/span> <span class=\"nt\">-j<\/span> DNAT <span class=\"nt\">--to-destination<\/span> <span class=\"k\">${<\/span><span class=\"nv\">NODE_IP<\/span><span class=\"k\">}<\/span>:<span class=\"k\">${<\/span><span class=\"nv\">NODE_PORT<\/span><span class=\"k\">}<\/span> <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-m<\/span> comment <span class=\"nt\">--comment<\/span> <span class=\"s2\">\"port <\/span><span class=\"k\">${<\/span><span class=\"nv\">COMMENT<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n\r\n<span class=\"c\"># nat:OUTPUT  for local packet<\/span>\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"&gt;&gt; nat:OUTPUT\"<\/span>\r\niptables <span class=\"nt\">-t<\/span> nat -<span class=\"k\">${<\/span><span class=\"nv\">APPEND_OR_DELETE<\/span><span class=\"k\">}<\/span> OUTPUT <span class=\"k\">${<\/span><span class=\"nv\">APPEND_NUMBER<\/span><span class=\"k\">}<\/span> <span class=\"nt\">-p<\/span> tcp <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">--dport<\/span> <span class=\"k\">${<\/span><span class=\"nv\">LOCAL_PORT<\/span><span class=\"k\">}<\/span> <span class=\"nt\">-j<\/span> DNAT <span class=\"nt\">--to-destination<\/span> <span class=\"k\">${<\/span><span class=\"nv\">NODE_IP<\/span><span class=\"k\">}<\/span>:<span class=\"k\">${<\/span><span class=\"nv\">NODE_PORT<\/span><span class=\"k\">}<\/span> <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-m<\/span> comment <span class=\"nt\">--comment<\/span> <span class=\"s2\">\"port <\/span><span class=\"k\">${<\/span><span class=\"nv\">COMMENT<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n\r\nsysctl net.ipv4.conf.<span class=\"k\">${<\/span><span class=\"nv\">PRIVATE_IF_NAME<\/span><span class=\"k\">}<\/span>.route_localnet<span class=\"o\">=<\/span>1\r\n\r\n<span class=\"c\"># nat:POSTROUTING<\/span>\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"&gt;&gt; nat:POSTROUTING\"<\/span>\r\niptables <span class=\"nt\">-t<\/span> nat -<span class=\"k\">${<\/span><span class=\"nv\">APPEND_OR_DELETE<\/span><span class=\"k\">}<\/span> POSTROUTING <span class=\"k\">${<\/span><span class=\"nv\">APPEND_NUMBER<\/span><span class=\"k\">}<\/span> <span class=\"nt\">-p<\/span> tcp <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">--dst<\/span> <span class=\"k\">${<\/span><span class=\"nv\">NODE_IP<\/span><span class=\"k\">}<\/span> <span class=\"nt\">--dport<\/span> <span class=\"k\">${<\/span><span class=\"nv\">NODE_PORT<\/span><span class=\"k\">}<\/span> <span class=\"nt\">-j<\/span> SNAT <span class=\"nt\">--to-source<\/span> <span class=\"k\">${<\/span><span class=\"nv\">PRIVATE_IP<\/span><span class=\"k\">}<\/span> <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">-m<\/span> comment <span class=\"nt\">--comment<\/span> <span class=\"s2\">\"<\/span><span class=\"k\">${<\/span><span class=\"nv\">COMMENT<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"&gt;&gt; <\/span><span class=\"k\">${<\/span><span class=\"nv\">MODE<\/span><span class=\"k\">}<\/span> <span class=\"k\">${<\/span><span class=\"nv\">COMMENT<\/span><span class=\"k\">}<\/span><span class=\"s2\">\"<\/span>\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"Finished!!\"<\/span>\r\n\r\n<span class=\"nb\">exit <\/span>0\r\n<\/code><\/pre>\n<p>\u5c06\u672c\u57308083\u7aef\u53e3\u7684\u6d41\u91cf\u8f6c\u53d1\u5230\u5f53\u524d\u521b\u5efa\u7684WordPress\u670d\u52a1(wordpress01-wordpress)\u4e0a\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo<\/span> .\/commands\/setup_port_forward_for_kubernetes.sh <span class=\"se\">\\<\/span>\r\n<span class=\"nt\">-m<\/span> ADD <span class=\"nt\">-i<\/span> lxdbr0 <span class=\"nt\">-p<\/span> 8083 <span class=\"nt\">-n<\/span> faru <span class=\"se\">\\<\/span>\r\n<span class=\"nt\">-s<\/span> wordpress01-wordpress\r\n<\/code><\/pre>\n<p>\u5f53\u5230\u8fbe\u8fd9\u4e00\u6b65\u65f6\uff0c\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95eehttp:\/\/localhost:8083\/\u6216http:\/\/&lt;IP\u5730\u5740&gt;:8083\/\uff0c\u5c06\u663e\u793aWordPress\u521d\u59cb\u9875\u9762\u3002<\/p>\n<h1>\u603b\u7ed3<br \/>\n\u6211\u4ecb\u7ecd\u4e86\u4f7f\u7528Helm\u90e8\u7f72WordPress\u7684\u65b9\u6cd5\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">kubernetes\u3067\u30b3\u30f3\u30c6\u30ca\u306e\u521d\u671f\u5316\u306b\u6642\u9593\u3092\u8981\u3059\u308b\u5834\u5408\u306flivenessProbe\u306einitialDelaySeconds\u3092\u4f38\u3070\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">lxc\u3067\u69cb\u7bc9\u3057\u305fkubernetes\u3067\u30b5\u30fc\u30d3\u30b9\u3092\u516c\u958b\u3059\u308b\u305f\u3081\u306biptables\u3092\u4f7f\u3063\u3066\u30dd\u30fc\u30c8\u30d5\u30a9\u30ef\u30fc\u30c9\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f5c\u6210\u3057\u305f<\/ul>\n<h1>\u5fc3\u5f97<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">helm\u306e\u7c21\u5358\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3082\u307e\u3060\u307e\u3060\u3053\u3093\u306a\u611f\u3058\u3067\u52d5\u304b\u306a\u3044\u3053\u3068\u304c\u591a\u3044<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">helm\u306b\u95a2\u3059\u308b\u65e5\u672c\u8a9e\u306e\u8a18\u4e8b\u304c\u307b\u3068\u3093\u3069\u306a\u3044<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u8a18\u4e8b\u306e\u4e2d\u3067\u304a\u304b\u3057\u3044\u3068\u3053\u308d\u3001\u3082\u3063\u3068\u7c21\u5358\u306b\u3067\u304d\u308b\u3063\u3066\u3068\u3053\u308d\u304c\u3042\u308c\u3070\u30b3\u30e1\u30f3\u30c8\u9802\u3051\u308c\u3070\u5e78\u3044\u3067\u3042\u308b<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u52a8\u673a\u6700\u8fd1\u5f00\u59cb\u517b\u4ed3\u9f20\uff0c\u60f3\u8981\u8bb0\u5f55\u5b83\u7684\u65e5\u8bb0\uff0c\u4e8e\u662f\u7528helm\u5efa\u7acb\u4e86WordPress\u7f51\u7ad9\u3002\u610f\u5916\u5730\uff0c\u6211\u5728\u8fd9\u65b9\u9762\u9047\u5230\u4e86\u4e00\u4e9b [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[227],"class_list":["post-26898","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-227"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Juju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u5173\u4e8eJuju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/juju-\u5728\u4f7f\u7528lxc\u5efa\u7acb\u7684kubernetes\u4e0a\uff0c\u901a\u8fc7helm\u90e8\u7f72wordpress\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Juju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress\" \/>\n<meta property=\"og:description\" content=\"\u5173\u4e8eJuju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/juju-\u5728\u4f7f\u7528lxc\u5efa\u7acb\u7684kubernetes\u4e0a\uff0c\u901a\u8fc7helm\u90e8\u7f72wordpress\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-18T21:18:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-11T15:40:56+00:00\" \/>\n<meta name=\"author\" content=\"\u79d1, \u9896\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u79d1, \u9896\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/\",\"name\":\"Juju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-03-18T21:18:20+00:00\",\"dateModified\":\"2025-08-11T15:40:56+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e\"},\"description\":\"\u5173\u4e8eJuju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress\u7684\u6280\u672f\u6587\u7ae0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Juju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e\",\"name\":\"\u79d1, \u9896\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g\",\"caption\":\"\u79d1, \u9896\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Juju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress - Blog - Silicon Cloud","description":"\u5173\u4e8eJuju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress\u7684\u6280\u672f\u6587\u7ae0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/juju-\u5728\u4f7f\u7528lxc\u5efa\u7acb\u7684kubernetes\u4e0a\uff0c\u901a\u8fc7helm\u90e8\u7f72wordpress\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"Juju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress","og_description":"\u5173\u4e8eJuju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress\u7684\u6280\u672f\u6587\u7ae0","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/juju-\u5728\u4f7f\u7528lxc\u5efa\u7acb\u7684kubernetes\u4e0a\uff0c\u901a\u8fc7helm\u90e8\u7f72wordpress\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-03-18T21:18:20+00:00","article_modified_time":"2025-08-11T15:40:56+00:00","author":"\u79d1, \u9896","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u9896","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/","name":"Juju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-03-18T21:18:20+00:00","dateModified":"2025-08-11T15:40:56+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e"},"description":"\u5173\u4e8eJuju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress\u7684\u6280\u672f\u6587\u7ae0","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"Juju: \u5728\u4f7f\u7528LXC\u5efa\u7acb\u7684Kubernetes\u4e0a\uff0c\u901a\u8fc7Helm\u90e8\u7f72WordPress"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/8ca01ba7f7362ad4edb7da206a12f29e","name":"\u79d1, \u9896","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8a6fb3cc7ba2f69d2189ba532aec4633ea7ed75ac0af162ec367cb3abc0fb2af?s=96&d=mm&r=g","caption":"\u79d1, \u9896"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keying\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/juju-%e5%9c%a8%e4%bd%bf%e7%94%a8lxc%e5%bb%ba%e7%ab%8b%e7%9a%84kubernetes%e4%b8%8a%ef%bc%8c%e9%80%9a%e8%bf%87helm%e9%83%a8%e7%bd%b2wordpress%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/26898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=26898"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/26898\/revisions"}],"predecessor-version":[{"id":111039,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/26898\/revisions\/111039"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=26898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=26898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=26898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}