{"id":44047,"date":"2023-12-15T12:25:23","date_gmt":"2023-03-15T19:42:49","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/"},"modified":"2024-05-04T13:39:42","modified_gmt":"2024-05-04T05:39:42","slug":"%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/","title":{"rendered":"\u4f7f\u7528OpenShift\u7684Machine Config Pool\uff08MCP\uff09\u6765\u521b\u5efaInfra\u8282\u70b9"},"content":{"rendered":"<h1>\u6982\u8981\u6982\u8ff0<\/h1>\n<p>\u53ef\u4ee5\u901a\u8fc7\u5728OpenShift (OCP)\u4e0a\u8bbe\u7f6e\u4e13\u7528\u7684infra\u8282\u70b9\u6765\u5c06\u8fd0\u7ef4\u7ec4\u4ef6\uff0c\u4f8b\u5982\u9ed8\u8ba4\u8def\u7531\u5668\u3001\u5185\u90e8\u6ce8\u518c\u8868\u3001\u76d1\u63a7\u548c\u989d\u5916\u5b89\u88c5\u7684\u65e5\u5fd7\u8bb0\u5f55\u5668\u7b49\uff0c\u4e0e\u5e94\u7528\u7a0b\u5e8fPod\u8fdb\u884c\u5206\u79bb\u3002<\/p>\n<p>\u5982\u679c\u4f7f\u7528UPI\u8fdb\u884c\u5b89\u88c5\uff0c\u5219\u53ef\u4ee5\u901a\u8fc7\u4ec5\u4f7f\u7528\u201c\u8282\u70b9\u6807\u7b7e\u201d\u6765\u914d\u7f6e\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\uff0c\u6216\u8005\u53ef\u4ee5\u521b\u5efa\u4e13\u4e3a\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u7528\u7684\u201c\u673a\u5668\u914d\u7f6e\u6c60\uff08MCP\uff09\u201d\u7684\u65b9\u6cd5\u3002<\/p>\n<p>\u5728OCP 4.2\u4e2d\uff0c\u867d\u7136\u53ea\u4f7f\u7528\u201c\u8282\u70b9\u6807\u7b7e\u201d\u6765\u8bbe\u7f6e\u7684\u65b9\u6cd5\u6709\u70b9\u8fc7\u65f6\uff0c\u4f46\u6211\u8ba4\u4e3a\u521b\u5efa\u4e13\u7528\u7684\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u5e76\u5c06\u8def\u7531\u5668\u3001\u5185\u90e8\u6ce8\u518c\u8868\u3001\u76d1\u63a7\u548c\u65e5\u5fd7\u79fb\u52a8\u5230\u8be5\u8282\u70b9\u53ef\u80fd\u662f\u4e00\u4e2a\u53c2\u8003\u9009\u9879\u3002<\/p>\n<p>\u6211\u5728\u672c\u6b21\u8bb0\u5f55\u4e2d\u63d0\u5230\u4e86\u521b\u5efa\u7528\u4e8e infra node \u7684 &#8220;MCP&#8221; \u5e76\u914d\u7f6e infra node \u7684\u6ce8\u610f\u4e8b\u9879\u3002<\/p>\n<p>\u8fd9\u7bc7\u6587\u7ae0\u4e2d\u63d0\u5230\u7684OCP\u96c6\u7fa4\u7684\u524d\u63d0\u914d\u7f6e\u662f\u57fa\u4e8eQiita \/ OpenShift 4.10 Bare Metal UPI\uff08iPXE\uff09\u5b89\u88c5\u7684OCP 4.10\u914d\u7f6e\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">OCP 4.10\u3092\u30d9\u30a2\u30e1\u30bf\u30eb\u306eUPI\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u307e\u3059\u3002<\/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\">node\u306e\u69cb\u6210\u306finfra node x3\u53f0\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">(\u3053\u3061\u3089\u306e\u8a18\u4e8b\u3067\u306f\u30ed\u30ae\u30f3\u30b0\u306f\u307e\u3060\u5165\u308c\u3066\u3044\u307e\u305b\u3093\u304c\u3001\u30ed\u30ae\u30f3\u30b0\u306f\u3053\u3053\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u307e\u3059\u3002)<\/ul>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc version\r\nClient Version: 4.10.6\r\nServer Version: 4.10.6\r\nKubernetes Version: v1.23.5+b0357ed\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc get node\r\nNAME        STATUS   ROLES    AGE    VERSION\r\ninfra-01    Ready    worker   2d1h   v1.23.5+b0357ed\r\ninfra-02    Ready    worker   2d1h   v1.23.5+b0357ed\r\ninfra-03    Ready    worker   2d     v1.23.5+b0357ed\r\nmaster-01   Ready    master   2d1h   v1.23.5+b0357ed\r\nmaster-02   Ready    master   2d1h   v1.23.5+b0357ed\r\nmaster-03   Ready    master   2d1h   v1.23.5+b0357ed\r\nworker-01   Ready    worker   2d     v1.23.5+b0357ed\r\nworker-02   Ready    worker   2d     v1.23.5+b0357ed\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<h1>\u8bf7\u63d0\u4f9b\u53c2\u8003\u8d44\u6599\u3002<\/h1>\n<p>\u8bf7\u63d0\u4f9b\u76f8\u5173\u8d44\u6599\u3002<\/p>\n<p>\u8bf7\u7ed9\u51fa\u53c2\u8003\u8d44\u6599\u3002<\/p>\n<p>\u8bf7\u63d0\u4f9b\u53ef\u4f9b\u53c2\u8003\u7684\u8d44\u6599\u3002<\/p>\n<p>\u57fa\u7840\u67b6\u6784\u8282\u70b9\uff08infra node\uff09\u7684\u914d\u7f6e\u65b9\u6cd5\uff0c\u4ee5\u4e0b\u7684\u77e5\u8bc6\u5e93\uff08KB\uff09\u662f\u6700\u4f73\uff0c\u975e\u5e38\u503c\u5f97\u53c2\u8003\u3002\u57fa\u672c\u4e0a\uff0c\u6211\u4eec\u6839\u636e\u8be5\u77e5\u8bc6\u5e93\u4e2d\u6240\u8ff0\u5185\u5bb9\u521b\u5efa\u4e86\u57fa\u7840\u67b6\u6784\u8282\u70b9\u4e13\u7528\u7684\u201cMCP\u201d\u3002<\/p>\n<ul class=\"post-ul\">KB \/ Infrastructure Nodes in OpenShift 4<\/ul>\n<p>\u5bf9\u4e8eMCP\uff08Microsoft\u8ba4\u8bc1\u4e13\u5bb6\u8ba1\u5212\uff09\u7684\u6982\u8ff0\uff0c\u4ee5\u4e0b\u7684\u535a\u5ba2\u975e\u5e38\u6613\u61c2\u3002<\/p>\n<ul class=\"post-ul\">Red Hat Blog \/ OpenShift Container Platform 4: How does Machine Config Pool work?<\/ul>\n<p>\u53e6\u5916\uff0cOCP\u7684\u6587\u4ef6\u5982\u4e0b\u6240\u8ff0\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">OCP 4.10 Docs \/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u8a2d\u5b9a \/ 5. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u30bf\u30b9\u30af \/ 5.4. \u5b9f\u7a3c\u50cd\u74b0\u5883\u7528\u306e\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u30fc\u30de\u30b7\u30f3\u30bb\u30c3\u30c8\u306e\u4f5c\u6210<\/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\">OCP 4.10 Docs \/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u8a2d\u5b9a \/ 5. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u30bf\u30b9\u30af \/ 5.5. \u30de\u30b7\u30f3\u30bb\u30c3\u30c8\u30ea\u30bd\u30fc\u30b9\u306e\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u30fc\u30ce\u30fc\u30c9\u3078\u306e\u5272\u308a\u5f53\u3066<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">OCP 4.10 Docs \/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u8a2d\u5b9a \/ 5. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u30bf\u30b9\u30af \/ 5.6. \u30ea\u30bd\u30fc\u30b9\u306e\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u30fc\u30de\u30b7\u30f3\u30bb\u30c3\u30c8\u3078\u306e\u79fb\u884c<\/ul>\n<h1>\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u7684\u7ec4\u6210\u6d41\u7a0b<\/h1>\n<p>\u5bf9\u4e8eUPI\u800c\u8a00\uff0c\u5728\u6784\u5efa\u57fa\u7840\u8282\u70b9\u65f6\uff0c\u9700\u8981\u8003\u8651\u4ee5\u4e0b\u6b65\u9aa4\uff08\u8bf7\u53c2\u8003\u77e5\u8bc6\u5e93\uff09\u3002<\/p>\n<p>infra node\u306e\u69cb\u6210\u65b9\u6cd5<\/p>\n<p>(1) infra node\u5c02\u7528\u306e\u300cMCP\u300d\u3092\u4f5c\u6210<br \/>\n(2) infra node\u5c02\u7528\u306e\u300cMCP\u300d\u3092\u4f5c\u6210\u305b\u305a\u3001infra node\u7528\u306eworker node\u306binfra\u306e\u300c\u30ce\u30fc\u30c9\u30e9\u30d9\u30eb\u300d\u3092\u300c\u8ffd\u52a0\u300d\u3057\u3066\u69cb\u6210<\/p>\n<p>\u904b\u7528\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306einfra node\u306b\u79fb\u52d5<\/p>\n<p>\u30eb\u30fc\u30bf\u30fc<br \/>\nOCP\u5185\u90e8\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc<br \/>\n\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0<br \/>\n\u30ed\u30ae\u30f3\u30b0<\/p>\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3Pod\u3092infra node\u3067\u7a3c\u50cd\u3055\u305b\u306a\u3044\u8a2d\u5b9a<\/p>\n<p>(1) nodeSelector\u306e\u307f\u3092\u4f7f\u7528<br \/>\n(2) nodeSelector\u3068taint\/toleration\u3092\u4f7f\u7528<\/p>\n<h1>\u8fd9\u6b21\u7684\u653f\u7b56<\/h1>\n<p>\u8fd9\u6b21\u6211\u4eec\u5c06\u4f7f\u7528MCP\u6765\u914d\u7f6e\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u300cinfra node\u306e\u69cb\u6210\u65b9\u6cd5\u300d\u306f\u300c(1) infra node\u5c02\u7528\u306e\u300cMCP\u300d\u3092\u4f5c\u6210\u300d\u3067\u69cb\u6210\u3057\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u300c\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3Pod\u3092infra node\u3067\u7a3c\u50cd\u3055\u305b\u306a\u3044\u8a2d\u5b9a\u300d\u306f\u300c(1) nodeSelector\u306e\u307f\u3092\u4f7f\u7528\u300d\u3067\u5b9f\u65bd\u3057\u307e\u3059\u3002<\/ul>\n<h1>\u300c\u673a\u5668\u914d\u7f6e\u300d\u3001\u300c\u673a\u5668\u914d\u7f6e\u6c60\u300d\u548c\u300c\u8282\u70b9\u300d<\/h1>\n<p>&#8220;MC&#8221;\u3001&#8221;MCP&#8221;\u548c&#8221;Node&#8221;\u4e4b\u95f4\u7684\u5173\u7cfb\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u300cMC\u300d\u3068\u300cMCP\u300d\u3068\u306e\u7d10\u4ed8\u3051\u306f\u3001\u300cMC\u300d\u306e\u30e9\u30d9\u30eb(machineconfiguration.openshift.io\/role=master\u3001machineconfiguration.openshift.io\/role=worker)\u306e\u5024\u3067\u7d10\u3065\u3044\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u300cNode\u300d\u3068\u300cMCP\u300d\u3068\u306e\u7d10\u4ed8\u3051\u306f\u3001\u300cNode\u300d\u306e\u30ce\u30fc\u30c9\u30e9\u30d9\u30eb(node-role.kubernetes.io\/master=&#8221;&#8221;\u3001node-role.kubernetes.io\/worker=)\u3067\u7d10\u3065\u3044\u3066\u3044\u307e\u3059\u3002<\/ul>\n<p>\u6211\u4eec\u5c06\u521b\u5efainfra\u8282\u70b9\u7684&#8221;MCP&#8221;\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u300cNode\u300d\u306binfra node\u7528\u306e\u30ce\u30fc\u30c9\u30e9\u30d9\u30eb\u3092\u4ed8\u4e0e\u3057\u307e\u3059\u3002<\/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\">infra node\u7528\u306e\u300cMCP\u300d\u306f\u3001\u65e2\u5b58\u306ewoker node\u7528\u306e\u30e9\u30d9\u30eb\u3092\u6301\u3063\u305f\u300cMC\u300d\u3082\u5168\u90e8\u8aad\u307f\u8fbc\u3081\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u4eca\u5f8cinfra node\u3060\u3051\u306b\u8a2d\u5b9a\u3057\u305f\u3044\u300cMC\u300d\u3092\u4f5c\u6210\u3057\u305f\u5834\u5408\u306b\u306f\u3001worker node\u7528\u306e\u306e\u30e9\u30d9\u30eb\u3092\u6301\u3063\u305f\u300cMC\u300d\u306b\u52a0\u3048\u3066\u3001infra node\u7528\u306e\u30e9\u30d9\u30eb\u3092\u6301\u3063\u305f\u300cMC\u300d\u3082\u4e21\u65b9\u8aad\u307f\u8fbc\u3081\u308b\u3088\u3046\u306b\u300cMCP\u300d\u306emachineConfigSelector\u306e\u5024\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/ul>\n<h1>\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u7684\u914d\u7f6e\u65b9\u6cd5<\/h1>\n<h2>\u521b\u5efa\u4e00\u4e2a\u4e13\u5c5e\u4e8e\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u7684&#8221;MCP&#8221;\u3002<\/h2>\n<p>\u9ed8\u8ba4\u7684\u914d\u7f6e\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5b58\u5728\u7528\u4e8e\u4e3b\u8282\u70b9\u548c\u5de5\u4f5c\u8282\u70b9\u7684\u201c\u673a\u5668\u914d\u7f6e\u6c60\uff08MCP\uff09\u201d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 mcp]# oc get mcp\r\nNAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE\r\nmaster   rendered-master-954e86f747cb1bc813dc88a53adc068c   True      False      False      3              3                   3                     0                      40d\r\nworker   rendered-worker-8062fb3f341ce6e926a1678cc33db7f3   True      False      False      5              5                   5                     0                      40d\r\n<span class=\"o\">[<\/span>root@bastion-01 mcp]#\r\n<\/code><\/pre>\n<p>\u6709\u591a\u4e2a\u5305\u542b\u7279\u5b9a\u8981\u6c42\u7684\u300cMachine Config (MC)\u300d\uff0c\u5206\u522b\u4e3a\u4e3b\u8282\u70b9\u548c\u5de5\u4f5c\u8282\u70b9\u8bbe\u7f6e\u3002<br \/>\n\u4e0a\u8ff0\u7684\u300cMC\u300d\u4f1a\u81ea\u52a8\u521b\u5efa\u4e3a\u6bcf\u4e2a\u4e3b\u8282\u70b9\u548c\u5de5\u4f5c\u8282\u70b9\uff0c\u5206\u522b\u79f0\u4e3arendered-master-xxxxx\u548crendered-worker-xxxx\uff0c\u5e76\u663e\u793a\u5728\u4e3b\u8282\u70b9\u548c\u5de5\u4f5c\u8282\u70b9\u7684MCP\u7684\u300cCONFIG\u300d\u5217\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>[root@bastion-01 mcp]# oc get mc\r\nNAME                                               GENERATEDBYCONTROLLER                      IGNITIONVERSION   AGE\r\n00-master                                          e6ba00b885558712d660a3704c071490d999de6f   3.2.0             40d\r\n00-worker                                          e6ba00b885558712d660a3704c071490d999de6f   3.2.0             40d\r\n01-master-container-runtime                        e6ba00b885558712d660a3704c071490d999de6f   3.2.0             40d\r\n01-master-kubelet                                  e6ba00b885558712d660a3704c071490d999de6f   3.2.0             40d\r\n01-worker-container-runtime                        e6ba00b885558712d660a3704c071490d999de6f   3.2.0             40d\r\n01-worker-kubelet                                  e6ba00b885558712d660a3704c071490d999de6f   3.2.0             40d\r\n99-master-chrony                                                                              3.2.0             40d\r\n99-master-generated-registries                     e6ba00b885558712d660a3704c071490d999de6f   3.2.0             40d\r\n99-master-ssh                                                                                 3.2.0             40d\r\n99-worker-chrony                                                                              3.2.0             40d\r\n99-worker-generated-registries                     e6ba00b885558712d660a3704c071490d999de6f   3.2.0             40d\r\n99-worker-ssh                                                                                 3.2.0             40d\r\nrendered-master-954e86f747cb1bc813dc88a53adc068c   e6ba00b885558712d660a3704c071490d999de6f   3.2.0             40d\r\nrendered-worker-8062fb3f341ce6e926a1678cc33db7f3   e6ba00b885558712d660a3704c071490d999de6f   3.2.0             40d\r\n[root@bastion-01 mcp]#\r\n<\/code><\/pre>\n<p>node\u4e0e\u4e3b\u8282\u70b9\u548c\u5de5\u4f5c\u8282\u70b9\u7684MCP\u6807\u7b7e\u76f8\u5173\u8054\uff0c\u5e76\u4e14\u6bcf\u4e2aMCP\u90fd\u5e94\u7528\u4e86\u6240\u663e\u793a\u7684\u6e32\u67d3\u7684MC\u3002<\/p>\n<p>\u9ed8\u8ba4\u7684\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u793a\u4f8b\uff08\u4ecd\u7136\u5177\u6709\u5de5\u4f5c\u8282\u70b9\u6807\u7b7e\uff09<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc describe node infra-01\r\nName:               infra-01\r\nRoles:              worker\r\nLabels:             beta.kubernetes.io\/arch<span class=\"o\">=<\/span>amd64\r\n                    beta.kubernetes.io\/os<span class=\"o\">=<\/span>linux\r\n                    kubernetes.io\/arch<span class=\"o\">=<\/span>amd64\r\n                    kubernetes.io\/hostname<span class=\"o\">=<\/span>infra-01\r\n                    kubernetes.io\/os<span class=\"o\">=<\/span>linux\r\n                    node-role.kubernetes.io\/worker<span class=\"o\">=<\/span>\r\n                    node.openshift.io\/os_id<span class=\"o\">=<\/span>rhcos\r\nAnnotations:        machineconfiguration.openshift.io\/controlPlaneTopology: HighlyAvailable\r\n                    machineconfiguration.openshift.io\/currentConfig: rendered-worker-8062fb3f341ce6e926a1678cc33db7f3\r\n                    machineconfiguration.openshift.io\/desiredConfig: rendered-worker-8062fb3f341ce6e926a1678cc33db7f3\r\n                    machineconfiguration.openshift.io\/reason:\r\n                    machineconfiguration.openshift.io\/state: Done\r\n                    volumes.kubernetes.io\/controller-managed-attach-detach: <span class=\"nb\">true<\/span>\r\n<span class=\"o\">(<\/span>\u7565<span class=\"o\">)<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u5c06\u4ece\u8fd9\u91cc\u5f00\u59cb\u521b\u5efa\u5b9e\u9645\u7684\u57fa\u7840\u8bbe\u65bd\u8282\u70b9MCP\u3002<\/p>\n<p>\u6211\u5c06\u521b\u5efa\u5b58\u653e\u6e05\u5355\u7684\u76ee\u5f55\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# <span class=\"nb\">mkdir<\/span> <span class=\"nt\">-p<\/span> work\/manifest\/mcp\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# <span class=\"nb\">cd <\/span>work\/manifest\/mcp\/\r\n<span class=\"o\">[<\/span>root@bastion-01 mcp]#\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u4e3ainfra\u8282\u70b9\u521b\u5efa\u201cMCP\u201d\u7684\u6e05\u5355\u6587\u4ef6\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">infra node\u5c02\u7528\u306eMCP\u3092\u4f5c\u6210\u3059\u308b\u306e\u3067.spec.metadata.name\u306f\u3001infra\u3068\u3044\u3046\u540d\u524d\u306b\u3057\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">infra node\u306f\u3001worker\u7528\u306e\u306eMC\u3082\u3001infra\u7528\u306eMC\u3082\u8aad\u307f\u8fbc\u3081\u308b\u3088\u3046\u306b\u3001machineConfigSelector\u3092\u8a2d\u5b9a\u3092\u3057\u307e\u3059\u3002<\/ul>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 mcp]# vi mcp-infra.yaml\r\n<span class=\"o\">[<\/span>root@bastion-01 mcp]#\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">machineconfiguration.openshift.io\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">MachineConfigPool<\/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\">infra<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">machineConfigSelector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">matchExpressions<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"pi\">{<\/span><span class=\"nv\">key<\/span><span class=\"pi\">:<\/span> <span class=\"nv\">machineconfiguration.openshift.io\/role<\/span><span class=\"pi\">,<\/span> <span class=\"nv\">operator<\/span><span class=\"pi\">:<\/span> <span class=\"nv\">In<\/span><span class=\"pi\">,<\/span> <span class=\"nv\">values<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"nv\">worker<\/span><span class=\"pi\">,<\/span><span class=\"nv\">infra<\/span><span class=\"pi\">]}<\/span>\r\n  <span class=\"na\">nodeSelector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">matchLabels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">node-role.kubernetes.io\/infra<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n<\/code><\/pre>\n<p>\u5e94\u7528\u4e3aInfra Node\u521b\u5efa\u7684&#8221;MCP&#8221;\u6e05\u5355\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 mcp]# <span class=\"nb\">pwd<\/span>\r\n\/root\/work\/manifest\/mcp\r\n<span class=\"o\">[<\/span>root@bastion-01 mcp]# <span class=\"nb\">ls<\/span> <span class=\"nt\">-l<\/span>\r\n\u5408\u8a08 4\r\n<span class=\"nt\">-rw-r--r--<\/span><span class=\"nb\">.<\/span> 1 root root 315  5\u6708  9 20:33 mcp-infra.yaml\r\n<span class=\"o\">[<\/span>root@bastion-01 mcp]#\r\n<span class=\"o\">[<\/span>root@bastion-01 mcp]# oc apply <span class=\"nt\">-f<\/span> mcp-infra.yaml\r\nmachineconfigpool.machineconfiguration.openshift.io\/infra created\r\n<span class=\"o\">[<\/span>root@bastion-01 mcp]#\r\n<\/code><\/pre>\n<p>\u786e\u8ba4\u5df2\u7ecf\u521b\u5efa\u4e86\u4f9b\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u4f7f\u7528\u7684&#8221;MCP&#8221;\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 mcp]# oc get mcp\r\nNAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE\r\ninfra    rendered-infra-8062fb3f341ce6e926a1678cc33db7f3    True      False      False      0              0                   0                     0                      26s\r\nmaster   rendered-master-954e86f747cb1bc813dc88a53adc068c   True      False      False      3              3                   3                     0                      40d\r\nworker   rendered-worker-8062fb3f341ce6e926a1678cc33db7f3   True      False      False      5              5                   5                     0                      40d\r\n<span class=\"o\">[<\/span>root@bastion-01 mcp]#\r\n<\/code><\/pre>\n<p>\u5185\u5bb9\u5982\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 mcp]# oc get mcp infra <span class=\"nt\">-o<\/span> yaml\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">machineconfiguration.openshift.io\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">MachineConfigPool<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"s\">(\u7565)<\/span>\r\n  <span class=\"s\">machineConfigSelector<\/span><span class=\"err\">:<\/span>\r\n    <span class=\"na\">matchExpressions<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"na\">key<\/span><span class=\"pi\">:<\/span> <span class=\"s\">machineconfiguration.openshift.io\/role<\/span>\r\n      <span class=\"na\">operator<\/span><span class=\"pi\">:<\/span> <span class=\"s\">In<\/span>\r\n      <span class=\"na\">values<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">worker<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">infra<\/span>\r\n  <span class=\"na\">nodeSelector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">matchLabels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">node-role.kubernetes.io\/infra<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n<span class=\"s\">(\u7565)<\/span>\r\n<\/code><\/pre>\n<p>\u4e3a\u4e86\u5c06\u521b\u5efa\u7684\u7528\u4e8e\u57fa\u7840\u67b6\u6784\u7684&#8221;MCP&#8221;\u548c&#8221;Node&#8221;\u5173\u8054\u8d77\u6765\uff0c\u4ece\u57fa\u7840\u67b6\u6784\u8282\u70b9\u7684\u8282\u70b9\u6807\u7b7e\u4e2d\u79fb\u9664worker\u5e76\u6dfb\u52a0infra\u3002<\/p>\n<p>\u7ed9infra\u8282\u70b9\u6807\u7b7e<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc label node infra-01 node-role.kubernetes.io\/infra<span class=\"o\">=<\/span><span class=\"s2\">\"\"<\/span>\r\nnode\/infra-01 labeled\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc label node infra-02 node-role.kubernetes.io\/infra<span class=\"o\">=<\/span><span class=\"s2\">\"\"<\/span>\r\nnode\/infra-02 labeled\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc label node infra-03 node-role.kubernetes.io\/infra<span class=\"o\">=<\/span><span class=\"s2\">\"\"<\/span>\r\nnode\/infra-03 labeled\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u5220\u9664\u5de5\u4f5c\u8282\u70b9\u6807\u7b7e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc label node infra-01 node-role.kubernetes.io\/worker-\r\nnode\/infra-01 unlabeled\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc label node infra-02 node-role.kubernetes.io\/worker-\r\nnode\/infra-02 unlabeled\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc label node infra-03 node-role.kubernetes.io\/worker-\r\nnode\/infra-03 unlabeled\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u4ece infra \u8282\u70b9\u4e2d\uff0cinfra \u7684\u8282\u70b9\u6807\u7b7e\u5df2\u7ecf\u6dfb\u52a0\uff0cworker \u7684\u8282\u70b9\u6807\u7b7e\u5df2\u88ab\u5220\u9664\u3002<\/p>\n<p>\u786e\u8ba4\u8282\u70b9\u6807\u7b7e\u8d4b\u503c<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get node\r\nNAME        STATUS   ROLES    AGE   VERSION\r\ninfra-01    Ready    infra    40d   v1.23.5+b0357ed\r\ninfra-02    Ready    infra    40d   v1.23.5+b0357ed\r\ninfra-03    Ready    infra    40d   v1.23.5+b0357ed\r\nmaster-01   Ready    master   40d   v1.23.5+b0357ed\r\nmaster-02   Ready    master   40d   v1.23.5+b0357ed\r\nmaster-03   Ready    master   40d   v1.23.5+b0357ed\r\nworker-01   Ready    worker   40d   v1.23.5+b0357ed\r\nworker-02   Ready    worker   40d   v1.23.5+b0357ed\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>(\u4ec5\u4f9b\u53c2\u8003)<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get node infra-01 <span class=\"nt\">-o<\/span> yaml | <span class=\"nb\">grep<\/span> <span class=\"nt\">-A<\/span> 8 labels\r\n  labels:\r\n    beta.kubernetes.io\/arch: amd64\r\n    beta.kubernetes.io\/os: linux\r\n    kubernetes.io\/arch: amd64\r\n    kubernetes.io\/hostname: infra-01\r\n    kubernetes.io\/os: linux\r\n    node-role.kubernetes.io\/infra: <span class=\"s2\">\"\"<\/span>\r\n    node.openshift.io\/os_id: rhcos\r\n  name: infra-01\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u7531\u4e8e infra \u4f7f\u7528\u7684 &#8220;MCP&#8221; \u548c &#8220;Node&#8221; \u76f8\u5173\u8054\uff0c\u6240\u4ee5 infra node \u4f1a\u81ea\u52a8\u5e94\u7528 infra node \u4e13\u7528\u7684 &#8220;MC&#8221;\u3002<br \/>\n\uff08\u901a\u5e38\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u6709 &#8220;MC&#8221; \u7684\u66f4\u6539\uff0c\u8282\u70b9\u4f1a\u81ea\u52a8\u91cd\u65b0\u542f\u52a8\u5e76\u5e94\u7528\u65b0\u7684 &#8220;MCP&#8221; \u7684 &#8220;MC&#8221;\u3002\u4f46\u662f\uff0c\u8fd9\u6b21 infra \u548c worker \u90fd\u53ea\u52a0\u8f7d\u4e86\u76f8\u540c\u7684 &#8220;MC&#8221;\uff0c\u6ca1\u6709\u8fdb\u884c\u4efb\u4f55\u66f4\u6539\uff0c\u6240\u4ee5\u4f3c\u4e4e\u6ca1\u6709\u91cd\u65b0\u542f\u52a8\u8282\u70b9\u3002\uff09<\/p>\n<p>infra\u8282\u70b9\u5e94\u7528infra\u7684&#8221;MC&#8221;\u540e\uff0c\u53ef\u4ee5\u770b\u5230infra\u7684&#8221;MCP&#8221;\u4e2d\u7684&#8221;MACHINECOUNT&#8221;\u53d8\u4e3a3\uff0c\u8868\u660eMC\u5df2\u7ecf\u88ab\u5e94\u7528\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get mcp\r\nNAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE\r\ninfra    rendered-infra-8062fb3f341ce6e926a1678cc33db7f3    True      False      False      3              3                   3                     0                      10m\r\nmaster   rendered-master-954e86f747cb1bc813dc88a53adc068c   True      False      False      3              3                   3                     0                      40d\r\nworker   rendered-worker-8062fb3f341ce6e926a1678cc33db7f3   True      False      False      2              2                   2                     0                      40d\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<h1>\u5c06\u7ec4\u4ef6\u79fb\u52a8\u5230\u57fa\u7840\u8282\u70b9\u7684infra\u8282\u70b9\u4e0a<\/h1>\n<p>\u5c06\u4ee5\u4e0b\u8fd0\u8425\u7ec4\u4ef6\u79fb\u81f3\u57fa\u7840\u7ed3\u70b9\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30eb\u30fc\u30bf\u30fc<\/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\">OCP\u5185\u90e8\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc<\/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\">\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30ed\u30ae\u30f3\u30b0<\/ul>\n<p>\u79fb\u52a8\u901a\u5e38\u6309\u7167\u4ee5\u4e0b\u6587\u6863\u4e2d\u7684\u6b65\u9aa4\u8fdb\u884c\u5b9e\u65bd\u3002<\/p>\n<ul class=\"post-ul\">OCP 4.10 Docs \/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u8a2d\u5b9a \/ 5. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u30bf\u30b9\u30af \/ 5.6. \u30ea\u30bd\u30fc\u30b9\u306e\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u30fc\u30de\u30b7\u30f3\u30bb\u30c3\u30c8\u3078\u306e\u79fb\u884c<\/ul>\n<p>\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u53ea\u9700\u8981\u5c06\u6bcf\u4e2a\u81ea\u5b9a\u4e49\u8d44\u6e90\u7684infra\u8282\u70b9\u7684nodeSelector\u8fdb\u884c\u8bbe\u7f6e\u5373\u53ef\u3002<br \/>\n\uff08taint\/tolaration\u7b49\u5c06\u5728\u201c\u4e0d\u5728infra\u8282\u70b9\u4e0a\u8fd0\u884c\u5e94\u7528\u7a0b\u5e8fPod\u7684\u914d\u7f6e\u201d\u90e8\u5206\u8fdb\u884c\u8003\u8651\uff0c\u6240\u4ee5\u5728\u672c\u8282\u4e2d\u53ea\u8fdb\u884c\u4e86nodeSelector\u7684\u8bbe\u7f6e\u3002\uff09<\/p>\n<blockquote><p>\u5982\u679c\u60f3\u8981\u521b\u5efa\u4e00\u4e2a\u4e13\u7528\u4e8e\u76d1\u63a7\u548c\u8bb0\u5f55\u7684\u57fa\u7840\u67b6\u6784\u8282\u70b9\uff0c\u8bf7\u6309\u7167\u4ee5\u4e0b\u65b9\u5f0f\u4e3a\u8282\u70b9\u6dfb\u52a0\u8282\u70b9\u6807\u7b7e\u3002<\/p>\n<p>\u5728OCP 4.2\u4e2d\u521b\u5efa\u4e00\u4e2a\u4e13\u7528\u7684Infra\u8282\u70b9\uff0c\u5e76\u5c06\u8def\u7531\u5668\u3001\u5185\u90e8\u6ce8\u518c\u8868\u3001\u76d1\u63a7\u548c\u8bb0\u5f55\u79fb\u52a8\u5230\u8be5\u8282\u70b9\u4e0a\u3002<\/p><\/blockquote>\n<h2>\u8def\u7531\u5668<\/h2>\n<ul class=\"post-ul\">OCP 4.10 Docs \/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u8a2d\u5b9a \/ 5. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u30bf\u30b9\u30af \/ 5.6. \u30ea\u30bd\u30fc\u30b9\u306e\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u30fc\u30de\u30b7\u30f3\u30bb\u30c3\u30c8\u3078\u306e\u79fb\u884c \/ 5.6.1. \u30eb\u30fc\u30bf\u30fc\u306e\u79fb\u52d5<\/ul>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u8981\u786e\u8ba4\u8def\u7531\u5668\u7684Pod\u662f\u5728\u54ea\u4e2a\u8282\u70b9\u4e0a\u8fd0\u884c\u7684\u3002<br \/>\n\u5728\u8fdb\u884c\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u79fb\u52a8\u8bbe\u7f6e\u4e4b\u524d\uff0c\u8fd9\u6b21Pod\u521a\u597d\u662f\u4e00\u5f00\u59cb\u5c31\u5728\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get pod <span class=\"nt\">-n<\/span> openshift-ingress <span class=\"nt\">-o<\/span> wide\r\nNAME                             READY   STATUS    RESTARTS   AGE   IP              NODE       NOMINATED NODE   READINESS GATES\r\nrouter-default-d9585794b-4lm7z   1\/1     Running   0          9d    172.16.100.18   infra-02   &lt;none&gt;           &lt;none&gt;\r\nrouter-default-d9585794b-pvklp   1\/1     Running   0          9d    172.16.100.17   infra-01   &lt;none&gt;           &lt;none&gt;\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>(\u8865\u5145) \u8fd0\u7b97\u7b26\u672c\u8eab\u5728\u4e3b\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get pod <span class=\"nt\">-n<\/span> openshift-ingress-operator <span class=\"nt\">-o<\/span> wide\r\nNAME                                READY   STATUS    RESTARTS   AGE   IP            NODE        NOMINATED NODE   READINESS GATES\r\ningress-operator-79fd869977-8clzt   2\/2     Running   4          43d   10.130.0.12   master-02   &lt;none&gt;           &lt;none&gt;\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u5728ingresscontroller\u8d44\u6e90\u4e2d\u8fdb\u884c\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get ingresscontroller <span class=\"nt\">-n<\/span> openshift-ingress-operator\r\nNAME      AGE\r\ndefault   43d\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6ca1\u6709nodeSelector\u7684\u8bbe\u7f6e\uff0c\u5b83\u53ef\u4ee5\u5728\u4efb\u610f\u7684worker\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get ingresscontroller <span class=\"nt\">-n<\/span> openshift-ingress-operator default <span class=\"nt\">-o<\/span> yaml\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">clientTLS<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">clientCA<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n    <span class=\"na\">clientCertificatePolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n  <span class=\"na\">httpCompression<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">httpEmptyRequestsPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Respond<\/span>\r\n  <span class=\"na\">httpErrorCodePages<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">2<\/span>\r\n  <span class=\"na\">tuningOptions<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">unsupportedConfigOverrides<\/span><span class=\"pi\">:<\/span> <span class=\"kc\">null<\/span>\r\n<span class=\"na\">status<\/span><span class=\"pi\">:<\/span>\r\n<\/code><\/pre>\n<p>\u5728spec\u5b57\u6bb5\u4e2d\u6dfb\u52a0\u4e00\u4e2anodeSelector\uff0c\u4ee5\u5f15\u7528infra\u6807\u7b7e\uff0c\u5982\u4e0b\u6240\u793a:<\/p>\n<pre class=\"post-pre\"><code>  <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">nodePlacement<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">nodeSelector<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">matchLabels<\/span><span class=\"pi\">:<\/span>\r\n          <span class=\"na\">node-role.kubernetes.io\/infra<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n<\/code><\/pre>\n<p>\u4ee5\u4e0b\u662f\u5b9e\u9645\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc edit ingresscontroller default <span class=\"nt\">-n<\/span> openshift-ingress-operator\r\ningresscontroller.operator.openshift.io\/default edited\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc get ingresscontroller <span class=\"nt\">-n<\/span> openshift-ingress-operator default <span class=\"nt\">-o<\/span> yaml\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"s\">(\u7565)<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">clientTLS<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">clientCA<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n    <span class=\"na\">clientCertificatePolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n  <span class=\"na\">httpCompression<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">httpEmptyRequestsPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Respond<\/span>\r\n  <span class=\"na\">httpErrorCodePages<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n  <span class=\"na\">nodePlacement<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">nodeSelector<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">matchLabels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">node-role.kubernetes.io\/infra<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">2<\/span>\r\n  <span class=\"na\">tuningOptions<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">unsupportedConfigOverrides<\/span><span class=\"pi\">:<\/span> <span class=\"kc\">null<\/span>\r\n<span class=\"na\">status<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">(\u7565)<\/span>\r\n<\/code><\/pre>\n<p>Pod\u5df2\u88ab\u91cd\u65b0\u521b\u5efa\uff0c\u5e76\u6839\u636enodeSelector\uff0c\u5728infra\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get pod <span class=\"nt\">-n<\/span> openshift-ingress <span class=\"nt\">-o<\/span> wide\r\nNAME                              READY   STATUS    RESTARTS   AGE     IP              NODE       NOMINATED NODE   READINESS GATES\r\nrouter-default-77448cc55f-gbg4q   1\/1     Running   0          2m44s   172.16.100.18   infra-02   &lt;none&gt;           &lt;none&gt;\r\nrouter-default-77448cc55f-v2tbz   1\/1     Running   0          3m22s   172.16.100.19   infra-03   &lt;none&gt;           &lt;none&gt;\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<h2>OCP\u5185\u90e8\u6ce8\u518c\u8868<\/h2>\n<ul class=\"post-ul\">OCP 4.10 Docs \/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u8a2d\u5b9a \/ 5. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u30bf\u30b9\u30af \/ 5.6. \u30ea\u30bd\u30fc\u30b9\u306e\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u30fc\u30de\u30b7\u30f3\u30bb\u30c3\u30c8\u3078\u306e\u79fb\u884c \/ 5.6.2. \u30c7\u30d5\u30a9\u30eb\u30c8\u30ec\u30b8\u30b9\u30c8\u30ea\u30fc\u306e\u79fb\u884c<\/ul>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u786e\u8ba4 OCP \u5185\u90e8\u6ce8\u518c\u8868\u7684 Pod \u6b63\u5728\u54ea\u4e2a\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<br \/>\n\u5728\u8fdb\u884c infra \u8282\u70b9\u79fb\u52a8\u8bbe\u7f6e\u4e4b\u524d\uff0c\u8fd9\u4e00\u6b21\uff0cPod \u5076\u7136\u5730\u4e00\u76f4\u5728 infra \u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get pods <span class=\"nt\">-n<\/span> openshift-image-registry <span class=\"nt\">-o<\/span> wide | <span class=\"nb\">grep <\/span>image-registry\r\ncluster-image-registry-operator-7cfd746b9b-7plxd   1\/1     Running     0          23d     10.128.0.30     master-03   &lt;none&gt;           &lt;none&gt;\r\nimage-registry-646c7bdcfd-gbcnl                    1\/1     Running     0          9d      10.128.2.7      infra-02    &lt;none&gt;           &lt;none&gt;\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u8bbe\u7f6e\u662f\u5728configs.imageregistry.operator.openshift.io\u8d44\u6e90\u4e2d\u8fdb\u884c\u7684\u3002<\/p>\n<p>\u6539\u52a8\u4e4b\u524d<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get configs.imageregistry.operator.openshift.io\r\nNAME      AGE\r\ncluster   43d\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6ca1\u6709\u8bbe\u7f6enodeSelector\uff0c\u56e0\u6b64\u53ef\u4ee5\u5728\u4efb\u610f\u7684\u5de5\u4f5c\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get configs.imageregistry.operator.openshift.io cluster <span class=\"nt\">-o<\/span> yaml\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">imageregistry.operator.openshift.io\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Config<\/span>\r\n<span class=\"s\">(\u7565)<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">defaultRoute<\/span><span class=\"pi\">:<\/span> <span class=\"kc\">true<\/span>\r\n  <span class=\"na\">httpSecret<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ada28eb2bc1bf31d8f826769f8c15a7896215438c2976fc92f89adfdc231d264c9bf0ca1068b32fcc6b4bc080d0bb7df3666b7398016ccd7ff59e317a3cce89a<\/span>\r\n  <span class=\"na\">logLevel<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Normal<\/span>\r\n  <span class=\"na\">managementState<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Managed<\/span>\r\n  <span class=\"na\">observedConfig<\/span><span class=\"pi\">:<\/span> <span class=\"kc\">null<\/span>\r\n  <span class=\"na\">operatorLogLevel<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Normal<\/span>\r\n  <span class=\"na\">proxy<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n  <span class=\"na\">requests<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">read<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">maxWaitInQueue<\/span><span class=\"pi\">:<\/span> <span class=\"s\">0s<\/span>\r\n    <span class=\"na\">write<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">maxWaitInQueue<\/span><span class=\"pi\">:<\/span> <span class=\"s\">0s<\/span>\r\n  <span class=\"na\">rolloutStrategy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">RollingUpdate<\/span>\r\n  <span class=\"na\">storage<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">managementState<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Unmanaged<\/span>\r\n    <span class=\"na\">pvc<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">claim<\/span><span class=\"pi\">:<\/span> <span class=\"s\">image-registry-storage<\/span>\r\n  <span class=\"na\">unsupportedConfigOverrides<\/span><span class=\"pi\">:<\/span> <span class=\"kc\">null<\/span>\r\n<span class=\"na\">status<\/span><span class=\"pi\">:<\/span>\r\n<span class=\"s\">(\u7565)<\/span>\r\n<\/code><\/pre>\n<p>\u5728spec\u90e8\u5206\u4e2d\u6dfb\u52a0nodeSelector\uff0c\u4ee5\u5f15\u7528infra\u6807\u7b7e\uff0c\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">nodeSelector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">node-role.kubernetes.io\/infra<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n<\/code><\/pre>\n<p>\u5b9e\u9645\u7684\u6307\u4ee4\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc edit configs.imageregistry.operator.openshift.io cluster\r\nconfig.imageregistry.operator.openshift.io\/cluster edited\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc get configs.imageregistry.operator.openshift.io cluster <span class=\"nt\">-o<\/span> yaml\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">imageregistry.operator.openshift.io\/v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Config<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"s\">(\u7565)<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">defaultRoute<\/span><span class=\"pi\">:<\/span> <span class=\"kc\">true<\/span>\r\n  <span class=\"na\">httpSecret<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ada28eb2bc1bf31d8f826769f8c15a7896215438c2976fc92f89adfdc231d264c9bf0ca1068b32fcc6b4bc080d0bb7df3666b7398016ccd7ff59e317a3cce89a<\/span>\r\n  <span class=\"na\">logLevel<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Normal<\/span>\r\n  <span class=\"na\">managementState<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Managed<\/span>\r\n  <span class=\"na\">nodeSelector<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">node-role.kubernetes.io\/infra<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span>\r\n  <span class=\"na\">observedConfig<\/span><span class=\"pi\">:<\/span> <span class=\"kc\">null<\/span>\r\n  <span class=\"na\">operatorLogLevel<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Normal<\/span>\r\n  <span class=\"na\">proxy<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n  <span class=\"na\">requests<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">read<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">maxWaitInQueue<\/span><span class=\"pi\">:<\/span> <span class=\"s\">0s<\/span>\r\n    <span class=\"na\">write<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">maxWaitInQueue<\/span><span class=\"pi\">:<\/span> <span class=\"s\">0s<\/span>\r\n  <span class=\"na\">rolloutStrategy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">RollingUpdate<\/span>\r\n  <span class=\"na\">storage<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">managementState<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Unmanaged<\/span>\r\n    <span class=\"na\">pvc<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">claim<\/span><span class=\"pi\">:<\/span> <span class=\"s\">image-registry-storage<\/span>\r\n  <span class=\"na\">unsupportedConfigOverrides<\/span><span class=\"pi\">:<\/span> <span class=\"kc\">null<\/span>\r\n<span class=\"na\">status<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"s\">(\u7565)<\/span>\r\n<\/code><\/pre>\n<p>Pod\u5df2\u88ab\u91cd\u65b0\u521b\u5efa\uff0c\u5e76\u6839\u636enodeSelector\u914d\u7f6e\u5f00\u59cb\u5728\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get pods <span class=\"nt\">-n<\/span> openshift-image-registry <span class=\"nt\">-o<\/span> wide | <span class=\"nb\">grep <\/span>image-registry\r\ncluster-image-registry-operator-7cfd746b9b-7plxd   1\/1     Running     0          23d     10.128.0.30     master-03   &lt;none&gt;           &lt;none&gt;\r\nimage-registry-66689994b6-tzvlb                    1\/1     Running     0          103s    10.130.2.16     infra-03    &lt;none&gt;           &lt;none&gt;\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<h2>\u76d1\u63a7<\/h2>\n<ul class=\"post-ul\">OCP 4.10 Docs \/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u8a2d\u5b9a \/ 5. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u30bf\u30b9\u30af \/ 5.6. \u30ea\u30bd\u30fc\u30b9\u306e\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u30fc\u30de\u30b7\u30f3\u30bb\u30c3\u30c8\u3078\u306e\u79fb\u884c \/ 5.6.3. \u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u306e\u79fb\u52d5<\/ul>\n<p>\u5728\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u4e0a\u8fd0\u884c\u7ec4\u6210\u9ed8\u8ba4\u76d1\u63a7\u7684\u7ec4\u4ef6\uff08Prometheus\u3001Alertmanager\u3001\u5176\u4ed6\u7ec4\u4ef6\uff09\u3002\u672c\u6b21\u6ca1\u6709\u63d0\u53ca\u7528\u6237\u5de5\u4f5c\u8d1f\u8f7d\u76d1\u63a7\u7ec4\u4ef6\uff0c\u4f46\u57fa\u672c\u4e0a\u662f\u76f8\u540c\u7684\u3002\uff08\u7531\u4e8e\u6253\u7b97\u7a0d\u540e\u521b\u5efa\u6301\u4e45\u5377\uff0c\u6240\u4ee5\u5728\u8fd9\u91cc\u53ea\u662f\u642c\u79fb\u3002\uff09<\/p>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u786e\u8ba4\u76d1\u63a7Pod\u662f\u5728\u54ea\u4e2a\u8282\u70b9\u4e0a\u8fd0\u884c\u7684\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">operator\u306ePod\u306fmaster node\u3067\u7a3c\u50cd\u3057\u3066\u3044\u307e\u3059\u3002<\/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\">node-exporter\u306fdaemonset\u3067\u5168node\u3067\u7a3c\u50cd\u3057\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u79fb\u52d5\u306e\u5bfe\u8c61\u3068\u306a\u308b\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u306e\u305d\u308c\u4ee5\u5916\u306ePod\u306f\u3001infra node\u3001worker node\u3068\u307e\u3061\u307e\u3061\u3067\u7a3c\u50cd\u3057\u3066\u3044\u307e\u3059\u3002<\/ul>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 monitoring]# oc get pod <span class=\"nt\">-n<\/span> openshift-monitoring <span class=\"nt\">-o<\/span> wide\r\nNAME                                          READY   STATUS    RESTARTS   AGE   IP              NODE        NOMINATED NODE   READINESS GATES\r\nalertmanager-main-0                           6\/6     Running   12         43d   10.131.0.12     infra-01    &lt;none&gt;           &lt;none&gt;\r\nalertmanager-main-1                           6\/6     Running   0          9d    10.131.2.10     worker-01   &lt;none&gt;           &lt;none&gt;\r\ncluster-monitoring-operator-dbcdff999-j5h79   2\/2     Running   4          43d   10.130.0.9      master-02   &lt;none&gt;           &lt;none&gt;\r\ngrafana-6667f4d5bd-4rz5n                      3\/3     Running   0          9d    10.128.2.9      infra-02    &lt;none&gt;           &lt;none&gt;\r\nkube-state-metrics-6977cbc464-zrq2b           3\/3     Running   6          43d   10.131.0.11     infra-01    &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-2nk6f                           2\/2     Running   4          43d   172.16.100.15   master-02   &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-2sz27                           2\/2     Running   4          43d   172.16.100.16   master-03   &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-9dwjq                           2\/2     Running   10         43d   172.16.100.18   infra-02    &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-9ws9c                           2\/2     Running   10         43d   172.16.100.19   infra-03    &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-9z76z                           2\/2     Running   6          43d   172.16.100.23   worker-01   &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-lvl5p                           2\/2     Running   6          43d   172.16.100.14   master-01   &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-mjvd4                           2\/2     Running   4          43d   172.16.100.17   infra-01    &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-rkwmj                           2\/2     Running   6          43d   172.16.100.24   worker-02   &lt;none&gt;           &lt;none&gt;\r\nopenshift-state-metrics-6b498b7995-crfll      3\/3     Running   6          43d   10.131.0.7      infra-01    &lt;none&gt;           &lt;none&gt;\r\nprometheus-adapter-7c7548d778-bq56l           1\/1     Running   0          9d    10.128.2.6      infra-02    &lt;none&gt;           &lt;none&gt;\r\nprometheus-adapter-7c7548d778-xrmwj           1\/1     Running   0          11d   10.131.0.57     infra-01    &lt;none&gt;           &lt;none&gt;\r\nprometheus-k8s-0                              6\/6     Running   12         43d   10.131.0.3      infra-01    &lt;none&gt;           &lt;none&gt;\r\nprometheus-k8s-1                              6\/6     Running   0          9d    10.131.2.11     worker-01   &lt;none&gt;           &lt;none&gt;\r\nprometheus-operator-67f5c64764-krg5s          2\/2     Running   0          23d   10.130.0.53     master-02   &lt;none&gt;           &lt;none&gt;\r\ntelemeter-client-74f7d775fb-wnfhz             3\/3     Running   6          43d   10.131.0.6      infra-01    &lt;none&gt;           &lt;none&gt;\r\nthanos-querier-84ddf75d5c-29rxz               6\/6     Running   0          9d    10.128.2.8      infra-02    &lt;none&gt;           &lt;none&gt;\r\nthanos-querier-84ddf75d5c-7gt8v               6\/6     Running   12         43d   10.131.0.2      infra-01    &lt;none&gt;           &lt;none&gt;\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]#\r\n<\/code><\/pre>\n<p>\u8bbe\u7f6e\u4f7f\u7528ConfigMap\u8fdb\u884c\u3002<\/p>\n<p>\u524d\u5f80\u7528\u4e8e\u521b\u5efa\u6e05\u5355\u6587\u4ef6\u7684\u5de5\u4f5c\u76ee\u5f55\u5e76\u521b\u5efa\u7528\u4e8e\u914d\u7f6e\u76d1\u89c6\u7684ConfigMap\u6e05\u5355\u6587\u4ef6\u3002<br \/>\nConfigMap\u7684\u540d\u79f0\u8bbe\u7f6e\u4e3acluster-monitoring-config\u3002<br \/>\n\u6839\u636e\u4e0b\u9762\u6240\u793a\uff0c\u5728\u76d1\u89c6\u6240\u6709\u7ec4\u4ef6\u7684\u90e8\u5206\u4e2d\u6dfb\u52a0\u5f15\u7528infra\u6807\u7b7e\u7684nodeSelector\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# <span class=\"nb\">mkdir<\/span> <span class=\"nt\">-p<\/span> work\/manifest\/monitoring\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# <span class=\"nb\">cd <\/span>work\/manifest\/monitoring\/\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]#\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]# vi cluster-monitoring-configmap.yaml\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]# <span class=\"nb\">cat <\/span>cluster-monitoring-configmap.yaml\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\">ConfigMap<\/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\">cluster-monitoring-config<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">openshift-monitoring<\/span>\r\n<span class=\"na\">data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">config.yaml<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">|+<\/span>\r\n    <span class=\"s\">alertmanagerMain:<\/span>\r\n      <span class=\"s\">nodeSelector:<\/span>\r\n        <span class=\"s\">node-role.kubernetes.io\/infra: \"\"<\/span>\r\n    <span class=\"s\">prometheusK8s:<\/span>\r\n      <span class=\"s\">nodeSelector:<\/span>\r\n        <span class=\"s\">node-role.kubernetes.io\/infra: \"\"<\/span>\r\n    <span class=\"s\">prometheusOperator:<\/span>\r\n      <span class=\"s\">nodeSelector:<\/span>\r\n        <span class=\"s\">node-role.kubernetes.io\/infra: \"\"<\/span>\r\n    <span class=\"s\">grafana:<\/span>\r\n      <span class=\"s\">nodeSelector:<\/span>\r\n        <span class=\"s\">node-role.kubernetes.io\/infra: \"\"<\/span>\r\n    <span class=\"s\">k8sPrometheusAdapter:<\/span>\r\n      <span class=\"s\">nodeSelector:<\/span>\r\n        <span class=\"s\">node-role.kubernetes.io\/infra: \"\"<\/span>\r\n    <span class=\"s\">kubeStateMetrics:<\/span>\r\n      <span class=\"s\">nodeSelector:<\/span>\r\n        <span class=\"s\">node-role.kubernetes.io\/infra: \"\"<\/span>\r\n    <span class=\"s\">telemeterClient:<\/span>\r\n      <span class=\"s\">nodeSelector:<\/span>\r\n        <span class=\"s\">node-role.kubernetes.io\/infra: \"\"<\/span>\r\n    <span class=\"s\">openshiftStateMetrics:<\/span>\r\n      <span class=\"s\">nodeSelector:<\/span>\r\n        <span class=\"s\">node-role.kubernetes.io\/infra: \"\"<\/span>\r\n    <span class=\"s\">thanosQuerier:<\/span>\r\n      <span class=\"s\">nodeSelector:<\/span>\r\n        <span class=\"s\">node-role.kubernetes.io\/infra: \"\"<\/span>\r\n<\/code><\/pre>\n<p>\u5e94\u7528\u524d\u8ff0 ConfigMap \u7684\u6e05\u5355\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 monitoring]# oc get cm <span class=\"nt\">-n<\/span> openshift-monitoring cluster-monitoring-config\r\nError from server <span class=\"o\">(<\/span>NotFound<span class=\"o\">)<\/span>: configmaps <span class=\"s2\">\"cluster-monitoring-config\"<\/span> not found\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]#\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]#\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]# oc apply <span class=\"nt\">-f<\/span> cluster-monitoring-configmap.yaml\r\nconfigmap\/cluster-monitoring-config created\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]#\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]# oc get cm <span class=\"nt\">-n<\/span> openshift-monitoring cluster-monitoring-config\r\nNAME                        DATA   AGE\r\ncluster-monitoring-config   1      5s\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]#\r\n<\/code><\/pre>\n<p>Pod\u88ab\u91cd\u65b0\u521b\u5efa\uff0c\u4e0e\u76d1\u6d4b\u76f8\u5173\u7684Pod\u6839\u636enodeSelector\u7684\u8bbe\u5b9a\u5f00\u59cb\u5728\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 monitoring]# oc get pod <span class=\"nt\">-n<\/span> openshift-monitoring <span class=\"nt\">-o<\/span> wide\r\nNAME                                          READY   STATUS    RESTARTS   AGE     IP              NODE        NOMINATED NODE   READINESS GATES\r\nalertmanager-main-0                           6\/6     Running   0          2m46s   10.131.0.195    infra-01    &lt;none&gt;           &lt;none&gt;\r\nalertmanager-main-1                           6\/6     Running   0          3m18s   10.128.2.12     infra-02    &lt;none&gt;           &lt;none&gt;\r\ncluster-monitoring-operator-dbcdff999-j5h79   2\/2     Running   4          43d     10.130.0.9      master-02   &lt;none&gt;           &lt;none&gt;\r\ngrafana-d9b6fb97f-hswc9                       3\/3     Running   0          3m19s   10.128.2.11     infra-02    &lt;none&gt;           &lt;none&gt;\r\nkube-state-metrics-67784595cf-wd429           3\/3     Running   0          3m21s   10.131.0.191    infra-01    &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-2nk6f                           2\/2     Running   4          43d     172.16.100.15   master-02   &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-2sz27                           2\/2     Running   4          43d     172.16.100.16   master-03   &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-9dwjq                           2\/2     Running   10         43d     172.16.100.18   infra-02    &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-9ws9c                           2\/2     Running   10         43d     172.16.100.19   infra-03    &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-9z76z                           2\/2     Running   6          43d     172.16.100.23   worker-01   &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-lvl5p                           2\/2     Running   6          43d     172.16.100.14   master-01   &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-mjvd4                           2\/2     Running   4          43d     172.16.100.17   infra-01    &lt;none&gt;           &lt;none&gt;\r\nnode-exporter-rkwmj                           2\/2     Running   6          43d     172.16.100.24   worker-02   &lt;none&gt;           &lt;none&gt;\r\nopenshift-state-metrics-5977697c96-n8bpb      3\/3     Running   0          3m21s   10.131.0.192    infra-01    &lt;none&gt;           &lt;none&gt;\r\nprometheus-adapter-576d7d5d57-f68tw           1\/1     Running   0          3m21s   10.128.2.13     infra-02    &lt;none&gt;           &lt;none&gt;\r\nprometheus-adapter-576d7d5d57-jqf2f           1\/1     Running   0          3m21s   10.130.2.17     infra-03    &lt;none&gt;           &lt;none&gt;\r\nprometheus-k8s-0                              6\/6     Running   0          2m56s   10.131.0.194    infra-01    &lt;none&gt;           &lt;none&gt;\r\nprometheus-k8s-1                              6\/6     Running   0          3m14s   10.128.2.15     infra-02    &lt;none&gt;           &lt;none&gt;\r\nprometheus-operator-6b8cc99f77-6krtp          2\/2     Running   0          3m29s   10.128.2.10     infra-02    &lt;none&gt;           &lt;none&gt;\r\ntelemeter-client-7966478b86-nz24b             3\/3     Running   0          3m21s   10.131.0.193    infra-01    &lt;none&gt;           &lt;none&gt;\r\nthanos-querier-5b4f5d7b56-lv9sh               6\/6     Running   0          3m18s   10.130.2.18     infra-03    &lt;none&gt;           &lt;none&gt;\r\nthanos-querier-5b4f5d7b56-svw8c               6\/6     Running   0          3m18s   10.128.2.14     infra-02    &lt;none&gt;           &lt;none&gt;\r\n<span class=\"o\">[<\/span>root@bastion-01 monitoring]#\r\n<\/code><\/pre>\n<h2>\u8bb0\u5f55<\/h2>\n<ul class=\"post-ul\">OCP 4.10 Docs \/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u8a2d\u5b9a \/ 5. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u30bf\u30b9\u30af \/ 5.6. \u30ea\u30bd\u30fc\u30b9\u306e\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u30fc\u30de\u30b7\u30f3\u30bb\u30c3\u30c8\u3078\u306e\u79fb\u884c \/ 5.6.4. OpenShift Logging \u30ea\u30bd\u30fc\u30b9\u306e\u79fb\u52d5<\/ul>\n<p>\u7531\u4e8e\u4e4b\u524d\u8fd8\u6ca1\u6709\u8bb0\u5f55\uff0c\u6240\u4ee5\u73b0\u5728\u5728\u8fd9\u91cc\u5f15\u5165\u65e5\u5fd7\u8bb0\u5f55\u3002<br \/>\n\u65e5\u5fd7\u8bb0\u5f55\u7684\u5f15\u5165\u6b65\u9aa4\u5982\u4e0b\u3002<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u90e8\u7f72OpenShift Elasticsearch Operator<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u90e8\u7f72Red Hat OpenShift Logging Operator<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u521b\u5efa\u65e5\u5fd7\u5b9e\u4f8b\uff08ClusterLogging\u8d44\u6e90\uff09\uff0c\u5728\u6b64\u8bbe\u7f6eelasticsearch\u548ckibana\u7684nodeSlector\u3002<\/ol>\n<p>\u8fd9\u6b21\u6211\u4eec\u5728GUI\u4e2d\u5f15\u5165\u4e86Operator\u3002\u7531\u4e8eOperator\u7684\u5f15\u5165\u7a0b\u5e8f\u5982\u4e0b\u6240\u793a\uff0c\u6240\u4ee5\u6211\u5c06\u7701\u7565\u3002<\/p>\n<ul class=\"post-ul\">OCP 4.10 Docs \/ Logging \/ 3. Installing the logging subsystem for Red Hat OpenShift \/ 3.1. Installing the logging subsystem for Red Hat OpenShift using the web console<\/ul>\n<p>\u5b8c\u6210OpenShift Elasticsearch Operator\u548cRed Hat OpenShift Logging Operator\u7684\u5b89\u88c5\u540e\uff0c\u53ef\u4ee5\u521b\u5efa\u65e5\u5fd7\u5b9e\u4f8b\uff08ClusterLogging\u8d44\u6e90\uff09\u3002<br \/>\n\u5207\u6362\u5230\u7528\u4e8e\u521b\u5efa\u6e05\u5355\u6587\u4ef6\u7684\u5de5\u4f5c\u76ee\u5f55\uff0c\u5e76\u521b\u5efa\u6e05\u5355\u6587\u4ef6\u3002<\/p>\n<p>\u521b\u5efa\u7fa4\u96c6\u65e5\u5fd7\u8bb0\u5f55\u5b9e\u4f8b\u65f6\uff0c\u8fd8\u9700\u8981\u5728nodeSelector\u4e2d\u6dfb\u52a0elasticsearch\u548ckibana\uff0c\u4f7f\u5b83\u4eec\u6700\u521d\u5728infra\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<p>\u5176\u4ed6\u8bbe\u7f6e\u5982\u4e0b\u3002<\/p>\n<p>redundancyPolicy\u306fSingleRedundancy\u3068\u3057\u3001elasticsearch\u306e{nodeCount\u306f3\u3068\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\nPV\u306f\u5225\u9014local-storage operato\u3067elasticsarch\u7528\u306elocalvolume\u30ea\u30bd\u30fc\u30b9\u3067\u4f5c\u6210\u3059\u308b\u4e88\u5b9a\u3067\u3059\u304c\u3001\u3053\u3053\u3067\u306f\u4e00\u65e6PV\u306f\u4f5c\u6210\u305b\u305a\u306b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002(RHCOS\u306e\u5185\u8535\u30c7\u30a3\u30b9\u30af\u304c\u6ea2\u308c\u308b\u306e\u3067PV\u306f\u3059\u3050\u306b\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u306e\u3067\u672c\u5f53\u306f\u3053\u306e\u6642\u70b9\u3067localvolume\u3092\u4f5c\u6210\u3057\u3066PV\u306e\u8a2d\u5b9a\u3082\u3057\u3066\u3057\u307e\u3063\u305f\u65b9\u304c\u826f\u3044\u3068\u601d\u3044\u307e\u3059\u3002)<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# <span class=\"nb\">mkdir<\/span> <span class=\"nt\">-p<\/span> work\/manifest\/logging\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# <span class=\"nb\">cd <\/span>work\/manifest\/logging\/\r\n<span class=\"o\">[<\/span>root@bastion-01 logging]#\r\n<span class=\"o\">[<\/span>root@bastion-01 logging]# vi clo-instance-5.4-no-pv.yaml\r\n<span class=\"o\">[<\/span>root@bastion-01 logging]# <span class=\"nb\">cat <\/span>clo-instance-5.4-no-pv.yaml\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">logging.openshift.io\/v1\"<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">ClusterLogging\"<\/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=\"s2\">\"<\/span><span class=\"s\">instance\"<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">openshift-logging\"<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">managementState<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">Managed\"<\/span>\r\n  <span class=\"na\">logStore<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">elasticsearch\"<\/span>\r\n    <span class=\"na\">retentionPolicy<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">application<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">maxAge<\/span><span class=\"pi\">:<\/span> <span class=\"s\">1d<\/span>\r\n      <span class=\"na\">infra<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">maxAge<\/span><span class=\"pi\">:<\/span> <span class=\"s\">1d<\/span>\r\n      <span class=\"na\">audit<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">maxAge<\/span><span class=\"pi\">:<\/span> <span class=\"s\">1d<\/span>\r\n    <span class=\"na\">elasticsearch<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">nodeCount<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3<\/span>\r\n      <span class=\"na\">nodeSelector<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">node-role.kubernetes.io\/infra<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n      <span class=\"na\">storage<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n      <span class=\"na\">redundancyPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">SingleRedundancy\"<\/span>\r\n  <span class=\"na\">visualization<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">kibana\"<\/span>\r\n    <span class=\"na\">kibana<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">replicas<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n      <span class=\"na\">nodeSelector<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">node-role.kubernetes.io\/infra<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">collection<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">logs<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"na\">type<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">fluentd\"<\/span>\r\n      <span class=\"na\">fluentd<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n<\/code><\/pre>\n<p>\u521b\u5efa\u4e00\u4e2a\u65e5\u5fd7\u5b9e\u4f8b\uff08\u96c6\u7fa4\u65e5\u5fd7\u8d44\u6e90\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 logging]# oc apply <span class=\"nt\">-f<\/span> clo-instance-5.4-no-pv.yaml\r\nclusterlogging.logging.openshift.io\/instance created\r\n<span class=\"o\">[<\/span>root@bastion-01 logging]#\r\n<span class=\"o\">[<\/span>root@bastion-01 logging]# oc get clusterlogging <span class=\"nt\">-n<\/span> openshift-logging\r\nNAME       MANAGEMENT STATE\r\ninstance   Managed\r\n<span class=\"o\">[<\/span>root@bastion-01 logging]#\r\n<\/code><\/pre>\n<p>\u6211\u8981\u786e\u8ba4Pod\u6b63\u5728\u54ea\u4e2a\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">collector(fluentd)\u4ee5\u5916\u306eelasticsearch\u3068kibana\u306ePod\u306finfra node\u4e0a\u3067\u7a3c\u50cd\u3057\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">(collector(fluentd)\u306f\u3001daemonset\u3068\u3057\u3066\u3001\u5168node\u4e0a\u3067\u7a3c\u50cd\u3057\u3066\u3044\u307e\u3059\u3002)<\/ul>\n<pre class=\"post-pre\"><code>[root@bastion-01 logging]# oc get pod -n openshift-logging -o wide\r\nNAME                                            READY   STATUS    RESTARTS   AGE   IP             NODE        NOMINATED NODE   READINESS GATES\r\ncluster-logging-operator-665847fd47-4k8nk       1\/1     Running   0          45m   10.131.0.105   infra-01    &lt;none&gt;           &lt;none&gt;\r\ncollector-44jz9                                 2\/2     Running   0          20s   10.128.2.14    infra-02    &lt;none&gt;           &lt;none&gt;\r\ncollector-56t5f                                 2\/2     Running   0          20s   10.131.2.7     worker-01   &lt;none&gt;           &lt;none&gt;\r\ncollector-75fc4                                 2\/2     Running   0          20s   10.129.2.8     worker-02   &lt;none&gt;           &lt;none&gt;\r\ncollector-8xvrk                                 2\/2     Running   0          26s   10.129.1.120   master-01   &lt;none&gt;           &lt;none&gt;\r\ncollector-dfg8g                                 2\/2     Running   0          18s   10.130.2.15    infra-03    &lt;none&gt;           &lt;none&gt;\r\ncollector-nlg28                                 2\/2     Running   0          25s   10.130.0.38    master-02   &lt;none&gt;           &lt;none&gt;\r\ncollector-qhx2x                                 2\/2     Running   0          24s   10.131.0.111   infra-01    &lt;none&gt;           &lt;none&gt;\r\ncollector-tssdz                                 2\/2     Running   0          27s   10.128.0.154   master-03   &lt;none&gt;           &lt;none&gt;\r\nelasticsearch-cdm-hxg5zzyz-1-6c7cc986d5-r8vtk   1\/2     Running   0          88s   10.128.2.12    infra-02    &lt;none&gt;           &lt;none&gt;\r\nelasticsearch-cdm-hxg5zzyz-2-6c459cd687-dd8kr   1\/2     Running   0          87s   10.131.0.109   infra-01    &lt;none&gt;           &lt;none&gt;\r\nelasticsearch-cdm-hxg5zzyz-3-6c4c778db5-zttmd   1\/2     Running   0          86s   10.130.2.14    infra-03    &lt;none&gt;           &lt;none&gt;\r\nkibana-95cdccd9b-mbpvp                          2\/2     Running   0          86s   10.130.2.13    infra-03    &lt;none&gt;           &lt;none&gt;\r\n[root@bastion-01 logging]#\r\n<\/code><\/pre>\n<p>\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u5c06\u7701\u7565\u5728Kibana\u4e2d\u521b\u5efa\u7d22\u5f15\u6a21\u5f0f\u4ee5\u53ca\u516c\u5f00\u65e5\u5fd7\u5b58\u50a8\u6839\u76ee\u5f55\u7b49\u5185\u5bb9\u3002<\/p>\n<h1>\u4e0d\u8981\u5728\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u4e0a\u8fd0\u884c\u5e94\u7528\u7a0b\u5e8fPod\u7684\u914d\u7f6e\u3002<\/h1>\n<p>\u6211\u4eec\u521b\u5efa\u4e86infra\u8282\u70b9\uff0c\u5e76\u5c06\u8fd0\u7ef4\u7ec4\u4ef6\u653e\u7f6e\u5728infra\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<br \/>\n\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u9700\u8981\u8fdb\u884c\u914d\u7f6e\uff0c\u4f7f\u5e94\u7528\u7a0b\u5e8fPod\u4e0d\u5728infra\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<p>\u5728infra\u8282\u70b9\u4e0a\u4e0d\u8fd0\u884c\u5e94\u7528\u7a0b\u5e8fPod\u7684\u8bbe\u7f6e\u65b9\u6cd5\u4e3b\u8981\u6709\u4ee5\u4e0b\u4e24\u79cd\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">(1) nodeSelector\u306e\u307f\u3092\u4f7f\u7528<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">(2) nodeSelector\u3068taint\/toleration\u3092\u4f7f\u7528<\/ul>\n<p>\u53ef\u4ee5\u9009\u4efb\u4f55\u4e00\u79cd\uff0c\u4f46\u8fd9\u6b21\u6211\u4eec\u9009\u62e9\u53ea\u4f7f\u7528\u300c(1)\u4ec5\u4f7f\u7528nodeSelector\u300d\u7684\u65b9\u6cd5\u3002<\/p>\n<h2>\u53ea\u9700\u4f7f\u7528nodeSelector\u3002<\/h2>\n<p>(Note: This is a transliteration of the original phrase using pinyin, as it is not possible to directly input Chinese characters in this text-based format.)<\/p>\n<p>\u672c\u6b21\uff0cinfra\u8282\u70b9\u548cworker\u8282\u70b9\u5206\u522b\u5177\u6709\u201cnode-role.kubernetes.io\/infra: &#8220;&#8221;\u201d\u548c\u201cnode-role.kubernetes.io\/worker: &#8220;&#8221;\u201d\u8fd9\u4e24\u4e2a\u8282\u70b9\u6807\u7b7e\uff0c\u5e76\u4e14\u5728oc get node\u7684ROLES\u503c\u4e2d\u4e5f\u5206\u522b\u663e\u793a\u4e3ainfra\u548cworker\u3002<\/p>\n<p>\uff08\u8282\u70b9\u6807\u7b7e\u786e\u8ba4\uff09<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get node\r\nNAME        STATUS   ROLES    AGE   VERSION\r\ninfra-01    Ready    infra    40d   v1.23.5+b0357ed\r\ninfra-02    Ready    infra    40d   v1.23.5+b0357ed\r\ninfra-03    Ready    infra    40d   v1.23.5+b0357ed\r\nmaster-01   Ready    master   40d   v1.23.5+b0357ed\r\nmaster-02   Ready    master   40d   v1.23.5+b0357ed\r\nmaster-03   Ready    master   40d   v1.23.5+b0357ed\r\nworker-01   Ready    worker   40d   v1.23.5+b0357ed\r\nworker-02   Ready    worker   40d   v1.23.5+b0357ed\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u53c2\u8003\uff1a\u57fa\u7840\u8bbe\u65bd\u8282\u70b9<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get node infra-01 <span class=\"nt\">-o<\/span> yaml | <span class=\"nb\">grep<\/span> <span class=\"nt\">-A<\/span> 8 labels\r\n  labels:\r\n    beta.kubernetes.io\/arch: amd64\r\n    beta.kubernetes.io\/os: linux\r\n    kubernetes.io\/arch: amd64\r\n    kubernetes.io\/hostname: infra-01\r\n    kubernetes.io\/os: linux\r\n    node-role.kubernetes.io\/infra: <span class=\"s2\">\"\"<\/span>\r\n    node.openshift.io\/os_id: rhcos\r\n  name: infra-01\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\uff08\u53c2\u8003\uff09\u5de5\u4f5c\u8282\u70b9<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get node worker-01 <span class=\"nt\">-o<\/span> yaml | <span class=\"nb\">grep<\/span> <span class=\"nt\">-A<\/span> 8 labels\r\n  labels:\r\n    beta.kubernetes.io\/arch: amd64\r\n    beta.kubernetes.io\/os: linux\r\n    kubernetes.io\/arch: amd64\r\n    kubernetes.io\/hostname: worker-01\r\n    kubernetes.io\/os: linux\r\n    node-role.kubernetes.io\/worker: <span class=\"s2\">\"\"<\/span>\r\n    node.openshift.io\/os_id: rhcos\r\n  name: worker-01\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u5728\u8fd0\u884c\u5e94\u7528\u7a0b\u5e8fPod\u7684\u9879\u76ee\uff08\u547d\u540d\u7a7a\u95f4\uff09\u4e2d\uff0c\u5c06worker node\u7684\u8282\u70b9\u6807\u7b7e &#8220;node-role.kubernetes.io\/worker: &#8220;&#8221; &#8221; \u6307\u5b9a\u4e3anodeSelector\u3002\u901a\u8fc7\u8fd9\u4e2a\u8bbe\u7f6e\uff0c\u5f53\u5728\u4e3a\u8be5\u5e94\u7528\u7a0b\u5e8fPod\u4e13\u7528\u7684\u9879\u76ee\uff08\u547d\u540d\u7a7a\u95f4\uff09\u90e8\u7f72Pod\u65f6\uff0cPod\u5c06\u59cb\u7ec8\u5728\u8be5worker node\u4e0a\u521b\u5efa\u3002<\/p>\n<p>\u521b\u5efa\u9002\u7528\u4e8e\u5e94\u7528\u7a0b\u5e8fPod\u7684\u9879\u76ee\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc new-project <span class=\"nb\">test\r\n<\/span>Now using project <span class=\"s2\">\"test\"<\/span> on server <span class=\"s2\">\"https:\/\/api.cluster-01.example.local:6443\"<\/span><span class=\"nb\">.<\/span>\r\n\r\nYou can add applications to this project with the <span class=\"s1\">'new-app'<\/span> command. For example, try:\r\n\r\n    oc new-app rails-postgresql-example\r\n\r\nto build a new example application <span class=\"k\">in <\/span>Ruby. Or use kubectl to deploy a simple Kubernetes application:\r\n\r\n    kubectl create deployment hello-node <span class=\"nt\">--image<\/span><span class=\"o\">=<\/span>k8s.gcr.io\/e2e-test-images\/agnhost:2.33 <span class=\"nt\">--<\/span> \/agnhost serve-hostname\r\n\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u5c06worker\u8282\u70b9\u4e0a\u5206\u914d\u7684\u8282\u70b9\u6807\u7b7e\u8bbe\u7f6e\u4e3aopenshift.io\/node-selector\u7684\u547d\u540d\u7a7a\u95f4\uff0c\u9002\u7528\u4e8e\u5e94\u7528\u7a0b\u5e8fPod\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc annotate namespace <span class=\"nb\">test <\/span>openshift.io\/node-selector<span class=\"o\">=<\/span>node-role.kubernetes.io\/worker<span class=\"o\">=<\/span>\r\nnamespace\/test annotated\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc get ns <span class=\"nb\">test<\/span> <span class=\"nt\">-o<\/span> yaml\r\napiVersion: v1\r\nkind: Namespace\r\nmetadata:\r\n  annotations:\r\n    openshift.io\/description: <span class=\"s2\">\"\"<\/span>\r\n    openshift.io\/display-name: <span class=\"s2\">\"\"<\/span>\r\n    openshift.io\/node-selector: node-role.kubernetes.io\/worker<span class=\"o\">=<\/span>\r\n    openshift.io\/requester: admin\r\n    openshift.io\/sa.scc.mcs: s0:c26,c20\r\n    openshift.io\/sa.scc.supplemental-groups: 1000690000\/10000\r\n    openshift.io\/sa.scc.uid-range: 1000690000\/10000\r\n  creationTimestamp: <span class=\"s2\">\"2022-06-02T06:29:55Z\"<\/span>\r\n  labels:\r\n    kubernetes.io\/metadata.name: <span class=\"nb\">test\r\n  <\/span>name: <span class=\"nb\">test\r\n  <\/span>resourceVersion: <span class=\"s2\">\"33443927\"<\/span>\r\n  uid: 6471fde8-6ef0-4f29-b1f5-f6b227ea566d\r\nspec:\r\n  finalizers:\r\n  - kubernetes\r\nstatus:\r\n  phase: Active\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u901a\u8fc7\u8fd9\u6837\u505a\uff0c\u5728\u8fd9\u4e2a\u9879\u76ee\uff08\u547d\u540d\u7a7a\u95f4\uff09\u4e2d\u521b\u5efa\u7684Pod\u5c06\u4e0d\u5728\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u4e0a\u8fd0\u884c\uff0c\u800c\u662f\u5728\u5de5\u4f5c\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<h3>\u5982\u679c\u6ca1\u6709\u521b\u5efa\u4e13\u95e8\u7528\u4e8e\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u7684MCP\u3002<\/h3>\n<p>\u5982\u679c\u60a8\u9009\u62e9\u4f7f\u7528\u201cinfra\u8282\u70b9\u7684\u914d\u7f6e\u65b9\u6cd5\u201d\u6765\u914d\u7f6einfra\u8282\u70b9\u6240\u9700\u7684worker\u8282\u70b9\u5e76\u901a\u8fc7\u4e3ainfra\u8282\u70b9\u6dfb\u52a0\u201c\u8282\u70b9\u6807\u7b7e\u201d\u6765\u8fdb\u884c\u914d\u7f6e\uff0c\u800c\u4e0d\u521b\u5efa\u4e13\u7528\u4e8einfra\u8282\u70b9\u7684\u201cMCP\u201d\uff0c\u90a3\u4e48\u8fd8\u9700\u8981\u7a0d\u5fae\u505a\u4e9b\u8c03\u6574\u3002<\/p>\n<p>\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u7531\u4e8eMCP\u53ea\u6709\u4e3b\u8282\u70b9\u548c\u5de5\u4f5c\u8282\u70b9\u7684\u7528\u9014\uff0c\u4e3a\u4e86\u5c06\u5de5\u4f5c\u8282\u70b9\u7684MCP\u4e0e\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u5173\u8054\u8d77\u6765\uff0c\u6211\u4eec\u4e0d\u4f1a\u5220\u9664\u5de5\u4f5c\u8282\u70b9\u7684\u8282\u70b9\u6807\u7b7e\u3002<br \/>\n(\u5982\u679c\u5220\u9664\u5de5\u4f5c\u8282\u70b9\u7684\u8282\u70b9\u6807\u7b7e\uff0c\u5c06\u65e0\u6cd5\u8fdb\u884cOCP\u66f4\u65b0\uff0c\u56e0\u4e3a\u6ca1\u6709\u76f8\u5e94\u7684MCP\u6765\u652f\u6301\u7248\u672c\u5347\u7ea7\u3002)<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 mcp]# oc get mcp\r\nNAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE\r\nmaster   rendered-master-954e86f747cb1bc813dc88a53adc068c   True      False      False      3              3                   3                     0                      40d\r\nworker   rendered-worker-8062fb3f341ce6e926a1678cc33db7f3   True      False      False      5              5                   5                     0                      40d\r\n<span class=\"o\">[<\/span>root@bastion-01 mcp]#\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get node\r\nNAME        STATUS   ROLES          AGE   VERSION\r\ninfra-01    Ready    infra,worker   63d   v1.23.5+b0357ed\r\ninfra-02    Ready    infra,worker   63d   v1.23.5+b0357ed\r\ninfra-03    Ready    infra,worker   63d   v1.23.5+b0357ed\r\nmaster-01   Ready    master         63d   v1.23.5+b0357ed\r\nmaster-02   Ready    master         63d   v1.23.5+b0357ed\r\nmaster-03   Ready    master         63d   v1.23.5+b0357ed\r\nworker-01   Ready    worker         63d   v1.23.5+b0357ed\r\nworker-02   Ready    worker         63d   v1.23.5+b0357ed\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u4e3a\u5e94\u7528\u7a0b\u5e8fPod\u7684\u9879\u76ee\uff08\u547d\u540d\u7a7a\u95f4\uff09\u6307\u5b9a&#8221;node-role.kubernetes.io\/worker: &#8220;&#8221;\uff0c\u90a3\u4e48\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u4e5f\u53ef\u80fd\u4f1a\u8fd0\u884c\uff0c\u56e0\u6b64\u8981\u4e3a\u5e94\u7528\u7a0b\u5e8fPod\u9644\u52a0\u4efb\u610f\u7684\u8282\u70b9\u6807\u7b7e\u3002<br \/>\n\u5b9e\u9645\u4e0a\uff0c\u53ef\u4ee5\u662f\u4efb\u4f55\u6807\u7b7e\uff0c\u5982&#8221;app=&#8221;app-1&#8243;\uff0c\u4f46\u662f\u5982\u679c\u5c06\u5176\u8bbe\u7f6e\u6210&#8221;node-role.kubernetes.io\/app: &#8220;&#8221;\uff0c\u90a3\u4e48\u5728oc get node\u7684ROLES\u5217\u4e2d\u5c06\u663e\u793a\u51faapp\uff0c\u8fd9\u6837\u5c31\u66f4\u5bb9\u6613\u77e5\u9053\u54ea\u4e2a\u8282\u70b9\u662f\u7528\u4e8e\u5e94\u7528\u7a0b\u5e8fPod\u7684\u3002<\/p>\n<p>\u6211\u60f3\u8981\u5728\u5e0c\u671b\u8fd0\u884c\u5e94\u7528\u7a0b\u5e8fPod\u7684worker\u8282\u70b9\u4e0a\uff0c\u4e3a\u8282\u70b9\u6dfb\u52a0\u6807\u7b7enode-role.kubernetes.io\/app=&#8221;&#8221;\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc label node worker-01 node-role.kubernetes.io\/app<span class=\"o\">=<\/span><span class=\"s2\">\"\"<\/span>\r\nnode\/worker-01 labeled\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc label node worker-02 node-role.kubernetes.io\/app<span class=\"o\">=<\/span><span class=\"s2\">\"\"<\/span>\r\nnode\/worker-02 labeled\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u5de5\u4eba-01<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get node worker-01 <span class=\"nt\">-o<\/span> yaml | <span class=\"nb\">grep<\/span> <span class=\"nt\">-A<\/span> 9 labels\r\n  labels:\r\n    beta.kubernetes.io\/arch: amd64\r\n    beta.kubernetes.io\/os: linux\r\n    kubernetes.io\/arch: amd64\r\n    kubernetes.io\/hostname: worker-01\r\n    kubernetes.io\/os: linux\r\n    node-role.kubernetes.io\/app: <span class=\"s2\">\"\"<\/span>\r\n    node-role.kubernetes.io\/worker: <span class=\"s2\">\"\"<\/span>\r\n    node.openshift.io\/os_id: rhcos\r\n  name: worker-01\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u5728oc get node\u547d\u4ee4\u4e2d\uff0cROLES\u5217\u663e\u793a\u4e86app\u8fd9\u4e2a\u89d2\u8272\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc get node\r\nNAME        STATUS   ROLES          AGE   VERSION\r\ninfra-01    Ready    infra,worker   63d   v1.23.5+b0357ed\r\ninfra-02    Ready    infra,worker   63d   v1.23.5+b0357ed\r\ninfra-03    Ready    infra,worker   63d   v1.23.5+b0357ed\r\nmaster-01   Ready    master         63d   v1.23.5+b0357ed\r\nmaster-02   Ready    master         63d   v1.23.5+b0357ed\r\nmaster-03   Ready    master         63d   v1.23.5+b0357ed\r\nworker-01   Ready    app,worker     63d   v1.23.5+b0357ed\r\nworker-02   Ready    app,worker     63d   v1.23.5+b0357ed\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u53ea\u9700\u4e00\u79cd\u9009\u62e9\uff0c\u4ee5\u4e0b\u662f\u5bf9\u8be5\u53e5\u8fdb\u884c\u4e2d\u6587\u7ffb\u8bd1\u7684\u7ed3\u679c\uff1a<br \/>\n\u7136\u540e\uff0c\u5728\u8fd0\u884c\u5e94\u7528\u7a0b\u5e8f\u7684\u9879\u76ee\uff08\u547d\u540d\u7a7a\u95f4\uff09\u4e2d\u6307\u5b9a\u521a\u624d\u7ed9worker\u8282\u70b9\u5206\u914d\u7684\u8282\u70b9\u6807\u7b7e\u4f5c\u4e3anodeSelector\u3002\u8fd9\u6837\uff0c\u5728\u8fd9\u4e2a\u9879\u76ee\uff08\u547d\u540d\u7a7a\u95f4\uff09\u4e2d\u521b\u5efa\u7684Pod\u5c06\u5728\u6307\u5b9a\u7684worker\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc new-project <span class=\"nb\">test\r\n<\/span>Now using project <span class=\"s2\">\"test\"<\/span> on server <span class=\"s2\">\"https:\/\/api.cluster-01.example.local:6443\"<\/span><span class=\"nb\">.<\/span>\r\n\r\nYou can add applications to this project with the <span class=\"s1\">'new-app'<\/span> command. For example, try:\r\n\r\n    oc new-app rails-postgresql-example\r\n\r\nto build a new example application <span class=\"k\">in <\/span>Ruby. Or use kubectl to deploy a simple Kubernetes application:\r\n\r\n    kubectl create deployment hello-node <span class=\"nt\">--image<\/span><span class=\"o\">=<\/span>k8s.gcr.io\/e2e-test-images\/agnhost:2.33 <span class=\"nt\">--<\/span> \/agnhost serve-hostname\r\n\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc annotate namespace <span class=\"nb\">test <\/span>openshift.io\/node-selector<span class=\"o\">=<\/span>node-role.kubernetes.io\/app<span class=\"o\">=<\/span>\r\nnamespace\/test annotated\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc get ns <span class=\"nb\">test<\/span> <span class=\"nt\">-o<\/span> yaml\r\napiVersion: v1\r\nkind: Namespace\r\nmetadata:\r\n  annotations:\r\n    openshift.io\/description: <span class=\"s2\">\"\"<\/span>\r\n    openshift.io\/display-name: <span class=\"s2\">\"\"<\/span>\r\n    openshift.io\/node-selector: node-role.kubernetes.io\/app<span class=\"o\">=<\/span>\r\n    openshift.io\/requester: admin\r\n    openshift.io\/sa.scc.mcs: s0:c26,c5\r\n    openshift.io\/sa.scc.supplemental-groups: 1000660000\/10000\r\n    openshift.io\/sa.scc.uid-range: 1000660000\/10000\r\n  creationTimestamp: <span class=\"s2\">\"2022-05-09T12:10:37Z\"<\/span>\r\n  labels:\r\n    kubernetes.io\/metadata.name: <span class=\"nb\">test\r\n  <\/span>name: <span class=\"nb\">test\r\n  <\/span>resourceVersion: <span class=\"s2\">\"19316925\"<\/span>\r\n  uid: 7de494d4-4974-4b69-8bbb-ab36b8c69b4c\r\nspec:\r\n  finalizers:\r\n  - kubernetes\r\nstatus:\r\n  phase: Active\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]#\r\n<\/code><\/pre>\n<p>\u5728\u8003\u8651\u8fd9\u79cd\u65b9\u6cd5\u65f6\uff0c\u5982\u679c\u8981\u6dfb\u52a0\u65b0\u7684\u5de5\u4f5c\u8282\u70b9\u6216\u8005\u5728\u8282\u70b9\u6545\u969c\u65f6\u91cd\u65b0\u5b89\u88c5RHCOS\uff0c\u5c31\u9700\u8981\u8bb0\u5f97\u4e3a\u5e94\u7528\u7a0b\u5e8fPod\u5206\u914d\u8282\u70b9\u6807\u7b7e\u3002<\/p>\n<h2>\u4f7f\u7528nodeSelector\u548ctaint\/toleration\u6765\u586b\u5145(\u8865\u8db3) (2)\u3002<\/h2>\n<p>\u8fd9\u6b21\u867d\u7136\u6ca1\u505a\uff0c\u4f46\u6709\u4e00\u79cd\u5728\u5de5\u4f5c\u8282\u70b9\u4e0a\u8fd0\u884c\u5e94\u7528\u7a0b\u5e8fPod\u7684\u65b9\u6cd5\u662f\u7ed9infra\u8282\u70b9\u6dfb\u52a0taint\u3002<br \/>\n\u4e3a\u4e86\u7ed9infra\u8282\u70b9\u6dfb\u52a0taint\uff0c\u5f53\u521b\u5efa\u5e94\u7528\u7a0b\u5e8fPod\u65f6\uff0c\u5b83\u5c06\u5728\u6ca1\u6709taint\u7684\u5de5\u4f5c\u8282\u70b9\u4e0a\u8fd0\u884c\u3002<br \/>\n\u7136\u800c\uff0c\u4e3a\u4e86\u5b9e\u73b0\u5728infra\u8282\u70b9\u4e0a\u8fd0\u884c\uff0c\u9700\u8981\u5728\u57fa\u7840\u8bbe\u65bd\u7684\u64cd\u4f5c\u7ec4\u4ef6\uff08\u8def\u7531\u5668\u3001OCP\u5185\u90e8\u6ce8\u518c\u8868\u3001\u76d1\u63a7\u3001\u65e5\u5fd7\u8bb0\u5f55\uff09\u4e0a\u6307\u5b9atoleration\u3002<\/p>\n<p>\u8a73\u7d30\u4fe1\u606f\u53ef\u4ee5\u5728\u4ee5\u4e0b\u7684\u77e5\u8b58\u5eab\u4e2d\u627e\u5230\u3002<\/p>\n<ul class=\"post-ul\">KB \/ Infrastructure Nodes in OpenShift 4<\/ul>\n<p>\u6211\u8ba4\u4e3a\u5728OCP\u7684\u6587\u4ef6\u4e2d\u5927\u6982\u662f\u4ee5\u4e0b\u8fd9\u4e9b\u7684\u610f\u601d\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">OCP 4.10 Docs \/ \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u8a2d\u5b9a \/ 5. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306e\u30af\u30e9\u30b9\u30bf\u30fc\u30bf\u30b9\u30af \/ 5.5. \u30de\u30b7\u30f3\u30bb\u30c3\u30c8\u30ea\u30bd\u30fc\u30b9\u306e\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u30fc\u30ce\u30fc\u30c9\u3078\u306e\u5272\u308a\u5f53\u3066 \/ 5.5.1. \u30c6\u30a4\u30f3\u30c8\u304a\u3088\u3073\u5bb9\u8a8d\u3092\u4f7f\u7528\u3057\u305f\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u30fc\u30ce\u30fc\u30c9\u306e\u30ef\u30fc\u30af\u30ed\u30fc\u30c9\u306e\u30d0\u30a4\u30f3\u30c7\u30a3\u30f3\u30b0<\/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\">OCP 4.10 Docs \/ \u30cd\u30c3\u30c8\u30ef\u30fc\u30af \/ 5. OPENSHIFT CONTAINER PLATFORM \u306e INGRESS OPERATOR \/ 5.3. Ingress \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u8a2d\u5b9a\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc<\/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\">OCP 4.10 Docs \/ \u30e2\u30cb\u30bf\u30ea\u30f3\u30b0 \/ 2. \u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u30b9\u30bf\u30c3\u30af\u306e\u8a2d\u5b9a \/ 2.7. \u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3078\u306e\u5bb9\u8a8d (toleration) \u306e\u5272\u308a\u5f53\u3066<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">OCP 4.10 Docs \/ \u30ed\u30ae\u30f3\u30b0 \/ 22. \u30ed\u30ae\u30f3\u30b0\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u306e\u8a2d\u5b9a \/ 22.7. \u5bb9\u8a8d\u3092\u4f7f\u7528\u3057\u305f OpenShift Logging Pod \u914d\u7f6e\u306e\u5236\u5fa1<\/ul>\n<p>\u5927\u81f4\u4e0a\uff0c\u4ee5\u4e0b\u662f\u5927\u591a\u6570\u60c5\u51b5\u7684\u6d41\u7a0b\uff0c\u4f46\u6211\u4f1a\u5728\u76d1\u63a7\u65b9\u9762\u4e3e\u4e00\u4e9b\u4f8b\u5b50\u3002<\/p>\n<p>\u5728 Infra \u8282\u70b9\u4e0a\u8bbe\u7f6e Taint\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"o\">[<\/span>root@bastion-01 ~]# oc label node &lt;infra node&gt; node-role.kubernetes.io\/infra<span class=\"o\">=<\/span>\r\n<span class=\"o\">[<\/span>root@bastion-01 ~]# oc adm taint nodes <span class=\"nt\">-l<\/span> node-role.kubernetes.io\/infra <span class=\"nv\">infra<\/span><span class=\"o\">=<\/span>reserved:NoSchedule <span class=\"nv\">infra<\/span><span class=\"o\">=<\/span>reserved:NoExecute\r\n<\/code><\/pre>\n<p>\u8fd0\u7ef4\u7ec4\u4ef6\u53ef\u4ee5\u5728\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u4e0a\u8bbe\u7f6e\u8282\u70b9\u9009\u62e9\u5668\u548c\u5bb9\u5fcd\u8bbe\u7f6e\u3002<\/p>\n<p>(\u4f8b) \u76d1\u63a7(cluster-monitoring-configmap.yaml)<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ConfigMap<\/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\">cluster-monitoring-config<\/span>\r\n  <span class=\"na\">namespace<\/span><span class=\"pi\">:<\/span> <span class=\"s\">openshift-monitoring<\/span>\r\n<span class=\"na\">data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">config.yaml<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">|+<\/span>\r\n    <span class=\"s\">alertmanagerMain:<\/span>\r\n      <span class=\"s\">nodeSelector:<\/span>\r\n        <span class=\"s\">node-role.kubernetes.io\/infra: \"\"<\/span>\r\n      <span class=\"s\">tolerations:<\/span>\r\n      <span class=\"s\">- key: infra<\/span>\r\n        <span class=\"s\">value: reserved<\/span>\r\n        <span class=\"s\">effect: NoSchedule<\/span>\r\n      <span class=\"s\">- key: infra<\/span>\r\n        <span class=\"s\">value: reserved<\/span>\r\n        <span class=\"s\">effect: NoExecute<\/span>\r\n    <span class=\"s\">prometheusK8s:<\/span>\r\n      <span class=\"s\">(\u4ee5\u4e0b\u540c\u69d8)<\/span>\r\n<\/code><\/pre>\n<p>\u901a\u8fc7\u8fd9\u79cd\u65b9\u5f0f\uff0c\u5e94\u7528\u7a0b\u5e8fPod\u53ef\u4ee5\u5728\u4e0d\u8fdb\u884c\u4efb\u4f55\u8bbe\u7f6e\u7684\u60c5\u51b5\u4e0b\uff0c\u5728worker\u8282\u70b9\u4e0a\u901a\u8fc7\u57fa\u7840\u8bbe\u65bd\u8282\u70b9\u7684Taint\u8bbe\u7f6e\u800c\u8fd0\u884c\u3002<\/p>\n<p>\u4e0d\u8bba\u662f\u53ea\u4f7f\u7528&#8221; (1) nodeSelector&#8221; \uff0c\u8fd8\u662f\u540c\u65f6\u4f7f\u7528 &#8221; (2) nodeSelector\u548c taint\/toleration&#8221; \uff0c\u90fd\u53ef\u4ee5\u3002\u4f46\u5c31\u4e2a\u4eba\u800c\u8a00\uff0c\u6211\u8ba4\u4e3a\u53ea\u4f7f\u7528&#8221; (1) nodeSelector&#8221; \u66f4\u7b80\u5355\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6982\u8981\u6982\u8ff0 \u53ef\u4ee5\u901a\u8fc7\u5728OpenShift (OCP)\u4e0a\u8bbe\u7f6e\u4e13\u7528\u7684infra\u8282\u70b9\u6765\u5c06\u8fd0\u7ef4\u7ec4\u4ef6\uff0c\u4f8b\u5982\u9ed8\u8ba4\u8def\u7531\u5668\u3001\u5185\u90e8 [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-44047","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>\u4f7f\u7528OpenShift\u7684Machine Config Pool\uff08MCP\uff09\u6765\u521b\u5efaInfra\u8282\u70b9 - 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\/\u4f7f\u7528openshift\u7684machine-config-pool\uff08mcp\uff09\u6765\u521b\u5efainfra\u8282\u70b9\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528OpenShift\u7684Machine Config Pool\uff08MCP\uff09\u6765\u521b\u5efaInfra\u8282\u70b9\" \/>\n<meta property=\"og:description\" content=\"\u6982\u8981\u6982\u8ff0 \u53ef\u4ee5\u901a\u8fc7\u5728OpenShift (OCP)\u4e0a\u8bbe\u7f6e\u4e13\u7528\u7684infra\u8282\u70b9\u6765\u5c06\u8fd0\u7ef4\u7ec4\u4ef6\uff0c\u4f8b\u5982\u9ed8\u8ba4\u8def\u7531\u5668\u3001\u5185\u90e8 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528openshift\u7684machine-config-pool\uff08mcp\uff09\u6765\u521b\u5efainfra\u8282\u70b9\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-15T19:42:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-04T05:39:42+00:00\" \/>\n<meta name=\"author\" content=\"\u6e05, \u5b87\" \/>\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, \u5b87\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 \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\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/\",\"name\":\"\u4f7f\u7528OpenShift\u7684Machine Config Pool\uff08MCP\uff09\u6765\u521b\u5efaInfra\u8282\u70b9 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-03-15T19:42:49+00:00\",\"dateModified\":\"2024-05-04T05:39:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528OpenShift\u7684Machine Config Pool\uff08MCP\uff09\u6765\u521b\u5efaInfra\u8282\u70b9\"}]},{\"@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\/1a6ecd3d914d22a5ac32791ffc1fbd8e\",\"name\":\"\u6e05, \u5b87\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u5b87\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528OpenShift\u7684Machine Config Pool\uff08MCP\uff09\u6765\u521b\u5efaInfra\u8282\u70b9 - 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\/\u4f7f\u7528openshift\u7684machine-config-pool\uff08mcp\uff09\u6765\u521b\u5efainfra\u8282\u70b9\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528OpenShift\u7684Machine Config Pool\uff08MCP\uff09\u6765\u521b\u5efaInfra\u8282\u70b9","og_description":"\u6982\u8981\u6982\u8ff0 \u53ef\u4ee5\u901a\u8fc7\u5728OpenShift (OCP)\u4e0a\u8bbe\u7f6e\u4e13\u7528\u7684infra\u8282\u70b9\u6765\u5c06\u8fd0\u7ef4\u7ec4\u4ef6\uff0c\u4f8b\u5982\u9ed8\u8ba4\u8def\u7531\u5668\u3001\u5185\u90e8 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528openshift\u7684machine-config-pool\uff08mcp\uff09\u6765\u521b\u5efainfra\u8282\u70b9\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-03-15T19:42:49+00:00","article_modified_time":"2024-05-04T05:39:42+00:00","author":"\u6e05, \u5b87","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u5b87","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"19 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/","name":"\u4f7f\u7528OpenShift\u7684Machine Config Pool\uff08MCP\uff09\u6765\u521b\u5efaInfra\u8282\u70b9 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-03-15T19:42:49+00:00","dateModified":"2024-05-04T05:39:42+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528OpenShift\u7684Machine Config Pool\uff08MCP\uff09\u6765\u521b\u5efaInfra\u8282\u70b9"}]},{"@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\/1a6ecd3d914d22a5ac32791ffc1fbd8e","name":"\u6e05, \u5b87","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","caption":"\u6e05, \u5b87"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8openshift%e7%9a%84machine-config-pool%ef%bc%88mcp%ef%bc%89%e6%9d%a5%e5%88%9b%e5%bb%bainfra%e8%8a%82%e7%82%b9%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\/44047","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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=44047"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/44047\/revisions"}],"predecessor-version":[{"id":98649,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/44047\/revisions\/98649"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=44047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=44047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=44047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}