{"id":35493,"date":"2023-10-06T09:03:00","date_gmt":"2023-08-29T22:27:08","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/"},"modified":"2024-05-04T03:03:49","modified_gmt":"2024-05-03T19:03:49","slug":"%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/","title":{"rendered":"\u642d\u5efaKubernetes\u7cfb\u7edf"},"content":{"rendered":"<h1>Kubernetes\u5efa\u8bbe<\/h1>\n<p>\u8fd9\u662f\u4e3a\u4e86\u5e38\u9a7b\u5c97\u4f4d\u5185\u90e8\u5b66\u4e60\u4f1a\u800c\u5199\u7684\u6587\u7ae0\uff0c\u4f46\u6211\u5c06\u5bf9\u6574\u4e2a\u516c\u53f8\u8fdb\u884c\u516c\u5f00\u3002\uff08\u8fd9\u662f\u7b2c\u4e00\u6b21\u8fdb\u884c\u6574\u4f53\u516c\u5f00\uff09<br \/>\n\u5982\u679c\u6709\u4efb\u4f55\u5efa\u8bae\uff0c\u8bf7\u5728\u8bc4\u8bba\u4e2d\u63d0\u51fa\u3002<\/p>\n<p>\u70ba\u4e86\u65b9\u4fbf\u8907\u88fd\u548c\u9ecf\u8cbc\uff0c\u6211\u6545\u610f\u6c92\u6709\u52a0\u4e0a&#8221;$&#8221;\u6a19\u8a18\u3002<\/p>\n<h2>Kubernetes\u548cNvidia Docker\u7684\u5efa\u7acb<\/h2>\n<h2>\u5df2\u9a8c\u8bc1\u73af\u5883<\/h2>\n<div>\n<div class=\"post-table\">OSARCHdocker Ver.ESXiUbuntu 18.04amd64Docker version 19.03.5, build 633a0ea8386.7 Custom ISOUbuntu 18.04ppc64leDocker version 18.06.1-ce, build e68fc7aNone<\/div>\n<\/div>\n<p>ppc64le \u5728 IBM Power System AC922 POWER9 \u4e2d\u8fdb\u884c\u9a8c\u8bc1\u3002<\/p>\n<p>\u5bb9\u5668\u955c\u50cf\u9700\u8981\u4e0e\u5404\u81ea\u7684\u67b6\u6784\u76f8\u9002\u5e94\u3002<\/p>\n<h2>Docker\u7684\u5b89\u88c5\uff08docker-ce\uff09<\/h2>\n<h3>\u5df2\u6709\u7684\u5378\u8f7d<\/h3>\n<p>sudo apt-get remove docker docker-engine docker.io containerd runc<\/p>\n<h3>Docker CE\u7684\u5b89\u88c5<\/h3>\n<pre class=\"post-pre\"><code><span class=\"c\"># \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u66f4\u65b0<\/span>\r\n<span class=\"nb\">sudo <\/span>apt-get update\r\n<span class=\"c\"># \u5fc5\u8981\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span>\r\n<span class=\"nb\">sudo <\/span>apt-get <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> <span class=\"se\">\\<\/span>\r\n    apt-transport-https <span class=\"se\">\\<\/span>\r\n    ca-certificates <span class=\"se\">\\<\/span>\r\n    curl <span class=\"se\">\\<\/span>\r\n    gnupg-agent <span class=\"se\">\\<\/span>\r\n    software-properties-common\r\n\r\n<span class=\"c\"># \u30ad\u30fc\u306e\u8ffd\u52a0<\/span>\r\ncurl <span class=\"nt\">-fsSL<\/span> https:\/\/download.docker.com\/linux\/ubuntu\/gpg | <span class=\"nb\">sudo <\/span>apt-key add -\r\n<span class=\"nb\">sudo <\/span>apt-key fingerprint 0EBFCD88\r\n\r\n<span class=\"c\"># \u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8ffd\u52a0<\/span>\r\n<span class=\"c\"># amd64<\/span>\r\n<span class=\"nb\">sudo <\/span>add-apt-repository <span class=\"se\">\\<\/span>\r\n   <span class=\"s2\">\"deb [arch=amd64] 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=\"se\">\\<\/span><span class=\"s2\">\r\n   stable\"<\/span>\r\n\r\n<span class=\"c\"># ppc64le<\/span>\r\n<span class=\"nb\">sudo <\/span>add-apt-repository <span class=\"se\">\\<\/span>\r\n   <span class=\"s2\">\"deb [arch=ppc64el] 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=\"se\">\\<\/span><span class=\"s2\">\r\n   stable\"<\/span>\r\n\r\n<span class=\"c\"># \u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u66f4\u65b0<\/span>\r\n<span class=\"nb\">sudo <\/span>apt-get update\r\n\r\n<span class=\"c\"># docker\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span>\r\n<span class=\"nb\">sudo <\/span>apt-get <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> docker-ce\r\n\r\n<span class=\"c\"># \u30e6\u30fc\u30b6\u30fc\u306e\u8ffd\u52a0<\/span>\r\n<span class=\"nb\">sudo <\/span>usermod <span class=\"nt\">-aG<\/span> docker <span class=\"nv\">$USER<\/span>\r\n\r\n<span class=\"c\"># docker\u30b5\u30fc\u30d3\u30b9\u306e\u81ea\u52d5\u8d77\u52d5<\/span>\r\n<span class=\"nb\">sudo <\/span>systemctl <span class=\"nb\">enable <\/span>docker\r\n\r\n<span class=\"c\"># docker\u30b5\u30fc\u30d3\u30b9\u306e\u8d77\u52d5<\/span>\r\n<span class=\"nb\">sudo <\/span>systemctl start docker\r\n\r\n\r\n<\/code><\/pre>\n<p>\u88dc\u8db3\u60c5\u5831<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u53ef\u80fd\u306a\u30ea\u30b9\u30c8<\/span>\r\napt-cache madison docker-ce\r\n\r\n<span class=\"c\"># \u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u6307\u5b9a\u3057\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span>\r\n<span class=\"nb\">sudo <\/span>apt-get <span class=\"nb\">install <\/span>docker-ce<span class=\"o\">=<\/span>&lt;VERSION_STRING&gt; docker-ce-cli<span class=\"o\">=<\/span>&lt;VERSION_STRING&gt; containerd.io\r\n<\/code><\/pre>\n<h2>\u5b89\u88c5 Kubernetes\uff08Master\/Worker\uff09<\/h2>\n<p>\u5982\u679c\u6ca1\u6709\u7279\u522b\u8bf4\u660e\uff0c\u90a3\u4e48Master\u548cWorker\u90fd\u8981\u8fdb\u884c\u5de5\u4f5c\u3002<\/p>\n<h3>\u5728\u5b58\u50a8\u5e93\u4e2d\u6ce8\u518c\u5bc6\u94a5\u3002<\/h3>\n<pre class=\"post-pre\"><code>curl <span class=\"nt\">-s<\/span> https:\/\/packages.cloud.google.com\/apt\/doc\/apt-key.gpg | <span class=\"nb\">sudo <\/span>apt-key add -\r\n<span class=\"nb\">sudo <\/span>apt-add-repository <span class=\"s2\">\"deb http:\/\/apt.kubernetes.io\/ kubernetes-xenial main\"<\/span>\r\n<\/code><\/pre>\n<h3>\u66f4\u65b0\u5b58\u50a8\u5e93<\/h3>\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=\"nt\">-y<\/span> kubelet kubeadm kubectl\r\n<span class=\"nb\">sudo <\/span>apt-mark hold kubelet kubeadm kubectl\r\n\r\n<span class=\"c\"># \u30d0\u30fc\u30b8\u30e7\u30f3\u6307\u5b9a<\/span>\r\n<span class=\"nb\">sudo <\/span>apt <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> <span class=\"nv\">kubelet<\/span><span class=\"o\">=<\/span>1.17.2-00 <span class=\"nv\">kubeadm<\/span><span class=\"o\">=<\/span>1.17.2-00 <span class=\"nv\">kubectl<\/span><span class=\"o\">=<\/span>1.17.2-00\r\n<\/code><\/pre>\n<h3>\u5173\u95ed\u6389\u4e92\u6362<\/h3>\n<pre class=\"post-pre\"><code><span class=\"c\">## \u90fd\u5ea6\u9069\u5fdc\uff1f<\/span>\r\n<span class=\"c\">## \/etc\/fstab\u3092\u524a\u9664\u3059\u308b\u3068\u6ce3\u304f\u3053\u3068\u306b\u306a\u308b -&gt; \u306a\u305c\u304bdocker\u304c\u7acb\u3061\u4e0a\u304c\u3089\u306a\u304f\u306a\u308b<\/span>\r\n<span class=\"nb\">sudo <\/span>swapoff <span class=\"nt\">-a<\/span>\r\n<\/code><\/pre>\n<p>\/etc\/fstab\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3092\u884c\u3046\u3053\u3068\u3067\u4e00\u65e6\u306f\u5bfe\u5fdc\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n<p>\u8bf7\u5728\u7ec8\u7aef\u4e2d\u8f93\u5165\u4ee5\u4e0b\u547d\u4ee4\uff1asudo nano \/etc\/fstab<\/p>\n<pre class=\"post-pre\"><code><span class=\"gd\">- \/swap.img      none    swap    sw      0       0\r\n<\/span><span class=\"gi\">+ #\/swap.img      none    swap    sw      0       0\r\n<\/span><\/code><\/pre>\n<h3>\u4f7f\u7528kubeadm\u8fdb\u884c\u8bbe\u7f6e(Master)\u3002<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>kubeadm init <span class=\"nt\">--pod-network-cidr<\/span><span class=\"o\">=<\/span>10.244.0.0\/16\r\n<\/code><\/pre>\n<h3>\u6dfb\u52a0 Kubernetes \u914d\u7f6e\uff08\u4e3b\u8282\u70b9\uff09<\/h3>\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<h3>\u7f16\u8f91iptables<\/h3>\n<p>\u5728\u4e2d\u56fd\u672c\u571f\u5316\u5730\u6539\u5199\u4ee5\u4e0b\u5185\u5bb9\uff0c\u53ea\u9700\u63d0\u4f9b\u4e00\u79cd\u9009\u9879\uff1a<br \/>\n\u5c06 sudo sysctl net.bridge.bridge-nf-call-iptables=1 \u6539\u5199\u6210\u4e2d\u6587\u3002<\/p>\n<p>\u5982\u679c\u4e0d\u8fd9\u6837\u505a\uff0ccore-dns\u7684pod\u5c06\u65e0\u6cd5\u542f\u52a8\u3002<\/p>\n<h3>\u5728\u4e3b\u8282\u70b9\u4e0a\u6dfb\u52a0flannel.yaml\u3002<\/h3>\n<p>\u4f7f\u7528kubectl\u547d\u4ee4\u5e94\u7528flannel.yml\u6587\u4ef6<\/p>\n<h3>\u5efa\u7acbLoadBranser\uff08\u4e3b\u63a7\u7aef\uff09\u3002<\/h3>\n<p>\u5e94\u7528metallb.yaml\u6587\u4ef6<\/p>\n<p>kubectl \u5e94\u7528 -f metallb.yaml<\/p>\n<p>\u5e94\u7528\u4e8eLAN\u5185\u5206\u914dIP\u7684yaml\u914d\u7f6e\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nn\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ConfigMap<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">metallb-system<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">config<\/span>\r\n<span class=\"na\">data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">config<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">|<\/span>\r\n    <span class=\"s\">address-pools:<\/span>\r\n    <span class=\"s\">- name: default<\/span>\r\n      <span class=\"s\">protocol: layer2<\/span>\r\n      <span class=\"s\">addresses:<\/span>\r\n      <span class=\"s\">- xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx # \u3053\u306e\u90e8\u5206\u3092LAN\u5185\u306eIP\u306b\u5909\u66f4\u3059\u308b<\/span>\r\n<\/code><\/pre>\n<h3>\u5982\u679c\u8981\u5728\u4e3b\u8282\u70b9\u4e0a\u8fdb\u884c\u90e8\u7f72\uff08\u5982\u5355\u4e3b\u8282\u70b9\u7ed3\u6784\u7b49\uff09<\/h3>\n<p>kubectl taint nodes \u540d\u79f0\u7a7a\u95f4 node-role.kubernetes.io\/master:NoSchedule-<\/p>\n<p>\u53ef\u4ee5\u4f7f\u7528 &#8220;kubectl get node&#8221; \u547d\u4ee4\u83b7\u53d6\u540d\u79f0\u7a7a\u95f4\u90e8\u5206\uff08Master \u7684\u540d\u79f0\uff09\uff0c\u7136\u540e\u8fdb\u884c\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code>kubectl describe node node\u540d\r\n\r\n<span class=\"c\"># ~~ \u4e2d\u7565 ~~<\/span>\r\nTaints:             &lt;none&gt;\r\n<span class=\"c\"># ~~ \u4e2d\u7565 ~~<\/span>\r\n<span class=\"c\"># \u4e0a\u8a18\u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d<\/span>\r\n<\/code><\/pre>\n<h3>\u7ed9Master\u6dfb\u52a0\u4e00\u4e2a\u8282\u70b9\uff08Worker\uff09\u3002<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>kubeadm <span class=\"nb\">join <\/span>xxx.xxx.xxx.xxx:6443 <span class=\"nt\">--token<\/span> xxxxxx.xxxxxxxxxxxxx <span class=\"nt\">--discovery-token-ca-cert-hash<\/span> sha256:xxxxxxx\r\n<\/code><\/pre>\n<p>\u5728\u6784\u5efaMaster\u65f6\uff0c\u8bbe\u7f6e&#8211;token\u548c&#8211;discovery-token-ca-cert-hash\u9009\u9879\u4f1a\u6700\u540e\u663e\u793a\u3002<\/p>\n<h3>\u4ee4\u724c\u5931\u53bb\u540e(Master)<\/h3>\n<pre class=\"post-pre\"><code><span class=\"c\"># token\u304c\u4e0d\u660e\u306b\u306a\u3063\u305f\u5834\u5408\u306f\u518d\u5ea6\u767a\u884c\u3059\u308c\u3070\u826f\u3044<\/span>\r\nkubeadm token create <span class=\"nt\">--print-join-command<\/span>\r\n<\/code><\/pre>\n<h3>\u786e\u8ba4\u4e3b\u8282\u70b9\u662f\u5426\u5df2\u6dfb\u52a0\u3002<\/h3>\n<pre class=\"post-pre\"><code>kubectl get nodes\r\nNAME           STATUS   ROLES    AGE     VERSION\r\nMaster         Ready    master   3m11s   v1.17.1\r\nNode1          Ready    &lt;none&gt;   2m10s   v1.17.1\r\n<\/code><\/pre>\n<h3>\u6b64\u5904\u4e3aDashBorad(v2.0.0-rc2)\u7684\u90e8\u7f72\uff08\u4ee5\u4e0b\u4e3a\u5728Master\u4e0a\u7684\u64cd\u4f5c\uff09\u3002<\/h3>\n<p>\u5982\u679c\u4eceKubernetes\u5b58\u50a8\u5e93\u76f4\u63a5\u90e8\u7f72\uff0c\u53ea\u80fd\u4ece\u96c6\u7fa4\u5185\u90e8\u8bbf\u95ee\uff0c\u56e0\u6b64\u9700\u8981\u90e8\u7f72recommended.yaml\u5e76\u8bbe\u7f6eNodePort\u3002\u4f46\u662f\uff0c\u5373\u4f7f\u4ece\u5b58\u50a8\u5e93\u76f4\u63a5\u90e8\u7f72\u5e76\u8bbe\u7f6eNodePort\uff0c\u4e5f\u4f1a\u9047\u5230\u7c7b\u4f3c\u4e8e\u95ee\u9898\u4e2d\u7684\u9519\u8bef\uff0c\u56e0\u6b64\u8fd9\u91cc\u4f7f\u7528\u5df2\u7ecf\u51c6\u5907\u597d\u7684dashboard\/recommended.yaml\u3002\u53e6\u5916\uff0c\u5728\u8fdb\u884c\u6b64\u64cd\u4f5c\u65f6\u9700\u8981\u8fdb\u884c\u8bc1\u4e66\u914d\u7f6e\uff0c\u8bf7\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\u3002<\/p>\n<h3>\u9886\u53d6\u81ea\u5df1\u7684\u8bc1\u4e66<\/h3>\n<pre class=\"post-pre\"><code><span class=\"nb\">mkdir <\/span>certs\r\nopenssl req <span class=\"nt\">-nodes<\/span> <span class=\"nt\">-newkey<\/span> rsa:2048 <span class=\"nt\">-keyout<\/span> certs\/dashboard.key <span class=\"nt\">-out<\/span> certs\/dashboard.csr <span class=\"nt\">-subj<\/span> <span class=\"s2\">\"\/C=JP\/ST=kubernetes\/L=kubernetes\/O=kubernetes\/OU=kubernetes\/CN=kubernetes-dashboard\"<\/span>\r\nopenssl x509 <span class=\"nt\">-req<\/span> <span class=\"nt\">-sha256<\/span> <span class=\"nt\">-days<\/span> 365 <span class=\"nt\">-in<\/span> certs\/dashboard.csr <span class=\"nt\">-signkey<\/span> certs\/dashboard.key <span class=\"nt\">-out<\/span> certs\/dashboard.crt\r\n\r\n<\/code><\/pre>\n<h3>\u5982\u679c\u76f4\u63a5\u90e8\u7f72\uff0c\u5220\u9664\u5df2\u7ecf\u5b9a\u4e49\u7684\u90e8\u5206\u3002<\/h3>\n<pre class=\"post-pre\"><code><span class=\"c\"># \u524a\u9664<\/span>\r\nkubectl <span class=\"nt\">-n<\/span> kubernetes-dashboard delete secret kubernetes-dashboard-certs\r\n<\/code><\/pre>\n<h3>\u4f7f\u8bc1\u660e\u4e66\u80fd\u591f\u4ecepod\u4f7f\u7528\u3002<\/h3>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">certs\/dashboard.crt<\/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\">certs\/dashboard.csr<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">certs\/dashboard.key<\/ul>\n<p>\u5c06\u4e0a\u8ff0\u7684\u8bc1\u4e66\u6587\u4ef6\u8f6c\u6362\u4e3a\u80fd\u591f\u8bbe\u7f6e\u5230 Secret \u5bf9\u8c61\u4e2d\u7684\u5f62\u5f0f\uff08\u4e0d\u5305\u542b\u6362\u884c\u7b26\uff0c\u4ee5\u4e00\u884c\u8bbe\u7f6e\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># base64\u5f62\u5f0f\u3067\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u306e\u3067base64\u30b3\u30de\u30f3\u30c9\u3067\u8a2d\u5b9a\u3059\u308b<\/span>\r\n<span class=\"c\"># \u305d\u308c\u305e\u308c\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u5b9f\u65bd\u3059\u308b<\/span>\r\n<span class=\"c\"># certs\/dashboard.crt<\/span>\r\n<span class=\"c\"># certs\/dashboard.csr<\/span>\r\n<span class=\"c\"># certs\/dashboard.key<\/span>\r\n<span class=\"nb\">cat <\/span>certs\/dashboard.crt | <span class=\"nb\">base64\r\ncat <\/span>certs\/dashboard.csr | <span class=\"nb\">base64\r\ncat <\/span>certs\/dashboard.key | <span class=\"nb\">base64<\/span>\r\n<\/code><\/pre>\n<p>\u5efa\u8bae\u4fee\u6539 recommended.yaml<\/p>\n<pre class=\"post-pre\"><code><span class=\"nn\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"s\">dashboard.crt<\/span><span class=\"pi\">:<\/span> <span class=\"s\">base64\u306b\u5909\u63db\u3055\u308c\u305f.crt\u30d5\u30a1\u30a4\u30eb\u3092\u8a18\u8ff0<\/span>\r\n  <span class=\"s\">dashboard.csr<\/span><span class=\"pi\">:<\/span> <span class=\"s\">base64\u306b\u5909\u63db\u3055\u308c\u305f.crs\u30d5\u30a1\u30a4\u30eb\u3092\u8a18\u8ff0<\/span>\r\n  <span class=\"s\">dashboard.key<\/span><span class=\"pi\">:<\/span> <span class=\"s\">base64\u306b\u5909\u63db\u3055\u308c\u305f.key\u30d5\u30a1\u30a4\u30eb\u3092\u8a18\u8ff0<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Secret<\/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\">kubernetes-dashboard-certs<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">kubernetes-dashboard<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">k8s-app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">kubernetes-dashboard<\/span>\r\n<span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Opaque<\/span>\r\n<\/code><\/pre>\n<p>\u7533\u8bf7\u5427\uff01<\/p>\n<p>\u4f7f\u7528kubectl apply\u547d\u4ee4\u5e94\u7528dashboard\/recommended.yaml\u6587\u4ef6\u3002<\/p>\n<h3>\u8bf7\u8bbe\u7f6e\u767b\u5f55\u4ee4\u724c<\/h3>\n<p>\u5728\u767b\u5f55\u754c\u9762\u4e0a\uff0c\u9700\u8981\u8f93\u5165\u4ee4\u724c\uff08token\uff09\u6216kubeconfig\u6587\u4ef6\u3002<br \/>\n\u5728\u672c\u6b21\u8bb0\u5f55\u4e2d\uff0c\u5c06\u8bf4\u660e\u4f7f\u7528\u4ee4\u724c\u8fdb\u884c\u767b\u5f55\u7684\u65b9\u6cd5\u3002<\/p>\n<ul class=\"post-ul\">token \u3092\u767a\u884c\u3059\u308b\u30e6\u30fc\u30b6\u30fc\u306e apply<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ServiceAccount<\/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\">admin-user<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">kubernetes-dashboard<\/span>\r\n<span class=\"nn\">---<\/span>\r\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io\/v1beta1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterRoleBinding<\/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\">admin-user<\/span>\r\n<span class=\"na\">roleRef<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">apiGroup<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io<\/span>\r\n  <span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ClusterRole<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">cluster-admin<\/span>\r\n<span class=\"na\">subjects<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ServiceAccount<\/span>\r\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">admin-user<\/span>\r\n    <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">kubernetes-dashboard<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>kubectl apply <span class=\"nt\">-f<\/span> admin-user.yaml\r\nkubectl get secret <span class=\"nt\">-n<\/span> kubernetes-dashboard | <span class=\"nb\">grep <\/span>admin\r\n  admin-user-token-xxxx             kubernetes.io\/service-account-token   3\r\nkubectl describe secret <span class=\"nt\">-n<\/span> kubernetes-dashboard admin-user-token-xxxxx\r\n<\/code><\/pre>\n<p>\u590d\u5236\u6240\u663e\u793a\u7684\u4ee4\u724c\u3002<\/p>\n<p>\u9009\u62e9\u4e00\u4e2a\u4ee4\u724c\uff0c\u5e76\u5c06\u5176\u7c98\u8d34\u4e3a\u767b\u5f55\u51ed\u8bc1\uff0c\u7136\u540e\u8fdb\u884c\u767b\u5f55\u64cd\u4f5c\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d239d37434c4406c2b603\/72-0.png\" alt=\"dashboard\" \/><\/div>\n<h2>GPU\u652f\u6301\uff08\u4ee5\u4e0b\uff0cWorker\u4e2d\u7684\u5de5\u4f5c\uff09<\/h2>\n<p>\u5982\u679c\u8981\u5728ESXi\u4e0a\u652f\u6301Ubuntu\uff0c\u8bf7\u5728\u4ee5\u4e0b\u8bbe\u7f6e\u4e2d\u8bbe\u7f6e\uff08\u5728\u5173\u95ed\u72b6\u6001\u4e0b\uff09\u3002<\/p>\n<h3>\u8bbe\u7f6eGPU\u76f4\u901a\u3002<\/h3>\n<p>\u4e3b\u673a &gt; \u7ba1\u7406 &gt; \u786c\u4ef6 &gt; \u9009\u62e9\u76f8\u5e94\u7684GPU\uff0c\u70b9\u51fb\u5207\u6362\u900f\u4f20 &gt; \u91cd\u65b0\u542f\u52a8<\/p>\n<h3>\u6dfb\u52a0PCI\u8bbe\u5907<\/h3>\n<p>\u8a2d\u5b9a\u306e\u7de8\u96c6\u304b\u3089PCI\u30c7\u30d0\u30a4\u30b9\u306e\u8ffd\u52a0<br \/>\nGPU\u4ee5\u5916\u306b\u30d1\u30b9\u30b9\u30eb\u30fc\u3055\u308c\u3066\u308b\u3082\u306e\u3082\u4e00\u7dd2\u306b\u8ffd\u52a0\u3059\u308b<\/p>\n<h3>\u5c06\u5ba2\u673a\u64cd\u4f5c\u7cfb\u7edf\u8bbe\u7f6e\u4e3a\u53ef\u4ee5\u8bc6\u522bGPU\u3002<\/h3>\n<p>\u5728\u865a\u62df\u673a\u9009\u9879\u7684\u8be6\u7ec6\u8bbe\u7f6e\u4e2d\uff0c\u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\u5230\u7f16\u8f91\u914d\u7f6e\u4e2d\u3002<\/p>\n<div>\n<div class=\"post-table\">\u30ad\u30fc\u5024hypervisor.cpuid.v0FALSE<\/div>\n<\/div>\n<h3>\u786e\u8ba4\u663e\u5361<\/h3>\n<p>lspci | grep -i nvidia<br \/>\n\u8fd0\u884c lspci \u547d\u4ee4\uff0c\u7b5b\u9009\u5305\u542b NVIDIA \u7684\u7ed3\u679c\u3002<\/p>\n<p>\u5982\u679c\u672a\u6b63\u786e\u663e\u793a\uff0c\u8bf7\u66f4\u65b0\u4fe1\u606f\u3002<\/p>\n<p>\u8bf7\u4f7f\u7528sudo\u547d\u4ee4\u66f4\u65b0pciids\u3002<\/p>\n<h2>CUDA\u7684\u5b89\u88c5\uff08\u4e0d\u9700\u8981docker:v19.03\uff09\u3002<\/h2>\n<p>\u4ece\u4ee5\u4e0b\u7f51\u7ad9\u4e0b\u8f7d\u5e76\u5b89\u88c5\u9002\u7528\u4e8e\u60a8\u7684GPU\u7684CUDA\u3002<\/p>\n<p>CUDA\u5de5\u5177\u5305<\/p>\n<pre class=\"post-pre\"><code>wget https:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/ubuntu1804\/x86_64\/cuda-ubuntu1804.pin\r\n<span class=\"nb\">sudo mv <\/span>cuda-ubuntu1804.pin \/etc\/apt\/preferences.d\/cuda-repository-pin-600\r\n<span class=\"nb\">sudo <\/span>apt-key adv <span class=\"nt\">--fetch-keys<\/span> https:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/ubuntu1804\/x86_64\/7fa2af80.pub\r\n<span class=\"nb\">sudo <\/span>add-apt-repository <span class=\"s2\">\"deb http:\/\/developer.download.nvidia.com\/compute\/cuda\/repos\/ubuntu1804\/x86_64\/ \/\"<\/span>\r\n<span class=\"nb\">sudo <\/span>apt-get update\r\n<span class=\"nb\">sudo <\/span>apt-get <span class=\"nt\">-y<\/span> <span class=\"nb\">install <\/span>cuda\r\n<\/code><\/pre>\n<p>\u5728.bashrc\u4e2d\u6dfb\u52a0\u8def\u5f84<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">export <\/span><span class=\"nv\">PATH<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"\/usr\/local\/cuda\/bin:<\/span><span class=\"nv\">$PATH<\/span><span class=\"s2\">\"<\/span>\r\n<span class=\"nb\">export <\/span><span class=\"nv\">LD_LIBRARY_PATH<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"\/usr\/local\/cuda\/lib64:<\/span><span class=\"nv\">$LD_LIBRARY_PATH<\/span><span class=\"s2\">\"<\/span>\r\n<\/code><\/pre>\n<p>\u8fdb\u884c\u91cd\u65b0\u542f\u52a8<\/p>\n<p>\u8bf7\u7acb\u5373\u91cd\u542f\u7cfb\u7edf<\/p>\n<h2>\u5b89\u88c5NVIDIA\u56fe\u5f62\u9a71\u52a8\u7a0b\u5e8f<\/h2>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>add-apt-repository ppa:graphics-drivers\/ppa\r\n<span class=\"nb\">sudo <\/span>apt update\r\n<\/code><\/pre>\n<p>\u5b89\u88c5\u63a8\u8350\u9a71\u52a8\u5668\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>apt <span class=\"nt\">-y<\/span> <span class=\"nb\">install <\/span>ubuntu-drivers-common\r\n<span class=\"nb\">sudo <\/span>ubuntu-drivers autoinstall\r\n<\/code><\/pre>\n<h2>\u5b89\u88c5NVIDIA\u5bb9\u5668\u5de5\u5177\u5305\u3002<\/h2>\n<p>\u4e3a\u4e86\u5b89\u88c5NVIDIA Container Toolkit\uff0c\u9700\u8981\u5c06apt\u5b58\u50a8\u5e93\u6dfb\u52a0\u81f3\u673a\u5668\u4e2d\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\">-s<\/span> <span class=\"nt\">-L<\/span> https:\/\/nvidia.github.io\/nvidia-docker\/gpgkey | <span class=\"nb\">sudo <\/span>apt-key add -\r\ncurl <span class=\"nt\">-s<\/span> <span class=\"nt\">-L<\/span> https:\/\/nvidia.github.io\/nvidia-docker\/<span class=\"nv\">$distribution<\/span>\/nvidia-docker.list | <span class=\"nb\">sudo tee<\/span> \/etc\/apt\/sources.list.d\/nvidia-docker.list\r\n<\/code><\/pre>\n<p>\u5b89\u88c5NVIDIA\u5bb9\u5668\u5de5\u5177\u5305\u5e76\u91cd\u65b0\u542f\u52a8Docker\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>apt-get update <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">sudo <\/span>apt-get <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> nvidia-container-toolkit\r\n<span class=\"nb\">sudo <\/span>systemctl restart docker\r\n<\/code><\/pre>\n<p>\u8fdb\u884c\u91cd\u65b0\u542f\u52a8<\/p>\n<p>\u73b0\u5728\u91cd\u65b0\u542f\u52a8\uff0c\u4f7f\u7528sudo shutdown -r\u3002<\/p>\n<p>\u5b89\u88c5\u540e\u7684\u786e\u8ba4<br \/>\n\u53ef\u4ee5\u786e\u8ba4\u9a71\u52a8\u7a0b\u5e8f\u548cCUDA\u7684\u7248\u672c<\/p>\n<pre class=\"post-pre\"><code>nvidia-container-cli info\r\n\r\nNVRM version:   440.48.02\r\nCUDA version:   10.2\r\n\r\nDevice Index:   0\r\nDevice Minor:   0\r\nModel:          GeForce RTX 2070\r\nBrand:          GeForce\r\nGPU UUID:       GPU-2318f1ba-cc45-3c5b-a000-798ad9ba8390\r\nBus Location:   00000000:0b:00.0\r\nArchitecture:   7.5\r\n<\/code><\/pre>\n<p>\u786e\u8ba4 Docker \u662f\u5426\u53ef\u7528\u3002<\/p>\n<pre class=\"post-pre\"><code>docker run <span class=\"nt\">--rm<\/span> <span class=\"nt\">--gpus<\/span> all <span class=\"nt\">-it<\/span> ubuntu nvidia-smi\r\n\r\n+-----------------------------------------------------------------------------+\r\n| NVIDIA-SMI 440.48.02    Driver Version: 440.48.02    CUDA Version: N\/A      |\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|<span class=\"o\">===============================<\/span>+<span class=\"o\">======================<\/span>+<span class=\"o\">======================<\/span>|\r\n|   0  GeForce RTX 2070    Off  | 00000000:0B:00.0 Off |                  N\/A |\r\n| 29%   33C    P8    21W \/ 175W |      0MiB \/  7982MiB |      0%      Default |\r\n+-------------------------------+----------------------+----------------------+\r\n\r\n+-----------------------------------------------------------------------------+\r\n| Processes:                                                       GPU Memory |\r\n|  GPU       PID   Type   Process name                             Usage      |\r\n|<span class=\"o\">=============================================================================<\/span>|\r\n|  No running processes found                                                 |\r\n+-----------------------------------------------------------------------------+\r\n<\/code><\/pre>\n<h3>\u8ba9Kubernetes\u8bc6\u522bGPU<\/h3>\n<p>\u8bf7\u5728docker:v19.03\u7248\u672c\u4e2d\u5b89\u88c5nvidia-container-runtime\u3002<\/p>\n<p>\u8bf7\u901a\u8fc7 sudo apt-get install nvidia-container-runtime \u547d\u4ee4\u5b89\u88c5NVIDIA\u5bb9\u5668\u8fd0\u884c\u65f6\u3002<\/p>\n<p>kubernetes\u304b\u3089\u4f7f\u7528\u51fa\u6765\u308b\u3088\u3046\u306bDocker\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u30e9\u30f3\u30bf\u30a4\u30e0\u3092GPU\u306b\u5909\u66f4<\/p>\n<pre class=\"post-pre\"><code><span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"default-runtime\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"nvidia\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"runtimes\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"nl\">\"nvidia\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n            <span class=\"nl\">\"path\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"\/usr\/bin\/nvidia-container-runtime\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"nl\">\"runtimeArgs\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[]<\/span>\r\n        <span class=\"p\">}<\/span>\r\n    <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>gpu-plugin\u3092\u9069\u7528(Master)<\/p>\n<p>kubectl\u5e94\u7528 -f https:\/\/raw.githubusercontent.com\/ncs-nozomi-nishinohara\/kubernetes-Construction\/master\/nvidia-device-plugin.yml<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes\u5efa\u8bbe \u8fd9\u662f\u4e3a\u4e86\u5e38\u9a7b\u5c97\u4f4d\u5185\u90e8\u5b66\u4e60\u4f1a\u800c\u5199\u7684\u6587\u7ae0\uff0c\u4f46\u6211\u5c06\u5bf9\u6574\u4e2a\u516c\u53f8\u8fdb\u884c\u516c\u5f00\u3002\uff08\u8fd9\u662f\u7b2c\u4e00\u6b21\u8fdb\u884c\u6574\u4f53 [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-35493","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>\u642d\u5efaKubernetes\u7cfb\u7edf - 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\/\u642d\u5efakubernetes\u7cfb\u7edf\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u642d\u5efaKubernetes\u7cfb\u7edf\" \/>\n<meta property=\"og:description\" content=\"Kubernetes\u5efa\u8bbe \u8fd9\u662f\u4e3a\u4e86\u5e38\u9a7b\u5c97\u4f4d\u5185\u90e8\u5b66\u4e60\u4f1a\u800c\u5199\u7684\u6587\u7ae0\uff0c\u4f46\u6211\u5c06\u5bf9\u6574\u4e2a\u516c\u53f8\u8fdb\u884c\u516c\u5f00\u3002\uff08\u8fd9\u662f\u7b2c\u4e00\u6b21\u8fdb\u884c\u6574\u4f53 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u642d\u5efakubernetes\u7cfb\u7edf\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-29T22:27:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-03T19:03:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d239d37434c4406c2b603\/72-0.png\" \/>\n<meta name=\"author\" content=\"\u6e05, \u626c\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u626c\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \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\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/\",\"name\":\"\u642d\u5efaKubernetes\u7cfb\u7edf - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-08-29T22:27:08+00:00\",\"dateModified\":\"2024-05-03T19:03:49+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u642d\u5efaKubernetes\u7cfb\u7edf\"}]},{\"@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\/cb5556d2501da73d864cac945e8d9461\",\"name\":\"\u6e05, \u626c\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u626c\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u642d\u5efaKubernetes\u7cfb\u7edf - 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\/\u642d\u5efakubernetes\u7cfb\u7edf\/","og_locale":"zh_CN","og_type":"article","og_title":"\u642d\u5efaKubernetes\u7cfb\u7edf","og_description":"Kubernetes\u5efa\u8bbe \u8fd9\u662f\u4e3a\u4e86\u5e38\u9a7b\u5c97\u4f4d\u5185\u90e8\u5b66\u4e60\u4f1a\u800c\u5199\u7684\u6587\u7ae0\uff0c\u4f46\u6211\u5c06\u5bf9\u6574\u4e2a\u516c\u53f8\u8fdb\u884c\u516c\u5f00\u3002\uff08\u8fd9\u662f\u7b2c\u4e00\u6b21\u8fdb\u884c\u6574\u4f53 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u642d\u5efakubernetes\u7cfb\u7edf\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-08-29T22:27:08+00:00","article_modified_time":"2024-05-03T19:03:49+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d239d37434c4406c2b603\/72-0.png"}],"author":"\u6e05, \u626c","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u626c","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"5 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/","name":"\u642d\u5efaKubernetes\u7cfb\u7edf - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-08-29T22:27:08+00:00","dateModified":"2024-05-03T19:03:49+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u642d\u5efaKubernetes\u7cfb\u7edf"}]},{"@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\/cb5556d2501da73d864cac945e8d9461","name":"\u6e05, \u626c","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/32a4239de8ff29adace466261d309424a1e5fe9f7e3036bf89fe03f2e3dbe717?s=96&d=mm&r=g","caption":"\u6e05, \u626c"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%90%ad%e5%bb%bakubernetes%e7%b3%bb%e7%bb%9f\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35493","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=35493"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35493\/revisions"}],"predecessor-version":[{"id":95727,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/35493\/revisions\/95727"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=35493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=35493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=35493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}