{"id":36234,"date":"2023-06-12T17:11:58","date_gmt":"2023-07-17T01:47:43","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/"},"modified":"2024-04-30T08:32:55","modified_gmt":"2024-04-30T00:32:55","slug":"%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/","title":{"rendered":"\u5b66\u4e60Kubernetes &#8211; \u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5"},"content":{"rendered":"<h1>\u4e66\u7c4d\u7684\u76ee\u5f55<\/h1>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u524d\u6b21\u590d\u4e60<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u5065\u5eb7\u68c0\u67e5\u529f\u80fd\u662f\u4ec0\u4e48<\/ol>\n<\/li>\n<\/ol>\n<p>\u5065\u5eb7\u68c0\u67e5\u7684\u7c7b\u578b<br \/>\n\u5904\u7406\u5668<br \/>\n\u5b9e\u8df5<\/p>\n<p>\u5173\u4e8e\u672f\u8bed<br \/>\n\u540e\u8bb0<\/p>\n<h1>\u4e4b\u524d\u7684\u590d\u4e60<\/h1>\n<p>\u4e0a\u6b21\u5b66\u4e60Kubernetes\u7684\u7b2c4\u8282\u662f\u5173\u4e8e\u6e05\u5355\u6587\u4ef6\u548c\u63a7\u5236\u5668\u7684\u4ecb\u7ecd\u3002\u6211\u5c1d\u8bd5\u63cf\u8ff0\u4e86YAML\u683c\u5f0f\u7684\u4e00\u4e9b\u7279\u70b9\u4ee5\u53ca\u5bf9\u63a7\u5236\u5668\u7c7b\u578b\u7684\u7406\u89e3\u3002\u6211\u4e5f\u6709\u4e00\u4e9b\u6545\u969c\u6392\u9664\u7684\u7ecf\u9a8c\uff0c\u611f\u89c9\u5f88\u597d\u3002<\/p>\n<h1>\u5065\u5eb7\u68c0\u67e5\u529f\u80fd\u662f\u4ec0\u4e48\uff1f<\/h1>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d281937434c4406c3f01d\/5-0.png\" alt=\"03.PNG\" \/><\/div>\n<h2>\u5065\u5eb7\u68c0\u67e5\u7684\u7c7b\u578b<\/h2>\n<p>kubelet\u7684\u5065\u5eb7\u68c0\u67e5\u4f1a\u4f7f\u7528\u4e24\u79cd\u7c7b\u578b\u7684\u63a2\u9488\u8fdb\u884c\u68c0\u67e5\u3002<\/p>\n<h3>\u5b58\u6d3b\u63a2\u9488 (Liveness Probe)<\/h3>\n<p>\u68c0\u67e5\u5bb9\u5668\u662f\u5426\u6b63\u5728\u8fd0\u884c\uff0c\u4f8b\u5982\uff0c\u5e94\u7528\u7a0b\u5e8f\u662f\u5426\u65e0\u54cd\u5e94\u3002<br \/>\n\u5982\u679c\u6ca1\u6709Liveness Probe\u7684\u63cf\u8ff0\u5728\u6e05\u5355\u4e2d\uff0c\u5c06\u4e0d\u4f1a\u68c0\u67e5\u5e76\u5f3a\u5236\u7ec8\u6b62\u5bb9\u5668\u7684\u8fd0\u884c\u3002<\/p>\n<h3>\u5065\u5eb7\u68c0\u67e5\u63a2\u9488\uff08Readiness Probe\uff09\u7684\u51c6\u5907\u72b6\u6001<\/h3>\n<p>\u68c0\u67e5\u5bb9\u5668\u5e94\u7528\u7a0b\u5e8f\u662f\u5426\u80fd\u591f\u63a5\u53d7\u8bf7\u6c42\u3002\u4f8b\u5982\uff0c\u5982\u679c\u5728\u521d\u59cb\u52a0\u8f7d\u8fc7\u7a0b\u4e2d\u53d8\u5f97\u8fc7\u91cd\u800c\u65e0\u6cd5\u8fd4\u56de\u8bf7\u6c42\uff0c\u6216\u8005\u6ca1\u6709\u54cd\u5e94\uff0c\u5c06\u4e0d\u4f1a\u8f6c\u53d1\u8bf7\u6c42\u3002<\/p>\n<p>\u5982\u679c\u5728\u6e05\u5355\u4e2d\u6ca1\u6709\u7ed9\u51faReadiness Probe\u7684\u63cf\u8ff0\uff0c\u5c06\u4e0d\u4f1a\u8fdb\u884c\u68c0\u67e5\uff0c\u5e76\u4e14\u5c06\u7ee7\u7eed\u8f6c\u53d1\u8bf7\u6c42\u3002<\/p>\n<h2>\u5904\u7406\u7a0b\u5e8f<\/h2>\n<p>\u4f20\u7edf\u7684\u8d1f\u8f7d\u5747\u8861\u5668\u5728\u8fdb\u884c\u5065\u5eb7\u68c0\u67e5\u65f6\uff0c\u901a\u5e38\u4f1a\u901a\u8fc7HTTP\u68c0\u67e5\u5bb9\u5668\u662f\u5426\u5b58\u6d3b\uff0c\u800c\u540c\u6837\uff0c\u5bb9\u5668\u4e2d\u7684Pod\u4e5f\u9700\u8981\u5b9e\u73b0\u4e0e\u63a2\u9488\u76f8\u5bf9\u5e94\u7684\u5904\u7406\u7a0b\u5e8f\u3002<br \/>\n\u5904\u7406\u7a0b\u5e8f\u6709\u4e09\u79cd\u7c7b\u578b\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">exec<\/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\">tcpSocket<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">httpGet<\/ul>\n<h3>\u6267\u884c<\/h3>\n<p>\u5728\u5bb9\u5668\u5185\u6267\u884c\u547d\u4ee4\u3002\u5f53EXIT\u4ee3\u7801\u4e3a0\u65f6\uff0c\u8bca\u65ad\u6210\u529f\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">livenessProbe<\/span><span class=\"pi\">:<\/span> \r\n <span class=\"na\">exec<\/span><span class=\"pi\">:<\/span> \r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> \r\n  <span class=\"pi\">-<\/span> <span class=\"na\">cat<\/span><span class=\"pi\">:<\/span> \r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/tmp\/healthy<\/span>\r\n <span class=\"na\">initialDelaySeconds<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3<\/span> <span class=\"c1\">#\u521d\u56de\u8d77\u52d5\u304b\u3089\u63a2\u67fb\u958b\u59cb\u307e\u3067\u306e\u7336\u4e88\u6642\u9593\uff08\u79d2\uff09<\/span>\r\n <span class=\"na\">periodSeconds<\/span><span class=\"pi\">:<\/span> <span class=\"m\">5<\/span> <span class=\"c1\">#\u30c1\u30a7\u30c3\u30af\u9593\u9694\uff08\u79d2\uff09<\/span>\r\n <span class=\"na\">timeoutSeconds<\/span><span class=\"pi\">:<\/span> <span class=\"m\">2<\/span> <span class=\"c1\">#\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3092\u6307\u5b9a\uff08\u79d2\uff09\u30c7\u30d5\u30a9\u306f\uff11\u79d2<\/span>\r\n <span class=\"na\">successThreshold<\/span><span class=\"pi\">:<\/span> <span class=\"m\">2<\/span> <span class=\"c1\">#Probe\u304c\u6210\u529f\u3057\u305f\u3068\u5224\u65ad\u3059\u308b\u6700\u5c0f\u56de\u6570\u3092\u6307\u5b9a \u30c7\u30d5\u30a9\u306f\uff11\u56de<\/span>\r\n <span class=\"na\">failureThreshold<\/span><span class=\"pi\">:<\/span> <span class=\"m\">5<\/span> <span class=\"c1\">#Probe\u304c\u5931\u6557\u3057\u305f\u3068\u5224\u65ad\u3059\u308b\u6700\u5c0f\u56de\u6570\u3092\u6307\u5b9a \u30c7\u30d5\u30a9\u306f\uff13\u56de<\/span>\r\n<\/code><\/pre>\n<h3>TCP\u5957\u63a5\u5b57<\/h3>\n<p>\u5982\u679c\u80fd\u591f\u901a\u8fc7\u6307\u5b9a\u7684TCP\u7aef\u53e3\u53f7\u5efa\u7acb\u8fde\u63a5\uff0c\u90a3\u4e48\u8bf4\u660e\u8bca\u65ad\u6210\u529f\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">readinessProbe<\/span><span class=\"pi\">:<\/span> \r\n <span class=\"na\">tcpSocket<\/span><span class=\"pi\">:<\/span> \r\n  <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"s\">80<\/span> \r\n<\/code><\/pre>\n<h3>\u83b7\u53d6HTTP<\/h3>\n<p>\u5b9a\u671f\u7684\u306b\u5728\u6307\u5b9a\u7684\u8def\u5f84\u548c\u7aef\u53e3\u8fdb\u884cHTTP GET\u8bf7\u6c42\uff0c\u82e5HTTP\u72b6\u6001\u7801\u4e3a200\u81f3400\u4e4b\u95f4\uff0c\u5219\u5224\u65ad\u4e3a\u8bca\u65ad\u6210\u529f\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">readinessProbe<\/span><span class=\"pi\">:<\/span> \r\n <span class=\"na\">httpGet<\/span><span class=\"pi\">:<\/span> \r\n  <span class=\"na\">path<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/healthz<\/span>\r\n  <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3000<\/span>\r\n <span class=\"na\">initialDelaySeconds<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3<\/span>   <span class=\"c1\">#\u521d\u56de\u8d77\u52d5\u304b\u3089\u63a2\u67fb\u958b\u59cb\u307e\u3067\u306e\u7336\u4e88\u6642\u9593\uff08\u79d2\uff09<\/span>\r\n <span class=\"na\">periodSeconds<\/span><span class=\"pi\">:<\/span> <span class=\"m\">5<\/span>         <span class=\"c1\">#\u30c1\u30a7\u30c3\u30af\u9593\u9694\uff08\u79d2\uff09<\/span>\r\n <span class=\"na\">timeoutSeconds<\/span><span class=\"pi\">:<\/span> <span class=\"m\">2<\/span>        <span class=\"c1\">#\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3092\u6307\u5b9a\uff08\u79d2\uff09\u30c7\u30d5\u30a9\u306f\uff11\u79d2<\/span>\r\n <span class=\"na\">successThreshold<\/span><span class=\"pi\">:<\/span> <span class=\"m\">2<\/span>      <span class=\"c1\">#Probe\u304c\u6210\u529f\u3057\u305f\u3068\u5224\u65ad\u3059\u308b\u6700\u5c0f\u56de\u6570\u3092\u6307\u5b9a \u30c7\u30d5\u30a9\u306f\uff11\u56de<\/span>\r\n <span class=\"na\">failureThreshold<\/span><span class=\"pi\">:<\/span> <span class=\"m\">5<\/span>      <span class=\"c1\">#Probe\u304c\u5931\u6557\u3057\u305f\u3068\u5224\u65ad\u3059\u308b\u6700\u5c0f\u56de\u6570\u3092\u6307\u5b9a \u30c7\u30d5\u30a9\u306f\uff13\u56de<\/span>\r\n<\/code><\/pre>\n<p>\u6ce8\u610f\u4e8b\u9879\uff1a\u7531\u4e8ePod\u662f\u5728\u8fd0\u884c\u8282\u70b9\u4e0a\u7684kubelet\u4e0a\u6267\u884c\u7684\uff0c\u6240\u4ee5\u76ee\u6807\u662fPod\u4e0a\u7684\u5bb9\u5668\u3002\u5982\u679c\u8282\u70b9\u7531\u4e8e\u786c\u4ef6\u6545\u969c\u800c\u505c\u6b62\u8fd0\u884c\uff0c\u5219kubelet\u4e5f\u4f1a\u505c\u6b62\uff0c\u56e0\u6b64\u8fd9\u4e0d\u662f\u89e3\u51b3\u8282\u70b9\u6545\u969c\u7684\u65b9\u6cd5\u3002\u5982\u679c\u4e0d\u77e5\u9053\u5728\u54ea\u91cc\u4ee5\u53ca\u4f55\u65f6\u53d1\u751f\u4e86\u6545\u969c\uff0c\u5c31\u4f1a\u4ea7\u751f\u8bef\u89e3\uff0c\u4f8b\u5982\u201c\u54e6\uff0c\u8282\u70b9\u6545\u969c\u6ca1\u95ee\u9898\uff0c\u6709kubelet\u5728\u3002\u201d\uff08\u8fd9\u662f\u5bf9\u6211\u8bf4\u7684\uff09<\/p>\n<h2>\u5b9e\u8df5<\/h2>\n<p>\u5b9e\u8df5\u6d41\u7a0b\u5305\u62ecLivenessProbe\u548creadinessProbe\u7684\u884c\u4e3a\u786e\u8ba4\u3002<br \/>\n1. \u521b\u5efa\u548c\u5e94\u7528\u6e05\u5355\u6587\u4ef6\u3002<br \/>\n2. \u5220\u9664\u7d22\u5f15\u6587\u4ef6\u4ee5\u5f15\u53d1\u9519\u8bef\u3002<\/p>\n<h3>\u521b\u5efa\u548c\u5e94\u7528\u6e05\u5355\uff08\u6d3b\u6027\u63a2\u9488\uff09<\/h3>\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\">Pod<\/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\">liveness-check<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx<\/span>\r\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx<\/span>\r\n    <span class=\"na\">livenessProbe<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">httpGet<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n        <span class=\"na\">path<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/<\/span>\r\n      <span class=\"na\">failureThreshold<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3<\/span>\r\n      <span class=\"na\">periodSeconds<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>\u5b9f\u884c\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl apply -f .\/LivenessProbe_test.yml\r\npod\/liveness-check created\r\n\r\n\u78ba\u8a8d\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl get po\r\nNAME             READY   STATUS    RESTARTS   AGE\r\nliveness-check   1\/1     Running   0          71s\r\n\r\n\u8a73\u7d30\u78ba\u8a8d\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl describe po liveness-check\r\nName:         liveness-check\r\nNamespace:    default\r\nPriority:     0\r\nNode:         node2\/172.16.20.13\r\nStart Time:   Mon, 08 Feb 2021 12:55:53 +0900\r\nLabels:       &lt;none&gt;\r\nAnnotations:  &lt;none&gt;\r\nStatus:       Running\r\nIP:           10.244.2.27\r\nIPs:          &lt;none&gt;\r\nContainers:\r\n  nginx:\r\n    Container ID:   docker:\/\/fbecc20c37432146df765f26d7aa6c0428483ad7ec4c708d51c1027ef477f650\r\n    Image:          nginx\r\n    Image ID:       docker-pullable:\/\/nginx@sha256:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa\r\n    Port:           &lt;none&gt;\r\n    Host Port:      &lt;none&gt;\r\n    State:          Running\r\n      Started:      Mon, 08 Feb 2021 12:55:58 +0900\r\n    Ready:          True\r\n    Restart Count:  0\r\n    Liveness:       http-get http:\/\/:80\/ delay=0s timeout=1s period=3s #success=1 #failure=3\r\n    Environment:    &lt;none&gt;\r\n    Mounts:\r\n      \/var\/run\/secrets\/kubernetes.io\/serviceaccount from default-token-4vlhd (ro)\r\nConditions:\r\n  Type              Status\r\n  Initialized       True\r\n  Ready             True\r\n  ContainersReady   True\r\n  PodScheduled      True\r\nVolumes:\r\n  default-token-4vlhd:\r\n    Type:        Secret (a volume populated by a Secret)\r\n    SecretName:  default-token-4vlhd\r\n    Optional:    false\r\nQoS Class:       BestEffort\r\nNode-Selectors:  &lt;none&gt;\r\nTolerations:     node.kubernetes.io\/not-ready:NoExecute op=Exists for 300s\r\n                 node.kubernetes.io\/unreachable:NoExecute op=Exists for 300s\r\nEvents:\r\n  Type    Reason     Age    From               Message\r\n  ----    ------     ----   ----               -------\r\n  Normal  Scheduled  2m25s  default-scheduler  Successfully assigned default\/liveness-check to node2\r\n  Normal  Pulling    2m23s  kubelet            Pulling image \"nginx\"\r\n  Normal  Pulled     2m19s  kubelet            Successfully pulled image \"nginx\"\r\n  Normal  Created    2m19s  kubelet            Created container nginx\r\n  Normal  Started    2m19s  kubelet            Started container nginx\r\n<\/code><\/pre>\n<p>\u53ea\u9700\u8981\u5beb\u4e00\u500b\u4e2d\u6587\u7248\u672c:<br \/>\n\u786e\u8ba4\u7684\u90e8\u5206\u662f\uff0c<\/p>\n<pre class=\"post-pre\"><code>    Liveness:       http-get http:\/\/:80\/ delay=0s timeout=1s period=3s #success=1 #failure=3\r\n<\/code><\/pre>\n<h3>\u5220\u9664\u7d22\u5f15\u6587\u4ef6\u5bfc\u81f4\u9519\u8bef\u53d1\u751f<\/h3>\n<pre class=\"post-pre\"><code>\u524a\u9664\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl exec liveness-check -- rm \/usr\/share\/nginx\/html\/index.html\r\n\r\n\u8a73\u7d30\u78ba\u8a8d\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt; kubectl describe po liveness-check\r\nName:         liveness-check\r\nNamespace:    default\r\nPriority:     0\r\nNode:         node2\/172.16.20.13\r\nStart Time:   Mon, 08 Feb 2021 12:55:53 +0900\r\nLabels:       &lt;none&gt;\r\nAnnotations:  &lt;none&gt;\r\nStatus:       Running\r\nIP:           10.244.2.27\r\nIPs:          &lt;none&gt;\r\nContainers:\r\n  nginx:\r\n    Container ID:   docker:\/\/d8de55c8ab78df6978f135551c8871aef517d42ea4b8f0e7c9015553e260e997\r\n    Image:          nginx\r\n    Image ID:       docker-pullable:\/\/nginx@sha256:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa\r\n    Port:           &lt;none&gt;\r\n    Host Port:      &lt;none&gt;\r\n    State:          Running\r\n      Started:      Mon, 08 Feb 2021 13:02:28 +0900\r\n    Last State:     Terminated\r\n      Reason:       Completed\r\n      Exit Code:    0\r\n      Started:      Mon, 08 Feb 2021 12:55:58 +0900\r\n      Finished:     Mon, 08 Feb 2021 13:02:24 +0900\r\n    Ready:          True\r\n    Restart Count:  1\r\n    Liveness:       http-get http:\/\/:80\/ delay=0s timeout=1s period=3s #success=1 #failure=3\r\n    Environment:    &lt;none&gt;\r\n    Mounts:\r\n      \/var\/run\/secrets\/kubernetes.io\/serviceaccount from default-token-4vlhd (ro)\r\nConditions:\r\n  Type              Status\r\n  Initialized       True\r\n  Ready             True\r\n  ContainersReady   True\r\n  PodScheduled      True\r\nVolumes:\r\n  default-token-4vlhd:\r\n    Type:        Secret (a volume populated by a Secret)\r\n    SecretName:  default-token-4vlhd\r\n    Optional:    false\r\nQoS Class:       BestEffort\r\nNode-Selectors:  &lt;none&gt;\r\nTolerations:     node.kubernetes.io\/not-ready:NoExecute op=Exists for 300s\r\n                 node.kubernetes.io\/unreachable:NoExecute op=Exists for 300s\r\nEvents:\r\n  Type     Reason     Age                  From               Message\r\n  ----     ------     ----                 ----               -------\r\n  Normal   Scheduled  6m46s                default-scheduler  Successfully assigned default\/liveness-check to node2\r\n  Normal   Pulling    14s (x2 over 6m44s)  kubelet            Pulling image \"nginx\"\r\n  Warning  Unhealthy  14s (x3 over 20s)    kubelet            Liveness probe failed: HTTP probe failed with statuscode: 403\r\n  Normal   Killing    14s                  kubelet            Container nginx failed liveness probe, will be restarted\r\n  Normal   Pulled     10s (x2 over 6m40s)  kubelet            Successfully pulled image \"nginx\"\r\n  Normal   Created    10s (x2 over 6m40s)  kubelet            Created container nginx\r\n  Normal   Started    10s (x2 over 6m40s)  kubelet            Started container nginx\r\n<\/code><\/pre>\n<p>\u4f60\u505a\u5f97\u5f88\u597d\uff0c\u5df2\u7ecf\u8fdb\u884c\u4e86\u6b63\u786e\u7684\u68c0\u6d4b\u548c\u91cd\u65b0\u521b\u5efa\u3002<\/p>\n<pre class=\"post-pre\"><code>Events:\r\n  Type     Reason     Age                  From               Message\r\n  ----     ------     ----                 ----               -------\r\n  Normal   Scheduled  6m46s                default-scheduler  Successfully assigned default\/liveness-check to node2\r\n  Normal   Pulling    14s (x2 over 6m44s)  kubelet            Pulling image \"nginx\"\r\n  Warning  Unhealthy  14s (x3 over 20s)    kubelet            Liveness probe failed: HTTP probe failed with statuscode: 403\r\n  Normal   Killing    14s                  kubelet            Container nginx failed liveness probe, will be restarted\r\n  Normal   Pulled     10s (x2 over 6m40s)  kubelet            Successfully pulled image \"nginx\"\r\n  Normal   Created    10s (x2 over 6m40s)  kubelet            Created container nginx\r\n  Normal   Started    10s (x2 over 6m40s)  kubelet            Started container nginx\r\n<\/code><\/pre>\n<p>\u4e0b\u4e00\u4e2a\u662freadinessProbe\u3002<\/p>\n<h3>\u521b\u5efa\u548c\u5e94\u7528\u6e05\u5355\uff08\u5c31\u7eea\u63a2\u6d4b\uff09<\/h3>\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\">Pod<\/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\">readiness-check<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx<\/span>\r\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx<\/span>\r\n    <span class=\"na\">readinessProbe<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">httpGet<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n        <span class=\"na\">path<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/<\/span>\r\n      <span class=\"na\">failureThreshold<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n      <span class=\"na\">periodSeconds<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n<\/code><\/pre>\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\">Service<\/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\">readiness-check-svc<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">selector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">app<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"na\">port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>\u30dd\u30c3\u30c9\u4f5c\u6210\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl apply -f .\/ReadinessProbe_test.yml\r\npod\/readiness-check created\r\n\r\n\u30b5\u30fc\u30d3\u30b9\u4f5c\u6210\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl apply -f .\/ReadinessProbe_svc_test.yml\r\nservice\/readiness-check-svc created\r\n\r\n\u78ba\u8a8d\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl get po\r\nNAME              READY   STATUS    RESTARTS   AGE\r\nreadiness-check   1\/1     Running   0          3m40s\r\n\r\n\u8a73\u7d30\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl describe po readiness-check\r\nName:         readiness-check\r\nNamespace:    default\r\nPriority:     0\r\nNode:         node2\/172.16.20.13\r\nStart Time:   Mon, 08 Feb 2021 13:11:08 +0900\r\nLabels:       app=nginx\r\nAnnotations:  &lt;none&gt;\r\nStatus:       Running\r\nIP:           10.244.2.28\r\nIPs:          &lt;none&gt;\r\nContainers:\r\n  nginx:\r\n    Container ID:   docker:\/\/e780be7f11f1b628971ab205236fb73a9227e21b9812079898d446b05b0d8fe5\r\n    Image:          nginx\r\n    Image ID:       docker-pullable:\/\/nginx@sha256:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa\r\n    Port:           &lt;none&gt;\r\n    Host Port:      &lt;none&gt;\r\n    State:          Running\r\n      Started:      Mon, 08 Feb 2021 13:11:13 +0900\r\n    Ready:          True\r\n    Restart Count:  0\r\n    Readiness:      http-get http:\/\/:80\/ delay=0s timeout=1s period=1s #success=1 #failure=1\r\n    Environment:    &lt;none&gt;\r\n    Mounts:\r\n      \/var\/run\/secrets\/kubernetes.io\/serviceaccount from default-token-4vlhd (ro)\r\nConditions:\r\n  Type              Status\r\n  Initialized       True\r\n  Ready             True\r\n  ContainersReady   True\r\n  PodScheduled      True\r\nVolumes:\r\n  default-token-4vlhd:\r\n    Type:        Secret (a volume populated by a Secret)\r\n    SecretName:  default-token-4vlhd\r\n    Optional:    false\r\nQoS Class:       BestEffort\r\nNode-Selectors:  &lt;none&gt;\r\nTolerations:     node.kubernetes.io\/not-ready:NoExecute op=Exists for 300s\r\n                 node.kubernetes.io\/unreachable:NoExecute op=Exists for 300s\r\nEvents:\r\n  Type    Reason     Age    From               Message\r\n  ----    ------     ----   ----               -------\r\n  Normal  Scheduled  3m55s  default-scheduler  Successfully assigned default\/readiness-check to node2\r\n  Normal  Pulling    3m54s  kubelet            Pulling image \"nginx\"\r\n  Normal  Pulled     3m50s  kubelet            Successfully pulled image \"nginx\"\r\n  Normal  Created    3m50s  kubelet            Created container nginx\r\n  Normal  Started    3m50s  kubelet            Started container nginx\r\n\r\n\u30b5\u30fc\u30d3\u30b9\u78ba\u8a8d\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl get svc\r\nNAME                  TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE\r\nkubernetes            ClusterIP   10.32.0.1    &lt;none&gt;        443\/TCP   6d17h\r\nreadiness-check-svc   ClusterIP   10.32.0.6    &lt;none&gt;        80\/TCP    4m30s\r\n\r\n\u8a73\u7d30\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl describe svc readiness-check-svc\r\nName:              readiness-check-svc\r\nNamespace:         default\r\nLabels:            &lt;none&gt;\r\nAnnotations:       &lt;none&gt;\r\nSelector:          app=nginx\r\nType:              ClusterIP\r\nIP Families:       &lt;none&gt;\r\nIP:                10.32.0.6\r\nIPs:               &lt;none&gt;\r\nPort:              &lt;unset&gt;  80\/TCP\r\nTargetPort:        80\/TCP\r\nEndpoints:         10.244.2.28:80\r\nSession Affinity:  None\r\nEvents:            &lt;none&gt;\r\n\r\n\u5225\u30ce\u30fc\u30c9\u304b\u3089\u30a2\u30af\u30bb\u30b9\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;vagrant ssh node1\r\nWelcome to Ubuntu 18.04.5 LTS (GNU\/Linux 4.15.0-135-generic x86_64)\r\n\r\n * Documentation:  https:\/\/help.ubuntu.com\r\n * Management:     https:\/\/landscape.canonical.com\r\n * Support:        https:\/\/ubuntu.com\/advantage\r\n\r\n  System information as of Mon Feb  8 04:41:02 UTC 2021\r\n\r\n  System load:     0.06              IP address for enp0s3:  10.0.2.15\r\n  Usage of \/:      6.3% of 38.71GB   IP address for enp0s8:  172.16.20.12\r\n  Memory usage:    27%               IP address for enp0s9:  192.168.11.41\r\n  Swap usage:      0%                IP address for docker0: 172.17.0.1\r\n  Processes:       105               IP address for cni0:    10.244.1.1\r\n  Users logged in: 0\r\n\r\n * Introducing self-healing high availability clusters in MicroK8s.\r\n   Simple, hardened, Kubernetes for production, from RaspberryPi to DC.\r\n\r\n     https:\/\/microk8s.io\/high-availability\r\n\r\n * Canonical Livepatch is available for installation.\r\n   - Reduce system reboots and improve kernel security. Activate at:\r\n     https:\/\/ubuntu.com\/livepatch\r\n\r\n7 packages can be updated.\r\n0 of these updates are security updates.\r\nTo see these additional updates run: apt list --upgradable\r\n\r\nNew release '20.04.2 LTS' available.\r\nRun 'do-release-upgrade' to upgrade to it.\r\n\r\n\r\nLast login: Mon Feb  8 04:36:38 2021 from 10.0.2.2\r\nvagrant@node1:~$ wget -O - -T 1 10.32.0.6\r\n--2021-02-08 04:41:06--  http:\/\/10.32.0.6\/\r\nConnecting to 10.32.0.6:80... connected.\r\nHTTP request sent, awaiting response... 200 OK\r\nLength: 612 [text\/html]\r\nSaving to: \u2018STDOUT\u2019\r\n\r\n-                               0%[                                                  ]       0  --.-KB\/s               &lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;Welcome to nginx!&lt;\/title&gt;\r\n&lt;style&gt;\r\n    body {\r\n        width: 35em;\r\n        margin: 0 auto;\r\n        font-family: Tahoma, Verdana, Arial, sans-serif;\r\n    }\r\n&lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;h1&gt;Welcome to nginx!&lt;\/h1&gt;\r\n&lt;p&gt;If you see this page, the nginx web server is successfully installed and\r\nworking. Further configuration is required.&lt;\/p&gt;\r\n\r\n&lt;p&gt;For online documentation and support please refer to\r\n&lt;a href=\"http:\/\/nginx.org\/\"&gt;nginx.org&lt;\/a&gt;.&lt;br\/&gt;\r\nCommercial support is available at\r\n&lt;a href=\"http:\/\/nginx.com\/\"&gt;nginx.com&lt;\/a&gt;.&lt;\/p&gt;\r\n\r\n&lt;p&gt;&lt;em&gt;Thank you for using nginx.&lt;\/em&gt;&lt;\/p&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n-                             100%[=================================================&gt;]     612  --.-KB\/s    in 0s\r\n\r\n2021-02-08 04:41:06 (113 MB\/s) - written to stdout [612\/612]\r\n\r\nvagrant@node1:~$\r\n<\/code><\/pre>\n<h3>\u5220\u9664index\u6587\u4ef6\u5bfc\u81f4\u9519\u8bef\u53d1\u751f\u3002<\/h3>\n<pre class=\"post-pre\"><code>\u30b3\u30d4\u30fc\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl exec readiness-check -- cp -r \/usr\/share\/nginx\/html\/index.html \/usr\/share\/nginx\/html\/index_bk.html\r\n\r\n\u524a\u9664\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl exec readiness-check -- rm \/usr\/share\/nginx\/html\/index.html\r\n\r\n\u78ba\u8a8d\r\nD:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl describe po readiness-check\r\nName:         readiness-check\r\nNamespace:    default\r\nPriority:     0\r\nNode:         node2\/172.16.20.13\r\nStart Time:   Mon, 08 Feb 2021 13:40:51 +0900\r\nLabels:       app=nginx\r\nAnnotations:  &lt;none&gt;\r\nStatus:       Running\r\nIP:           10.244.2.29\r\nIPs:          &lt;none&gt;\r\nContainers:\r\n  nginx:\r\n    Container ID:   docker:\/\/6162644eb97f23bfed4e6341e8d7752c736e9f21f214a0af86f24532c627533f\r\n    Image:          nginx\r\n    Image ID:       docker-pullable:\/\/nginx@sha256:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa\r\n    Port:           &lt;none&gt;\r\n    Host Port:      &lt;none&gt;\r\n    State:          Running\r\n      Started:      Mon, 08 Feb 2021 13:40:56 +0900\r\n    Ready:          False\r\n    Restart Count:  0\r\n    Readiness:      http-get http:\/\/:80\/ delay=0s timeout=1s period=1s #success=1 #failure=1\r\n    Environment:    &lt;none&gt;\r\n    Mounts:\r\n      \/var\/run\/secrets\/kubernetes.io\/serviceaccount from default-token-4vlhd (ro)\r\nConditions:\r\n  Type              Status\r\n  Initialized       True\r\n  Ready             False\r\n  ContainersReady   False\r\n  PodScheduled      True\r\nVolumes:\r\n  default-token-4vlhd:\r\n    Type:        Secret (a volume populated by a Secret)\r\n    SecretName:  default-token-4vlhd\r\n    Optional:    false\r\nQoS Class:       BestEffort\r\nNode-Selectors:  &lt;none&gt;\r\nTolerations:     node.kubernetes.io\/not-ready:NoExecute op=Exists for 300s\r\n                 node.kubernetes.io\/unreachable:NoExecute op=Exists for 300s\r\nEvents:\r\n  Type     Reason     Age                From               Message\r\n  ----     ------     ----               ----               -------\r\n  Normal   Scheduled  4m3s               default-scheduler  Successfully assigned default\/readiness-check to node2\r\n  Normal   Pulling    4m2s               kubelet            Pulling image \"nginx\"\r\n  Normal   Pulled     3m58s              kubelet            Successfully pulled image \"nginx\"\r\n  Normal   Created    3m58s              kubelet            Created container nginx\r\n  Normal   Started    3m58s              kubelet            Started container nginx\r\n  Warning  Unhealthy  1s (x18 over 18s)  kubelet            Readiness probe failed: HTTP probe failed with statuscode: 403\r\n\r\n\u63a5\u7d9a\u78ba\u8a8d\r\nvagrant@node1:~$ wget -O - -T 1 10.32.0.6\r\n--2021-02-08 04:47:14--  http:\/\/10.32.0.6\/\r\nConnecting to 10.32.0.6:80... failed: Connection timed out.\r\nRetrying.\r\n<\/code><\/pre>\n<p>\u7531\u4e8e\u5df2\u7ecf\u6b7b\u4e86\u6240\u4ee5\u65e0\u6cd5\u8fde\u63a5\u561b\u3002<\/p>\n<pre class=\"post-pre\"><code>D:\\Repository\\kubernetes\\vagrant-kubernetes&gt;kubectl exec readiness-check -- cp -r \/usr\/share\/nginx\/html\/index_bk.html \/usr\/share\/nginx\/html\/index.html\r\n\r\n\u4ed6\u306e\u30ce\u30fc\u30c9\u304b\u3089\u63a5\u7d9a\u3057\u3066\u307f\u308b\u3002\r\nvagrant@node1:~$ wget -O - -T 1 10.32.0.6\r\n--2021-02-08 04:58:16--  http:\/\/10.32.0.6\/\r\nConnecting to 10.32.0.6:80... connected.\r\nHTTP request sent, awaiting response... 200 OK\r\nLength: 612 [text\/html]\r\nSaving to: \u2018STDOUT\u2019\r\n\r\n-                               0%[                                                  ]       0  --.-KB\/s               &lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;Welcome to nginx!&lt;\/title&gt;\r\n&lt;style&gt;\r\n    body {\r\n        width: 35em;\r\n        margin: 0 auto;\r\n        font-family: Tahoma, Verdana, Arial, sans-serif;\r\n    }\r\n&lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n&lt;h1&gt;Welcome to nginx!&lt;\/h1&gt;\r\n&lt;p&gt;If you see this page, the nginx web server is successfully installed and\r\nworking. Further configuration is required.&lt;\/p&gt;\r\n\r\n&lt;p&gt;For online documentation and support please refer to\r\n&lt;a href=\"http:\/\/nginx.org\/\"&gt;nginx.org&lt;\/a&gt;.&lt;br\/&gt;\r\nCommercial support is available at\r\n&lt;a href=\"http:\/\/nginx.com\/\"&gt;nginx.com&lt;\/a&gt;.&lt;\/p&gt;\r\n\r\n&lt;p&gt;&lt;em&gt;Thank you for using nginx.&lt;\/em&gt;&lt;\/p&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n-                             100%[=================================================&gt;]     612  --.-KB\/s    in 0s\r\n\r\n2021-02-08 04:58:16 (51.6 MB\/s) - written to stdout [612\/612]\r\n\r\nvagrant@node1:~$\r\n<\/code><\/pre>\n<p>\u8fd9\u6b21\u4e3a\u4e86\u786e\u8ba4\u64cd\u4f5c\u662f\u5426\u6b63\u5e38\uff0c\u6211\u8fdb\u884c\u4e86\u65ad\u8fde\u786e\u8ba4\u3002\u6211\u8ba4\u4e3a\u5728\u5b9e\u9645\u8fd0\u8425\u4e2d\u8fdb\u884c\u65ad\u8fde\u786e\u8ba4\u662f\u4e0d\u53ef\u884c\u7684\u3002\u6211\u8ba4\u4e3a\u5e94\u8be5\u901a\u8fc7\u72b6\u6001\u7b49\u65b9\u5f0f\u8fdb\u884c\u786e\u8ba4\u3002\u6bd5\u7adf\u7cfb\u7edf\u662f\u6b63\u5e38\u8fd0\u884c\u7684\u3002<\/p>\n<h1>\u5173\u4e8e\u672f\u8bed<\/h1>\n<p>\u30fb\u63a2\u6d4b<br \/>\n\u5173\u4e8e\u63a2\u7d22\u7684\u4e8b\u60c5\u3002<\/p>\n<h1>\u4f5c\u8005\u7559\u8a00<\/h1>\n<p>\u6211\u5b78\u7fd2\u4e86\u9700\u8981\u5145\u5206\u7406\u89e3\u7684\u5065\u5eb7\u6aa2\u67e5\u3002\u7531\u65bc\u672a\u8a2d\u5b9a\u5916\u90e8IP\uff0c\u6240\u4ee5\u6211\u9700\u8981\u9023\u63a5\u5230\u7bc0\u9ede\u4e26\u9032\u884c\u8a2a\u554f\u6e2c\u8a66\uff0c\u9019\u8b93\u6211\u89ba\u5f97\u78ba\u8a8d\u74b0\u5883\u9084\u662f\u6709\u4e9b\u9ebb\u7169\u3002\u4e0b\u4e00\u6b21\uff0c\u6211\u4e5f\u8a31\u6703\u66f4\u8a73\u7d30\u5730\u5b78\u7fd2\u90e8\u7f72\u3002<\/p>\n<h2>\u6587\u732e\u5f15\u7528<\/h2>\n<p>\u4eceDocker\u5165\u95e8\u5230\u5b66\u4e60Kubernetes\u768415\u6b65\u9aa4<br \/>\nKubernetes\u5b98\u65b9\u6587\u6863<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e66\u7c4d\u7684\u76ee\u5f55 \u524d\u6b21\u590d\u4e60 &nbsp; \u5065\u5eb7\u68c0\u67e5\u529f\u80fd\u662f\u4ec0\u4e48 \u5065\u5eb7\u68c0\u67e5\u7684\u7c7b\u578b \u5904\u7406\u5668 \u5b9e\u8df5 \u5173\u4e8e\u672f\u8bed \u540e\u8bb0 \u4e4b\u524d\u7684\u590d [&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-36234","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>\u5b66\u4e60Kubernetes - \u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5 - 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\/\u5b66\u4e60kubernetes-\u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5b66\u4e60Kubernetes - \u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5\" \/>\n<meta property=\"og:description\" content=\"\u4e66\u7c4d\u7684\u76ee\u5f55 \u524d\u6b21\u590d\u4e60 &nbsp; \u5065\u5eb7\u68c0\u67e5\u529f\u80fd\u662f\u4ec0\u4e48 \u5065\u5eb7\u68c0\u67e5\u7684\u7c7b\u578b \u5904\u7406\u5668 \u5b9e\u8df5 \u5173\u4e8e\u672f\u8bed \u540e\u8bb0 \u4e4b\u524d\u7684\u590d [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5b66\u4e60kubernetes-\u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-17T01:47:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-30T00:32:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d281937434c4406c3f01d\/5-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=\"10 \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%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/\",\"name\":\"\u5b66\u4e60Kubernetes - \u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-07-17T01:47:43+00:00\",\"dateModified\":\"2024-04-30T00:32:55+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5b66\u4e60Kubernetes &#8211; \u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5\"}]},{\"@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\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5b66\u4e60Kubernetes - \u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5 - 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\/\u5b66\u4e60kubernetes-\u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5b66\u4e60Kubernetes - \u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5","og_description":"\u4e66\u7c4d\u7684\u76ee\u5f55 \u524d\u6b21\u590d\u4e60 &nbsp; \u5065\u5eb7\u68c0\u67e5\u529f\u80fd\u662f\u4ec0\u4e48 \u5065\u5eb7\u68c0\u67e5\u7684\u7c7b\u578b \u5904\u7406\u5668 \u5b9e\u8df5 \u5173\u4e8e\u672f\u8bed \u540e\u8bb0 \u4e4b\u524d\u7684\u590d [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5b66\u4e60kubernetes-\u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-17T01:47:43+00:00","article_modified_time":"2024-04-30T00:32:55+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d281937434c4406c3f01d\/5-0.png"}],"author":"\u6e05, \u626c","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u626c","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"10 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/","name":"\u5b66\u4e60Kubernetes - \u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-07-17T01:47:43+00:00","dateModified":"2024-04-30T00:32:55+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/cb5556d2501da73d864cac945e8d9461"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5b66\u4e60Kubernetes &#8211; \u7b2c\u4e94\u90e8\u5206\uff1a\u5065\u5eb7\u68c0\u67e5"}]},{"@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\/%e5%ad%a6%e4%b9%a0kubernetes-%e7%ac%ac%e4%ba%94%e9%83%a8%e5%88%86%ef%bc%9a%e5%81%a5%e5%ba%b7%e6%a3%80%e6%9f%a5\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36234","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=36234"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36234\/revisions"}],"predecessor-version":[{"id":90830,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/36234\/revisions\/90830"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=36234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=36234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=36234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}