创建运维流水线

通过 OperationSet 自定义资源创建运维流水线。

我们可以对已注册的诊断操作进行编排以组成运维流水线,现在让我们将之前注册的诊断操作制作成流水线。

编写运维流水线

OperationSet 是用于声明诊断流水线的自定义资源,通过 OperationSet 您可以定义诊断流水线中需要执行的诊断操作。下列 OperationSet 中定义了一个包含之前已注册诊断操作的诊断流水线:

  1. apiVersion: diagnosis.kubediag.org/v1
  2. kind: OperationSet
  3. metadata:
  4. name: http-operation
  5. spec:
  6. adjacencyList:
  7. - id: 0
  8. to:
  9. - 1
  10. - id: 1
  11. operation: http-operation

OperationSet 中的 .spec.adjacencyList 字段包含了一个有向无环图,其中 id 为 0 的顶点表示诊断流水线的开始,其他顶点表示一个诊断操作。

将运维流水线注册到 KubeDiag 中

通过创建上述 OperationSet 注册诊断流水线:

  1. kubectl apply -f https://raw.githubusercontent.com/kubediag/kubediag/master/samples/http-operation/manifests/operationset.yaml

查看 OperationSet 的状态:

  1. $ kubectl get operationset http-operation -o yaml
  2. apiVersion: diagnosis.kubediag.org/v1
  3. kind: OperationSet
  4. metadata:
  5. labels:
  6. adjacency-list-hash: 864dcbdbfb
  7. name: http-operation
  8. resourceVersion: "2002860"
  9. selfLink: /apis/diagnosis.kubediag.org/v1/operationsets/http-operation
  10. uid: 34886fc6-4a4f-484c-b965-22e51d12dea0
  11. spec:
  12. adjacencyList:
  13. - to:
  14. - 1
  15. - id: 1
  16. operation: http-operation
  17. status:
  18. paths:
  19. - - id: 1
  20. operation: http-operation
  21. ready: true

您可能已经注意到 .status.ready 字段为 true 并且 .status.paths 字段中包含一条诊断路径,该状态表示 OperationSet 被 KubeDiag 成功接受。

最后修改 July 14, 2021 : Update index doc and some yaml path (15a2a0b)