{"id":36095,"date":"2023-05-25T23:43:58","date_gmt":"2023-06-29T21:29:55","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/"},"modified":"2024-04-30T05:57:44","modified_gmt":"2024-04-29T21:57:44","slug":"%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/","title":{"rendered":"\u5728Azure Machine Learning\u4e2d\u4f7f\u7528\u642d\u8f7dAzure Arc\u7684GPU\u7684Kubernetes\uff081\uff09Kubernetes\u914d\u7f6e\u90e8\u5206"},"content":{"rendered":"<h1>\u9996\u5148<\/h1>\n<p>\u7531\u65bc Azure Advent Calender 2022 \u7684\u7b2c10\u5929\u7684\u65e5\u7a0b\u5c1a\u672a\u88ab\u5b89\u6392\uff0c\u6240\u4ee5\u6211\u586b\u5165\u4e86\u7a7a\u7f3a\u7684\u4f4d\u7f6e\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u4eca\u5e74\u79cb\u5b63\u7684\u65f6\u5019\uff0c\u6211\u7ec4\u88c5\u4e86\u4e00\u53f0\u642d\u8f7d\u4e86NVIDIA GPU\u7684\u81ea\u5236\u7535\u8111\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u5c3d\u7ba1\u6211\u5236\u4f5c\u4e86\u4e00\u4e9b\u4e1c\u897f\uff0c\u4f46\u5b83\u5e76\u6ca1\u6709\u7279\u522b\u7684\u7528\u9014\uff0c\u53ea\u662f\u95f2\u7f6e\u7740\u3002\u6211\u7a81\u53d1\u5947\u60f3\uff0c\u60f3\u8981\u5c06\u8fd9\u53f0\u673a\u5668\u5145\u5206\u5229\u7528\u8d77\u6765\uff0c\u5c06\u5176\u4f5c\u4e3aAzure\u673a\u5668\u5b66\u4e60\u7684\u8ba1\u7b97\u8d44\u6e90\u6765\u4f7f\u7528\u3002\u672c\u6587\u8bb0\u5f55\u4e86\u8fd9\u4e2a\u8bbe\u7f6e\u7684\u5386\u53f2\u3002<\/p>\n<h1>\u73af\u5883<\/h1>\n<p>\u786c\u4ef6\u89c4\u683c\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">CPU: Core(TM) i3-12100F<\/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\">MEM: 32GB<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">GPU: NVIDIA GeForce RTX3050 8GB<\/ul>\n<p>\u8f6f\u4ef6\u65b9\u9762\uff0c\u6211\u4eec\u4ee5\u4ee5\u4e0b\u7248\u672c\u8fdb\u884c\u4e86\u914d\u7f6e\u3002<br \/>\nUbuntu \u4f7f\u7528\u7684\u662f Minimal install \u7684\u684c\u9762\u7248\uff0c\u800c\u4e0d\u662f\u670d\u52a1\u5668\u7248\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ubuntu: 22.04.1<\/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\">NVIDIA Driver: 525.60.11<\/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\">Containerd: 1.6.12<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Kubernetes: 1.25.5<\/ul>\n<h1>\u8bbe\u5b9a<\/h1>\n<p>\u6211\u5c06\u5728\u4e0b\u9762\u5199\u51fa\u73af\u5883\u8bbe\u7f6e\u6b65\u9aa4\u3002<\/p>\n<h2>1. \u5b89\u88c5NVIDIA\u9a71\u52a8\u7a0b\u5e8f<\/h2>\n<p>\u9996\u5148\u8981\u5b89\u88c5GPU\u9a71\u52a8\u7a0b\u5e8f\u3002<br \/>\n\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u5373\u53ef\u3002<\/p>\n<pre class=\"post-pre\"><code>ubuntu-drivers devices\r\n<\/code><\/pre>\n<p>\u4f1a\u663e\u793a\u53ef\u5b89\u88c5\u7684\u9a71\u52a8\u7a0b\u5e8f\u5217\u8868\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">==<\/span> \/sys\/devices\/pci0000:00\/0000:00:01.0\/0000:01:00.0 <span class=\"o\">==<\/span>\r\nmodalias : pci:v000010DEd00002507sv00001043sd00008876bc03sc00i00\r\nvendor   : NVIDIA Corporation\r\ndriver   : nvidia-driver-515-open - distro non-free\r\ndriver   : nvidia-driver-510 - distro non-free\r\ndriver   : nvidia-driver-525-open - distro non-free recommended\r\ndriver   : nvidia-driver-515 - distro non-free\r\ndriver   : nvidia-driver-470 - distro non-free\r\ndriver   : nvidia-driver-515-server - distro non-free\r\ndriver   : nvidia-driver-525 - distro non-free\r\ndriver   : nvidia-driver-470-server - distro non-free\r\ndriver   : xserver-xorg-video-nouveau - distro free <span class=\"nb\">builtin<\/span>\r\n<\/code><\/pre>\n<p>\u8fd9\u6b21\u6211\u5b89\u88c5\u4e86nvidia-driver-525\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>apt <span class=\"nb\">install <\/span>nvidia-driver-525\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u91cd\u65b0\u52a0\u8f7d\u9a71\u52a8\u7a0b\u5e8f\uff0c\u5c06\u91cd\u65b0\u542f\u52a8\u6574\u4e2a\u64cd\u4f5c\u7cfb\u7edf\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>reboot\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u662f\u5426\u8bc6\u522b\u4e86NVIDIA\u7684\u6a21\u5757\u3002<\/p>\n<pre class=\"post-pre\"><code>lsmod | <span class=\"nb\">grep <\/span>nvidia\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>nvidia_uvm           1363968  0\r\nnvidia_drm             69632  3\r\nnvidia_modeset       1208320  5 nvidia_drm\r\nnvidia              56127488  190 nvidia_uvm,nvidia_modeset\r\ndrm_kms_helper        311296  1 nvidia_drm\r\ndrm                   622592  7 drm_kms_helper,nvidia,nvidia_drm\r\n<\/code><\/pre>\n<h2>2. \u5b89\u88c5 Containerd<\/h2>\n<p>\u63a5\u4e0b\u6765\u6211\u4eec\u5c06\u5b89\u88c5Containerd\u3002<br \/>\n\u5728\u8fdb\u884c\u7684\u8fc7\u7a0b\u4e2d\uff0c\u8bf7\u53c2\u8003\u8fd9\u4e9b\u6587\u6863\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u7981\u7528Swap\u529f\u80fd\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>swapoff <span class=\"nt\">-a<\/span>\r\n\r\n<span class=\"c\"># \/etc\/fstab\u304b\u3089swapfile\u306e\u30de\u30a6\u30f3\u30c8\u884c\u3092\u524a\u9664<\/span>\r\n<span class=\"nb\">sudo <\/span>vi \/etc\/fstab\r\n<\/code><\/pre>\n<p>\u5bfc\u5165\u6240\u9700\u7684\u6a21\u5757\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>modprobe overlay\r\n<span class=\"nb\">sudo <\/span>modprobe br_netfilter\r\n<span class=\"nb\">sudo <\/span>modprobe vxlan\r\n<\/code><\/pre>\n<p>\u8bf7\u5728\u91cd\u65b0\u542f\u52a8\u540e\u7f16\u5199\u914d\u7f6e\u6587\u4ef6\uff0c\u4ee5\u4fbf\u81ea\u52a8\u52a0\u8f7d\u6a21\u5757\u3002<\/p>\n<pre class=\"post-pre\"><code>overlay\r\nbr_netfilter\r\nvxlan\r\n<\/code><\/pre>\n<p>\u6211\u5c06\u8bbe\u7f6e\u5185\u6838\u53c2\u6570\u3002<br \/>\n\u8bf7\u521b\u5efa\u4ee5\u4e0b\u7684\u914d\u7f6e\u6587\u4ef6\uff0c<\/p>\n<pre class=\"post-pre\"><code>net.bridge.bridge-nf-call-iptables  = 1\r\nnet.ipv4.ip_forward                 = 1\r\nnet.bridge.bridge-nf-call-ip6tables = 1\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u5728\u547d\u4ee4\u4e2d\u8fdb\u884c\u53cd\u6620\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>sysctl <span class=\"nt\">--system<\/span>\r\n<\/code><\/pre>\n<p>\u5b89\u88c5 Containerd\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>apt <span class=\"nb\">install <\/span>ca-certificates curl gnupg lsb-release\r\n\r\ncurl <span class=\"nt\">-fsSL<\/span> https:\/\/download.docker.com\/linux\/ubuntu\/gpg | <span class=\"nb\">sudo <\/span>gpg <span class=\"nt\">--dearmor<\/span> <span class=\"nt\">-o<\/span> \/etc\/apt\/keyrings\/docker.gpg\r\n\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"deb [arch=<\/span><span class=\"si\">$(<\/span>dpkg <span class=\"nt\">--print-architecture<\/span><span class=\"si\">)<\/span><span class=\"s2\"> signed-by=\/etc\/apt\/keyrings\/docker.gpg] https:\/\/download.docker.com\/linux\/ubuntu <\/span><span class=\"se\">\\<\/span>\r\n  <span class=\"si\">$(<\/span>lsb_release <span class=\"nt\">-cs<\/span><span class=\"si\">)<\/span><span class=\"s2\"> stable\"<\/span> | <span class=\"nb\">sudo tee<\/span> \/etc\/apt\/sources.list.d\/docker.list <span class=\"o\">&gt;<\/span> \/dev\/null\r\n\r\n<span class=\"nb\">sudo <\/span>apt update <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">sudo <\/span>apt <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> containerd.io\r\n<\/code><\/pre>\n<h2>3. \u5b89\u88c5NVIDIA\u5bb9\u5668\u5de5\u5177\u5305<\/h2>\n<p>\u5728\u63a5\u4e0b\u6765\u7684\u6b65\u9aa4\u4e2d\uff0c\u6211\u4eec\u5c06\u5b89\u88c5NVIDIA\u5bb9\u5668\u5de5\u5177\u5305\u3002<br \/>\n\u6211\u67e5\u9605\u4e86\u4ee5\u4e0b\u6587\u6863\uff0c\u5e76\u5728\u5176\u57fa\u7840\u4e0a\u505a\u4e86\u4e00\u4e9b\u4fee\u6539\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u6dfb\u52a0NVIDIA\u5b58\u50a8\u5e93\u5e76\u5b89\u88c5nvidia-container-toolkit\u8f6f\u4ef6\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">distribution<\/span><span class=\"o\">=<\/span><span class=\"si\">$(<\/span><span class=\"nb\">.<\/span> \/etc\/os-release<span class=\"p\">;<\/span><span class=\"nb\">echo<\/span> <span class=\"nv\">$ID$VERSION_ID<\/span><span class=\"si\">)<\/span>\r\ncurl <span class=\"nt\">-fsSL<\/span> https:\/\/nvidia.github.io\/libnvidia-container\/gpgkey | <span class=\"nb\">sudo <\/span>gpg <span class=\"nt\">--dearmor<\/span> <span class=\"nt\">-o<\/span> \/usr\/share\/keyrings\/nvidia-container-toolkit-keyring.gpg <span class=\"o\">&amp;&amp;<\/span> <span class=\"se\">\\<\/span>\r\n  curl <span class=\"nt\">-s<\/span> <span class=\"nt\">-L<\/span> https:\/\/nvidia.github.io\/libnvidia-container\/ubuntu22.04\/libnvidia-container.list | <span class=\"se\">\\<\/span>\r\n    <span class=\"nb\">sed<\/span> <span class=\"s1\">'s#deb https:\/\/#deb [signed-by=\/usr\/share\/keyrings\/nvidia-container-toolkit-keyring.gpg] https:\/\/#g'<\/span> | <span class=\"se\">\\<\/span>\r\n      <span class=\"nb\">sudo tee<\/span> \/etc\/apt\/sources.list.d\/nvidia-container-toolkit.list\r\n\r\n<span class=\"nb\">sudo <\/span>apt update <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">sudo <\/span>apt <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> nvidia-container-toolkit\r\n<\/code><\/pre>\n<p>\u9996\u5148\uff0c\u4f7f\u7528Containerd\u7684\u547d\u4ee4\u751f\u6210\u9ed8\u8ba4\u914d\u7f6e\u6587\u4ef6\uff0c\u4ee5\u4fbf\u8bbe\u7f6eContainerd\u6765\u4f7f\u7528NVIDIA Container Toolkit\u3002<\/p>\n<pre class=\"post-pre\"><code>containerd config default | <span class=\"nb\">sudo tee<\/span> \/etc\/containerd\/config.toml\r\n<\/code><\/pre>\n<p>\u6211\u5df2\u7ecf\u5c06Containerd\u7684\u8fd0\u884c\u65f6\u7f16\u8f91\u4e3a\u4f7f\u7528nvidia\u3002\u6211\u51c6\u5907\u4e86\u4e0e\u7f16\u8f91\u540e\u6587\u4ef6\u7684\u5dee\u5f02\u4ee5\u8865\u4e01\u5f62\u5f0f\u63d0\u4f9b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"gd\">--- config.toml 2022-12-15 01:52:36.050473142 +0900\r\n<\/span><span class=\"gi\">+++ \/etc\/containerd\/config.toml 2022-12-15 01:56:06.024187694 +0900\r\n<\/span><span class=\"p\">@@ -76,7 +76,7 @@<\/span>\r\n       max_conf_num = 1\r\n\r\n     [plugins.\"io.containerd.grpc.v1.cri\".containerd]\r\n<span class=\"gd\">-      default_runtime_name = \"runc\"\r\n<\/span><span class=\"gi\">+      default_runtime_name = \"nvidia\"\r\n<\/span>       disable_snapshot_annotations = true\r\n       discard_unpacked_layers = false\r\n       ignore_rdt_not_enabled_errors = false\r\n<span class=\"p\">@@ -122,7 +122,17 @@<\/span>\r\n             NoPivotRoot = false\r\n             Root = \"\"\r\n             ShimCgroup = \"\"\r\n<span class=\"gd\">-            SystemdCgroup = false\r\n<\/span><span class=\"gi\">+            SystemdCgroup = true\r\n+\r\n+        [plugins.\"io.containerd.grpc.v1.cri\".containerd.runtimes.nvidia]\r\n+          privileged_without_host_devices = false\r\n+          runtime_engine = \"\"\r\n+          runtime_root = \"\"\r\n+          runtime_type = \"io.containerd.runc.v2\"\r\n+\r\n+          [plugins.\"io.containerd.grpc.v1.cri\".containerd.runtimes.nvidia.options]\r\n+            BinaryName = \"\/usr\/bin\/nvidia-container-runtime\"\r\n+            SystemdCgroup = true\r\n<\/span>\r\n       [plugins.\"io.containerd.grpc.v1.cri\".containerd.untrusted_workload_runtime]\r\n         base_runtime_spec = \"\"\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u8fdb\u884c\u5e94\u7528\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>patch \/etc\/containerd\/config.toml containerd-config.patch\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u91cd\u65b0\u542f\u52a8Containerd\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>systemctl restart containerd\r\n<\/code><\/pre>\n<p>\u91cd\u542f\u540e\uff0c\u542f\u52a8\u6d4b\u8bd5\u7528\u7684\u955c\u50cf\u5e76\u8fdb\u884c\u64cd\u4f5c\u786e\u8ba4\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>ctr image pull docker.io\/nvidia\/cuda:11.6.2-base-ubuntu20.04\r\n<span class=\"nb\">sudo <\/span>ctr run <span class=\"nt\">--rm<\/span> <span class=\"nt\">-t<\/span> <span class=\"se\">\\<\/span>\r\n    <span class=\"nt\">--runc-binary<\/span><span class=\"o\">=<\/span>\/usr\/bin\/nvidia-container-runtime <span class=\"se\">\\<\/span>\r\n    <span class=\"nt\">--env<\/span> <span class=\"nv\">NVIDIA_VISIBLE_DEVICES<\/span><span class=\"o\">=<\/span>all <span class=\"se\">\\<\/span>\r\n    docker.io\/nvidia\/cuda:11.6.2-base-ubuntu20.04 <span class=\"se\">\\<\/span>\r\n    cuda-11.6.2-base-ubuntu20.04 nvidia-smi\r\n<\/code><\/pre>\n<p>\u5982\u679c\u663e\u793a\u4e86\u9a71\u52a8\u7248\u672c\u548cCUDA\u7248\u672c\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code>+-----------------------------------------------------------------------------+\r\n| NVIDIA-SMI 525.60.11    Driver Version: 525.60.11    CUDA Version: 12.0     |\r\n|-------------------------------+----------------------+----------------------+\r\n| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\r\n| Fan  Temp  Perf  Pwr:Usage\/Cap|         Memory-Usage | GPU-Util  Compute M. |\r\n|                               |                      |               MIG M. |\r\n|<span class=\"o\">===============================<\/span>+<span class=\"o\">======================<\/span>+<span class=\"o\">======================<\/span>|\r\n|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N\/A |\r\n| 42%   25C    P8     6W \/ 130W |     33MiB \/  8192MiB |      0%      Default |\r\n|                               |                      |                  N\/A |\r\n+-------------------------------+----------------------+----------------------+\r\n\r\n+-----------------------------------------------------------------------------+\r\n| Processes:                                                                  |\r\n|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\r\n|        ID   ID                                                   Usage      |\r\n|<span class=\"o\">=============================================================================<\/span>|\r\n+-----------------------------------------------------------------------------+\r\n<\/code><\/pre>\n<h2>4. \u90e8\u7f72Kubernetes\u96c6\u7fa4<\/h2>\n<p>\u5f00\u59cb\u8bbe\u7f6eKubernetes\u96c6\u7fa4\u3002<br \/>\n\u9996\u5148\u6dfb\u52a0\u8f6f\u4ef6\u5305\u4ed3\u5e93\u3002\u83b7\u53d6\u5e76\u653e\u7f6eGPG\u6587\u4ef6\uff0c<\/p>\n<pre class=\"post-pre\"><code>curl <span class=\"nt\">-o<\/span> kubernetes-archive-keyring.gpg https:\/\/packages.cloud.google.com\/apt\/doc\/apt-key.gpg\r\n<span class=\"nb\">sudo mv <\/span>kubernetes-archive-keyring.gpg \/usr\/share\/keyrings\/kubernetes-archive-keyring.gpg\r\n<\/code><\/pre>\n<p>\u521b\u5efa\u5b58\u50a8\u5e93\u7684\u5217\u8868\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>deb [signed-by=\/usr\/share\/keyrings\/kubernetes-archive-keyring.gpg] https:\/\/apt.kubernetes.io\/ kubernetes-xenial main\r\n<\/code><\/pre>\n<p>\u5b89\u88c5\u4e0eKubernetes\u76f8\u5173\u7684\u5305\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>apt update\r\n<span class=\"nb\">sudo <\/span>apt <span class=\"nb\">install <\/span><span class=\"nv\">kubelet<\/span><span class=\"o\">=<\/span>1.25.5-00 <span class=\"nv\">kubeadm<\/span><span class=\"o\">=<\/span>1.25.5-00 <span class=\"nv\">kubectl<\/span><span class=\"o\">=<\/span>1.25.5-00\r\n<span class=\"nb\">sudo <\/span>apt-mark hold kubelet kubeadm kubectl\r\n<\/code><\/pre>\n<p>\u6211\u5011\u5c07\u4f7f\u7528 kubeadm \u9032\u884c\u96c6\u7fa4\u7684\u8a2d\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>kubeadm init\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u4f7f\u666e\u901a\u7528\u6237\u80fd\u591f\u4f7f\u7528kubectl\u547d\u4ee4\uff0c\u5c06\u8bbe\u7f6e\u6587\u4ef6\u590d\u5236\u4e00\u4efd\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">mkdir<\/span> <span class=\"nt\">-p<\/span> <span class=\"nv\">$HOME<\/span>\/.kube\r\n<span class=\"nb\">sudo cp<\/span> <span class=\"nt\">-i<\/span> \/etc\/kubernetes\/admin.conf <span class=\"nv\">$HOME<\/span>\/.kube\/config\r\n<span class=\"nb\">sudo chown<\/span> <span class=\"si\">$(<\/span><span class=\"nb\">id<\/span> <span class=\"nt\">-u<\/span><span class=\"si\">)<\/span>:<span class=\"si\">$(<\/span><span class=\"nb\">id<\/span> <span class=\"nt\">-g<\/span><span class=\"si\">)<\/span> <span class=\"nv\">$HOME<\/span>\/.kube\/config\r\n<\/code><\/pre>\n<p>\u5b89\u88c5Helm\u3002<\/p>\n<pre class=\"post-pre\"><code>curl https:\/\/baltocdn.com\/helm\/signing.asc | gpg <span class=\"nt\">--dearmor<\/span> | <span class=\"nb\">sudo tee<\/span> \/usr\/share\/keyrings\/helm.gpg <span class=\"o\">&gt;<\/span> \/dev\/null\r\n<span class=\"nb\">sudo <\/span>apt <span class=\"nb\">install <\/span>apt-transport-https <span class=\"nt\">--yes<\/span>\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"deb [arch=<\/span><span class=\"si\">$(<\/span>dpkg <span class=\"nt\">--print-architecture<\/span><span class=\"si\">)<\/span><span class=\"s2\"> signed-by=\/usr\/share\/keyrings\/helm.gpg] https:\/\/baltocdn.com\/helm\/stable\/debian\/ all main\"<\/span> | <span class=\"nb\">sudo tee<\/span> \/etc\/apt\/sources.list.d\/helm-stable-debian.list\r\n<span class=\"nb\">sudo <\/span>apt update\r\n<span class=\"nb\">sudo <\/span>apt <span class=\"nb\">install <\/span>helm\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u8fd9\u6b21\u4f7f\u7528\u4e86CNI\u7684Cilium\u3002\u6211\u4eec\u5c06\u4f7f\u7528Helm\u8fdb\u884c\u5b89\u88c5\u3002<\/p>\n<pre class=\"post-pre\"><code>helm repo add cilium https:\/\/helm.cilium.io\/\r\n\r\nhelm <span class=\"nb\">install <\/span>cilium cilium\/cilium <span class=\"nt\">--version<\/span> 1.12.4 <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">--namespace<\/span> kube-system <span class=\"se\">\\<\/span>\r\n  <span class=\"nt\">--set<\/span> operator.replicas<span class=\"o\">=<\/span>1\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u672c\u6b21\u7fa4\u96c6\u53ea\u6709\u4e00\u4e2a\u8282\u70b9\uff0c\u63a7\u5236\u5e73\u9762\u548c\u5de5\u4f5c\u8282\u70b9\u662f\u901a\u7528\u7684\u3002\u6211\u4eec\u5c06\u5bf9\u63a7\u5236\u5e73\u9762\u8282\u70b9\u7684Pod\u8fdb\u884c\u89e3\u7ed1\uff0c\u4ee5\u4fbf\u53ef\u4ee5\u8c03\u5ea6Pod\u3002<\/p>\n<pre class=\"post-pre\"><code>kubectl taint nodes <span class=\"nt\">--all<\/span> node-role.kubernetes.io\/control-plane-\r\n<\/code><\/pre>\n<h2>5. \u8fde\u63a5\u5230Azure Arc.<\/h2>\n<p>\u6211\u4eec\u5c06\u628aKubernetes\u96c6\u7fa4\u8fde\u63a5\u5230Azure Arc\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u4f7f\u7528Azure CLI\u8fdb\u884c\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># CLI\u306b\u62e1\u5f35\u6a5f\u80fd\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span>\r\naz extension add <span class=\"nt\">--name<\/span> connectedk8s\r\n\r\n<span class=\"c\"># \u30b5\u30d6\u30b9\u30af\u30ea\u30d7\u30b7\u30e7\u30f3\u306b\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u767b\u9332<\/span>\r\naz provider register <span class=\"nt\">--namespace<\/span> Microsoft.Kubernetes\r\naz provider register <span class=\"nt\">--namespace<\/span> Microsoft.KubernetesConfiguration\r\naz provider register <span class=\"nt\">--namespace<\/span> Microsoft.ExtendedLocation\r\n\r\n<span class=\"c\"># \u767b\u9332\u5b8c\u4e86\u3092\u78ba\u8a8d<\/span>\r\naz provider show <span class=\"nt\">-n<\/span> Microsoft.Kubernetes <span class=\"nt\">-o<\/span> table\r\naz provider show <span class=\"nt\">-n<\/span> Microsoft.KubernetesConfiguration <span class=\"nt\">-o<\/span> table\r\naz provider show <span class=\"nt\">-n<\/span> Microsoft.ExtendedLocation <span class=\"nt\">-o<\/span> table\r\n\r\n<span class=\"c\"># \u30ea\u30bd\u30fc\u30b9\u30b0\u30eb\u30fc\u30d7\u3092\u4f5c\u6210<\/span>\r\naz group create <span class=\"nt\">-n<\/span> AzureML <span class=\"nt\">-l<\/span> japaneast\r\n\r\n<span class=\"c\"># Kubernetes\u30af\u30e9\u30b9\u30bf\u30fc\u3092Azure Arc\u306b\u63a5\u7d9a<\/span>\r\naz connectedk8s connect <span class=\"nt\">-n<\/span> GPUCluster <span class=\"nt\">-g<\/span> AzureML\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d275437434c4406c3bcf0\/80-0.png\" alt=\"image.png\" \/><\/div>\n<h1>\u6700\u540e<\/h1>\n<p>\u56e0\u4e3a\u8d1f\u62c5\u53d8\u5f97\u592a\u91cd\u4e86\uff0c\u6240\u4ee5\u6211\u4eec\u5c06\u5728GPU\u96c6\u6210\u7684Kubernetes\u96c6\u7fa4\u7684Azure Arc\u8fde\u63a5\u4e0a\u6682\u65f6\u505c\u4e0b\u6765\u3002\u6211\u4eec\u5c06\u5728\u53e6\u4e00\u7bc7\u6587\u7ae0\u4e2d\u4ecb\u7ecd\u5728Azure Machine Learning\u4e0a\u4f7f\u7528Kubernetes\u96c6\u7fa4\u7684\u60c5\u51b5\u3002\u656c\u8bf7\u671f\u5f85\u4e0b\u534a\u90e8\u5206\uff08\u8ba1\u5212\u4e2d\uff09\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u7531\u65bc Azure Advent Calender 2022 \u7684\u7b2c10\u5929\u7684\u65e5\u7a0b\u5c1a\u672a\u88ab\u5b89\u6392\uff0c\u6240\u4ee5\u6211\u586b\u5165\u4e86\u7a7a\u7f3a [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-36095","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5728Azure Machine Learning\u4e2d\u4f7f\u7528\u642d\u8f7dAzure Arc\u7684GPU\u7684Kubernetes\uff081\uff09Kubernetes\u914d\u7f6e\u90e8\u5206 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728azure-machine-learning\u4e2d\u4f7f\u7528\u642d\u8f7dazure-arc\u7684gpu\u7684kubernetes\uff081\uff09kubernetes\u914d\u7f6e\u90e8\u5206\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5728Azure Machine Learning\u4e2d\u4f7f\u7528\u642d\u8f7dAzure Arc\u7684GPU\u7684Kubernetes\uff081\uff09Kubernetes\u914d\u7f6e\u90e8\u5206\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u7531\u65bc Azure Advent Calender 2022 \u7684\u7b2c10\u5929\u7684\u65e5\u7a0b\u5c1a\u672a\u88ab\u5b89\u6392\uff0c\u6240\u4ee5\u6211\u586b\u5165\u4e86\u7a7a\u7f3a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5728azure-machine-learning\u4e2d\u4f7f\u7528\u642d\u8f7dazure-arc\u7684gpu\u7684kubernetes\uff081\uff09kubernetes\u914d\u7f6e\u90e8\u5206\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-29T21:29:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T21:57:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d275437434c4406c3bcf0\/80-0.png\" \/>\n<meta name=\"author\" content=\"\u96c5, \u609f\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u96c5, \u609f\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \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\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/\",\"name\":\"\u5728Azure Machine Learning\u4e2d\u4f7f\u7528\u642d\u8f7dAzure Arc\u7684GPU\u7684Kubernetes\uff081\uff09Kubernetes\u914d\u7f6e\u90e8\u5206 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-06-29T21:29:55+00:00\",\"dateModified\":\"2024-04-29T21:57:44+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5728Azure Machine Learning\u4e2d\u4f7f\u7528\u642d\u8f7dAzure Arc\u7684GPU\u7684Kubernetes\uff081\uff09Kubernetes\u914d\u7f6e\u90e8\u5206\"}]},{\"@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\/f044a4b7fa4ee2701702942002419ca6\",\"name\":\"\u96c5, \u609f\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g\",\"caption\":\"\u96c5, \u609f\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yawu\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5728Azure Machine Learning\u4e2d\u4f7f\u7528\u642d\u8f7dAzure Arc\u7684GPU\u7684Kubernetes\uff081\uff09Kubernetes\u914d\u7f6e\u90e8\u5206 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728azure-machine-learning\u4e2d\u4f7f\u7528\u642d\u8f7dazure-arc\u7684gpu\u7684kubernetes\uff081\uff09kubernetes\u914d\u7f6e\u90e8\u5206\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5728Azure Machine Learning\u4e2d\u4f7f\u7528\u642d\u8f7dAzure Arc\u7684GPU\u7684Kubernetes\uff081\uff09Kubernetes\u914d\u7f6e\u90e8\u5206","og_description":"\u9996\u5148 \u7531\u65bc Azure Advent Calender 2022 \u7684\u7b2c10\u5929\u7684\u65e5\u7a0b\u5c1a\u672a\u88ab\u5b89\u6392\uff0c\u6240\u4ee5\u6211\u586b\u5165\u4e86\u7a7a\u7f3a [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5728azure-machine-learning\u4e2d\u4f7f\u7528\u642d\u8f7dazure-arc\u7684gpu\u7684kubernetes\uff081\uff09kubernetes\u914d\u7f6e\u90e8\u5206\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-06-29T21:29:55+00:00","article_modified_time":"2024-04-29T21:57:44+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d275437434c4406c3bcf0\/80-0.png"}],"author":"\u96c5, \u609f","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u96c5, \u609f","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/","name":"\u5728Azure Machine Learning\u4e2d\u4f7f\u7528\u642d\u8f7dAzure Arc\u7684GPU\u7684Kubernetes\uff081\uff09Kubernetes\u914d\u7f6e\u90e8\u5206 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-06-29T21:29:55+00:00","dateModified":"2024-04-29T21:57:44+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/f044a4b7fa4ee2701702942002419ca6"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5728Azure Machine Learning\u4e2d\u4f7f\u7528\u642d\u8f7dAzure Arc\u7684GPU\u7684Kubernetes\uff081\uff09Kubernetes\u914d\u7f6e\u90e8\u5206"}]},{"@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\/f044a4b7fa4ee2701702942002419ca6","name":"\u96c5, \u609f","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e71a913e914f1aad1efc391f92084294bac54bc782acd289638580134cf667a6?s=96&d=mm&r=g","caption":"\u96c5, \u609f"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yawu\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%9c%a8azure-machine-learning%e4%b8%ad%e4%bd%bf%e7%94%a8%e6%90%ad%e8%bd%bdazure-arc%e7%9a%84gpu%e7%9a%84kubernetes%ef%bc%881%ef%bc%89kubernetes%e9%85%8d%e7%bd%ae%e9%83%a8%e5%88%86%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\/36095","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=36095"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36095\/revisions"}],"predecessor-version":[{"id":90115,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36095\/revisions\/90115"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=36095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=36095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=36095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}