{"id":260,"date":"2026-03-06T10:45:05","date_gmt":"2026-03-06T02:45:05","guid":{"rendered":"https:\/\/www.xxiaoteng.cn\/?p=260"},"modified":"2026-05-11T21:20:26","modified_gmt":"2026-05-11T13:20:26","slug":"k8s%e4%ba%b2%e5%92%8c%e5%8a%9b%e6%8a%80%e6%9c%af%e6%96%87%e6%a1%a3","status":"publish","type":"post","link":"https:\/\/www.xxiaoteng.cn\/?p=260","title":{"rendered":"K8s\u4eb2\u548c\u529b\u6280\u672f\u6587\u6863"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"toc-0\">1.1 \u62d3\u6251\u57df\u5212\u5206<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u8d85\u5927\u89c4\u6a21\u96c6\u7fa4\u4e2d\uff0c\u53ef\u901a\u8fc7\u533a\u57df\u3001\u53ef\u7528\u533a\u3001\u6570\u636e\u4e2d\u5fc3\u3001\u673a\u67dc\u7b49\u7ef4\u5ea6\u5212\u5206\u62d3\u6251\u57df\uff0c\u901a\u8fc7\u8282\u70b9\u6807\u7b7e\u5b9e\u73b0\u7cbe\u51c6\u5212\u5206\uff0c\u793a\u4f8b\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"prettyprint\" ># \u6309\u533a\u57df\u5212\u5206\u62d3\u6251\u57df\uff08\u5317\u4eac\u3001\u5357\u4eac\u533a\u57df\uff09\nkubectl label node k8s-master01 k8s-node01 region=beijing\nkubectl label node k8s-node02 region=nanjing\n\n# \u6309\u53ef\u7528\u533a\u5212\u5206\uff08\u5317\u4eac\u533a\u57df\u4e0b\u5206\u6d77\u6dc0\u3001\u671d\u9633\u53ef\u7528\u533a\uff09\nkubectl label node k8s-master01 zone=beijing-haidian\nkubectl label node k8s-node01 zone=beijing-chaoyang\n\n# \u6309\u673a\u623f\u5212\u5206\uff08\u6d77\u6dc0\u53ef\u7528\u533a\u4e0b\u5206\u4e0d\u540c\u673a\u623f\uff09\nkubectl label node k8s-master01 engineroom=beijing-haidian-c1<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"toc-1\">1.2 K8s \u4eb2\u548c\u529b\u5b9e\u6218<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toc-2\">1.2.1 \u540c\u4e00\u4e2a\u5e94\u7528\u5fc5\u987b\u90e8\u7f72\u5728\u4e0d\u540c\u7684\u5bbf\u4e3b\u673a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7podAntiAffinity\u7684requiredDuringSchedulingIgnoredDuringExecution\uff0c\u5f3a\u5236\u5e94\u7528\u526f\u672c\u4e0d\u5904\u4e8e\u540c\u4e00\u5bbf\u4e3b\u673a\uff08\u62d3\u6251\u57df\u4e3a\u5bbf\u4e3b\u673a hostname\uff09\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"prettyprint\" >apiVersion: apps\/v1 \nkind: Deployment \nmetadata: \n  name: diff-nodes  # \u90e8\u7f72\u540d\u79f0\n  labels: \n    app: diff-nodes  # \u5e94\u7528\u6807\u7b7e\uff0c\u7528\u4e8e\u5173\u8054\u4eb2\u548c\u6027\u89c4\u5219\nspec: \n  selector: \n    matchLabels: \n      app: diff-nodes  # \u9009\u62e9\u5339\u914d\u6807\u7b7e\u7684Pod\n  replicas: 2  # \u90e8\u7f722\u4e2a\u526f\u672c\n  template: \n    metadata: \n      labels: \n        app: diff-nodes  # Pod\u6807\u7b7e\uff0c\u4e0e\u4eb2\u548c\u6027\u89c4\u5219\u5339\u914d\n    spec: \n      affinity: \n        podAntiAffinity:  # Pod\u53cd\u4eb2\u548c\u6027\uff1a\u907f\u514d\u540c\u4e00\u5e94\u7528\u526f\u672c\u5728\u540c\u4e00\u62d3\u6251\u57df\n          requiredDuringSchedulingIgnoredDuringExecution:  # \u8c03\u5ea6\u65f6\u5fc5\u987b\u6ee1\u8db3\uff0c\u8fd0\u884c\u65f6\u5ffd\u7565\n          - labelSelector:  # \u9009\u62e9\u5339\u914d\u7684Pod\u6807\u7b7e\n              matchExpressions: \n              - key: app  # \u6807\u7b7e\u952e\n                operator: In  # \u5339\u914d\u89c4\u5219\uff1a\u5305\u542b\u6307\u5b9a\u503c\n                values: &#091;diff-nodes]  # \u5339\u914d\u7684\u6807\u7b7e\u503c\n            topologyKey: kubernetes.io\/hostname  # \u62d3\u6251\u57df\u952e\uff1a\u6309\u5bbf\u4e3b\u673a\u5212\u5206\n      containers: \n      - name: diff-nodes  # \u5bb9\u5668\u540d\u79f0\n        image: registry.cn-beijing.aliyuncs.com\/dotbalo\/nginx:1.15.12  # \u5bb9\u5668\u955c\u50cf\n        imagePullPolicy: IfNotPresent  # \u955c\u50cf\u62c9\u53d6\u7b56\u7565\uff1a\u672c\u5730\u6709\u5219\u4e0d\u62c9\u53d6<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toc-3\">1.2.2 \u540c\u4e00\u4e2a\u5e94\u7528\u5c3d\u91cf\u90e8\u7f72\u5728\u4e0d\u540c\u7684\u5bbf\u4e3b\u673a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7podAntiAffinity\u7684preferredDuringSchedulingIgnoredDuringExecution\uff0c\u4f18\u5148\u8ba9\u5e94\u7528\u526f\u672c\u4e0d\u5904\u4e8e\u540c\u4e00\u5bbf\u4e3b\u673a\uff0c\u4e0d\u5f3a\u5236\u8981\u6c42\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"prettyprint\" >apiVersion: apps\/v1 \nkind: Deployment \nmetadata: \n  name: diff-nodes  # \u90e8\u7f72\u540d\u79f0\n  labels: \n    app: diff-nodes  # \u5e94\u7528\u6807\u7b7e\nspec: \n  selector: \n    matchLabels: \n      app: diff-nodes  # \u5339\u914dPod\u6807\u7b7e\n  replicas: 2  # 2\u4e2a\u526f\u672c\n  template: \n    metadata: \n      labels: \n        app: diff-nodes  # Pod\u6807\u7b7e\n    spec: \n      affinity: \n        podAntiAffinity:  # Pod\u53cd\u4eb2\u548c\u6027\n          preferredDuringSchedulingIgnoredDuringExecution:  # \u8c03\u5ea6\u65f6\u4f18\u5148\u6ee1\u8db3\uff0c\u8fd0\u884c\u65f6\u5ffd\u7565\n          - podAffinityTerm:  # \u4eb2\u548c\u6027\u6761\u4ef6\n              labelSelector: \n                matchExpressions: \n                - key: app \n                  operator: In \n                  values: &#091;diff-nodes]\n              topologyKey: kubernetes.io\/hostname  # \u6309\u5bbf\u4e3b\u673a\u5212\u5206\u62d3\u6251\u57df\n            weight: 100  # \u4f18\u5148\u7ea7\u6743\u91cd\uff080-100\uff0c\u6570\u503c\u8d8a\u9ad8\u4f18\u5148\u7ea7\u8d8a\u9ad8\uff09\n      containers: \n      - name: diff-nodes \n        image: registry.cn-beijing.aliyuncs.com\/dotbalo\/nginx:1.15.12 \n        imagePullPolicy: IfNotPresent<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toc-4\">1.2.3 \u540c\u4e00\u4e2a\u5e94\u7528\u5206\u5e03\u5728\u4e0d\u540c\u7684\u673a\u623f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7Pod\u53cd\u4eb2\u548c\u6027\uff0c\u4f18\u5148\u8ba9\u5e94\u7528\u526f\u672c\u5206\u5e03\u5728\u4e0d\u540c\u53ef\u7528\u57df\uff08\u62d3\u6251\u57df\u4e3azone\uff09\uff0c\u63d0\u5347\u670d\u52a1\u9ad8\u53ef\u7528\u6027\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"prettyprint\" >apiVersion: apps\/v1 \nkind: Deployment \nmetadata: \n  name: diff-zone  # \u90e8\u7f72\u540d\u79f0\uff08\u533a\u5206\u4e0d\u540c\u53ef\u7528\u57df\uff09\n  labels: \n    app: diff-zone  # \u5e94\u7528\u6807\u7b7e\nspec: \n  selector: \n    matchLabels: \n      app: diff-zone  # \u5339\u914dPod\u6807\u7b7e\n  replicas: 3  # 3\u4e2a\u526f\u672c\uff0c\u5206\u5e03\u5728\u4e0d\u540c\u53ef\u7528\u57df\n  template: \n    metadata: \n      labels: \n        app: diff-zone  # Pod\u6807\u7b7e\n    spec: \n      affinity: \n        podAntiAffinity:  # Pod\u53cd\u4eb2\u548c\u6027\n          preferredDuringSchedulingIgnoredDuringExecution: \n          - podAffinityTerm: \n              labelSelector: \n                matchExpressions: \n                - key: app \n                  operator: In \n                  values: &#091;diff-zone]\n              topologyKey: zone  # \u62d3\u6251\u57df\u952e\uff1a\u6309\u53ef\u7528\u533a\u5212\u5206\n            weight: 100  # \u9ad8\u4f18\u5148\u7ea7\n      containers: \n      - name: diff-nodes \n        image: registry.cn-beijing.aliyuncs.com\/dotbalo\/nginx:1.15.12 \n        imagePullPolicy: IfNotPresent<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toc-5\">1.2.4 \u5e94\u7528\u5c3d\u91cf\u548c\u7f13\u5b58\u670d\u52a1\u90e8\u7f72\u5728\u540c\u4e00\u4e2a\u53ef\u7528\u57df<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7Pod\u4eb2\u548c\u6027\uff0c\u4f18\u5148\u8ba9\u5e94\u7528\u4e0e\u7f13\u5b58\u670d\u52a1\u90e8\u7f72\u5728\u540c\u4e00\u5bbf\u4e3b\u673a\uff08\u62d3\u6251\u57df\u4e3ahostname\uff09\uff0c\u63d0\u5347\u8bbf\u95ee\u6027\u80fd\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"prettyprint\" ># 1. \u5148\u90e8\u7f72\u7f13\u5b58\u670d\u52a1\uff08\u6807\u7b7e\u4e3aapp: cache\uff09\nkubectl create deploy cache --image=registry.cn-beijing.aliyuncs.com\/dotbalo\/redis\n\n# 2. \u90e8\u7f72\u5e94\u7528\uff0c\u901a\u8fc7\u4eb2\u548c\u6027\u5173\u8054\u7f13\u5b58\u670d\u52a1\napiVersion: apps\/v1 \nkind: Deployment \nmetadata: \n  name: my-app  # \u5e94\u7528\u90e8\u7f72\u540d\u79f0\nspec: \n  replicas: 2  # 2\u4e2a\u5e94\u7528\u526f\u672c\n  selector: \n    matchLabels: \n      app: my-app  # \u5e94\u7528Pod\u6807\u7b7e\n  template: \n    metadata: \n      labels: \n        app: my-app  # Pod\u6807\u7b7e\n    spec: \n      affinity: \n        podAffinity:  # Pod\u4eb2\u548c\u6027\uff1a\u5e94\u7528\u4e0e\u7f13\u5b58\u670d\u52a1\u5c3d\u91cf\u540c\u57df\n          preferredDuringSchedulingIgnoredDuringExecution: \n          - weight: 100  # \u9ad8\u4f18\u5148\u7ea7\n            podAffinityTerm: \n              labelSelector: \n                matchExpressions: \n                - key: app \n                  operator: In \n                  values: &#091;cache]  # \u5339\u914d\u7f13\u5b58\u670d\u52a1\u7684\u6807\u7b7e\n              topologyKey: kubernetes.io\/hostname  # \u6309\u5bbf\u4e3b\u673a\u5212\u5206\n      containers: \n      - name: my-app \n        image: registry.cn-beijing.aliyuncs.com\/dotbalo\/nginx:1.15.12 \n        imagePullPolicy: IfNotPresent<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toc-6\">1.2.5 \u8ba1\u7b97\u670d\u52a1\u5fc5\u987b\u90e8\u7f72\u81f3\u9ad8\u6027\u80fd\u673a\u5668<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7nodeAffinity\u7684requiredDuringSchedulingIgnoredDuringExecution\uff0c\u5f3a\u5236\u8ba1\u7b97\u670d\u52a1\u90e8\u7f72\u5728\u6307\u5b9a\u9ad8\u6027\u80fd\u8282\u70b9\uff08\u6807\u7b7edisktype\u4e3assd\u6216nvme\uff09\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"prettyprint\" >apiVersion: apps\/v1 \nkind: Deployment \nmetadata: \n  name: compute  # \u8ba1\u7b97\u670d\u52a1\u90e8\u7f72\u540d\u79f0\nspec: \n  replicas: 2  # 2\u4e2a\u8ba1\u7b97\u670d\u52a1\u526f\u672c\n  selector: \n    matchLabels: \n      app: compute  # \u5e94\u7528\u6807\u7b7e\n  template: \n    metadata: \n      labels: \n        app: compute  # Pod\u6807\u7b7e\n    spec: \n      affinity: \n        nodeAffinity:  # \u8282\u70b9\u4eb2\u548c\u6027\uff1a\u6307\u5b9a\u90e8\u7f72\u8282\u70b9\n          requiredDuringSchedulingIgnoredDuringExecution:  # \u8c03\u5ea6\u65f6\u5fc5\u987b\u6ee1\u8db3\n            nodeSelectorTerms: \n            - matchExpressions: \n              - key: disktype  # \u8282\u70b9\u6807\u7b7e\u952e\uff08\u6807\u8bc6\u9ad8\u6027\u80fd\u78c1\u76d8\uff09\n                operator: In  # \u5339\u914d\u89c4\u5219\uff1a\u5305\u542b\u6307\u5b9a\u503c\n                values: &#091;ssd, nvme]  # \u9ad8\u6027\u80fd\u78c1\u76d8\u7c7b\u578b\n      containers: \n      - name: compute \n        image: registry.cn-beijing.aliyuncs.com\/dotbalo\/nginx:1.15.12 \n        imagePullPolicy: IfNotPresent<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toc-7\">1.2.6 \u8ba1\u7b97\u670d\u52a1\u5c3d\u91cf\u90e8\u7f72\u81f3\u9ad8\u6027\u80fd\u673a\u5668<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7nodeAffinity\u7684preferredDuringSchedulingIgnoredDuringExecution\uff0c\u4f18\u5148\u5c06\u8ba1\u7b97\u670d\u52a1\u90e8\u7f72\u5728\u9ad8\u6027\u80fd\u8282\u70b9\uff0c\u53ef\u8bbe\u7f6e\u6743\u91cd\u533a\u5206\u4f18\u5148\u7ea7\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"prettyprint\" >apiVersion: apps\/v1 \nkind: Deployment \nmetadata: \n  name: compute  # \u8ba1\u7b97\u670d\u52a1\u90e8\u7f72\u540d\u79f0\nspec: \n  replicas: 2 \n  selector: \n    matchLabels: \n      app: compute \n  template: \n    metadata: \n      labels: \n        app: compute \n    spec: \n      affinity: \n        nodeAffinity:  # \u8282\u70b9\u4eb2\u548c\u6027\n          preferredDuringSchedulingIgnoredDuringExecution:  # \u4f18\u5148\u6ee1\u8db3\n          # \u4f18\u5148\u7ea7100\uff1a\u4f18\u5148\u90e8\u7f72\u5728ssd\u8282\u70b9\n          - weight: 100 \n            preference: \n              matchExpressions: \n              - key: disktype \n                operator: In \n                values: &#091;ssd]\n          # \u4f18\u5148\u7ea750\uff1a\u5176\u6b21\u90e8\u7f72\u5728nvme\u8282\u70b9\n          - weight: 50\n            preference: \n              matchExpressions: \n              - key: disktype \n                operator: In \n                values: &#091;nvme]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toc-8\">1.2.7 \u5e94\u7528\u5c3d\u91cf\u4e0d\u90e8\u7f72\u81f3\u4f4e\u6027\u80fd\u673a\u5668<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7nodeAffinity\uff0c\u4f18\u5148\u8ba9\u5e94\u7528\u4e0d\u90e8\u7f72\u5728\u4f4e\u6027\u80fd\u8282\u70b9\uff08\u6807\u7b7eperformance\u4e3alow\uff09\uff0c\u4f7f\u7528NotIn\u5339\u914d\u89c4\u5219\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"prettyprint\" >apiVersion: apps\/v1 \nkind: Deployment \nspec: \n  name: compute-intensive-app  # \u8ba1\u7b97\u5bc6\u96c6\u578b\u5e94\u7528\u540d\u79f0\n  replicas: 3 \n  selector: \n    matchLabels: \n      app: compute-intensive  # \u5e94\u7528\u6807\u7b7e\n  template: \n    metadata: \n      labels: \n        app: compute-intensive  # Pod\u6807\u7b7e\n    spec: \n      affinity: \n        nodeAffinity:  # \u8282\u70b9\u4eb2\u548c\u6027\n          preferredDuringSchedulingIgnoredDuringExecution: \n          - weight: 100 \n            preference: \n              matchExpressions: \n              - key: performance  # \u8282\u70b9\u6027\u80fd\u6807\u7b7e\n                operator: NotIn  # \u5339\u914d\u89c4\u5219\uff1a\u4e0d\u5305\u542b\u6307\u5b9a\u503c\n                values: &#091;low]  # \u4f4e\u6027\u80fd\u8282\u70b9\u6807\u7b7e\u503c\n      containers: \n      - name: compute-intensive \n        image: registry.cn-beijing.aliyuncs.com\/dotbalo\/nginx:1.15.12 \n        imagePullPolicy: IfNotPresent<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"toc-9\">1.2.8 \u5e94\u7528\u5747\u5300\u5206\u5e03\u5728\u4e0d\u540c\u7684\u673a\u623f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7topologySpreadConstraints\uff08\u62d3\u6251\u57df\u7ea6\u675f\uff09\uff0c\u786e\u4fdd\u5e94\u7528\u526f\u672c\u5728\u4e0d\u540c\u62d3\u6251\u57df\uff08\u5982\u5bbf\u4e3b\u673a\uff09\u5747\u5300\u5206\u5e03\uff0c\u63a7\u5236\u526f\u672c\u504f\u5dee\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"prettyprint\" >apiVersion: apps\/v1 \nkind: Deployment \nmetadata: \n  name: example-deployment  # \u90e8\u7f72\u540d\u79f0\nspec: \n  replicas: 3  # 3\u4e2a\u526f\u672c\uff0c\u5747\u5300\u5206\u5e03\n  selector: \n    matchLabels: \n      app: example  # \u5e94\u7528\u6807\u7b7e\n  template: \n    metadata: \n      labels: \n        app: example  # Pod\u6807\u7b7e\n    spec: \n      topologySpreadConstraints:  # \u62d3\u6251\u57df\u7ea6\u675f\uff08\u591a\u4e2a\u7ea6\u675f\u9700\u5168\u90e8\u6ee1\u8db3\uff09\n      - maxSkew: 1  # \u6700\u5927\u526f\u672c\u504f\u5dee\uff1a\u4efb\u610f\u62d3\u6251\u57df\u95f4\u526f\u672c\u6570\u76f8\u5dee\u4e0d\u8d85\u8fc71\n        whenUnsatisfiable: DoNotSchedule  # \u4e0d\u6ee1\u8db3\u7ea6\u675f\u65f6\uff0c\u4e0d\u8c03\u5ea6\u65b0Pod\n        topologyKey: kubernetes.io\/hostname  # \u62d3\u6251\u57df\u952e\uff1a\u6309\u5bbf\u4e3b\u673a\u5212\u5206\n        labelSelector:  # \u5e94\u7528\u7ea6\u675f\u7684Pod\u6807\u7b7e\u9009\u62e9\u5668\n          matchLabels: \n            app: example\n      containers: \n      - name: example \n        image: registry.cn-beijing.aliyuncs.com\/dotbalo\/nginx:1.15.12\n# \u8865\u5145\u8bf4\u660e\uff1a\n# whenUnsatisfiable\u53ef\u9009\u503c\uff1a\n# - DoNotSchedule\uff1a\u4e0d\u6ee1\u8db3\u7ea6\u675f\u65f6\uff0c\u62d2\u7edd\u8c03\u5ea6\n# - ScheduleAnyway\uff1a\u4e0d\u6ee1\u8db3\u7ea6\u675f\u65f6\uff0c\u4ecd\u5141\u8bb8\u8c03\u5ea6<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1.1 \u62d3\u6251\u57df\u5212\u5206 \u5728\u8d85\u5927\u89c4\u6a21\u96c6\u7fa4\u4e2d\uff0c\u53ef\u901a\u8fc7\u533a\u57df\u3001\u53ef\u7528\u533a\u3001\u6570\u636e\u4e2d\u5fc3\u3001\u673a\u67dc\u7b49\u7ef4\u5ea6\u5212\u5206\u62d3\u6251\u57df\uff0c\u901a\u8fc7\u8282\u70b9\u6807\u7b7e\u5b9e\u73b0\u7cbe\u51c6 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-260","post","type-post","status-publish","format-standard","hentry","category-k8s"],"_links":{"self":[{"href":"https:\/\/www.xxiaoteng.cn\/index.php?rest_route=\/wp\/v2\/posts\/260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xxiaoteng.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xxiaoteng.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xxiaoteng.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xxiaoteng.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=260"}],"version-history":[{"count":1,"href":"https:\/\/www.xxiaoteng.cn\/index.php?rest_route=\/wp\/v2\/posts\/260\/revisions"}],"predecessor-version":[{"id":261,"href":"https:\/\/www.xxiaoteng.cn\/index.php?rest_route=\/wp\/v2\/posts\/260\/revisions\/261"}],"wp:attachment":[{"href":"https:\/\/www.xxiaoteng.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xxiaoteng.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xxiaoteng.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}