OpenKruise 组件

当你在一个 K8s 集群中安装了 Kruise,其实是创建了一些 Kruise 的 CRD 和相关组件。

OpenKruise components

CRDs

以下的 CRD 会安装到你的集群中:

  1. $ kubectl get crd | grep kruise.io
  2. advancedcronjobs.apps.kruise.io 2021-03-02T04:03:57Z
  3. broadcastjobs.apps.kruise.io 2021-03-02T04:03:57Z
  4. clonesets.apps.kruise.io 2021-03-02T04:03:57Z
  5. daemonsets.apps.kruise.io 2021-03-02T04:03:57Z
  6. imagepulljobs.apps.kruise.io 2021-03-02T04:03:57Z
  7. nodeimages.apps.kruise.io 2021-03-02T04:03:57Z
  8. sidecarsets.apps.kruise.io 2021-03-02T04:03:57Z
  9. statefulsets.apps.kruise.io 2021-03-02T04:03:57Z
  10. uniteddeployments.apps.kruise.io 2021-03-02T04:03:57Z

Kruise-manager

Kruise-manager 是一个运行 controller 和 webhook 中心组件,它通过 Deployment 部署在 kruise-system 命名空间中。

  1. $ kubectl get deploy -n kruise-system
  2. NAME READY UP-TO-DATE AVAILABLE AGE
  3. kruise-controller-manager 2/2 2 2 4h6m
  4. $ kubectl get pod -n kruise-system -l control-plane=controller-manager
  5. NAME READY STATUS RESTARTS AGE
  6. kruise-controller-manager-68dc6d87cc-k9vg8 1/1 Running 0 4h6m
  7. kruise-controller-manager-68dc6d87cc-w7x82 1/1 Running 0 4h6m

逻辑上来说,如 cloneset-controller/sidecarset-controller 这些的 controller 都是独立运行的。不过为了减少复杂度,它们都被打包在一个独立的二进制文件、并运行在 kruise-controller-manager-xxx 这个 Pod 中。

除了 controller 之外,kruise-controller-manager-xxx 中还包含了针对 Kruise CRD 以及 Pod 资源的 admission webhook。Kruise-manager 会创建一些 webhook configurations 来配置哪些资源需要感知处理、以及提供一个 Service 来给 kube-apiserver 调用。

  1. $ kubectl get svc -n kruise-system
  2. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  3. kruise-webhook-service ClusterIP 172.24.9.234 <none> 443/TCP 4h9m

上述的 kruise-webhook-service 非常重要,是提供给 kube-apiserver 调用的。

Kruise-daemon

这是从 Kruise v0.8.0 版本开始提供的一个新的 daemon 组件。

它通过 DaemonSet 部署到每个 Node 节点上,提供镜像预热、容器重启等功能。

  1. $ kubectl get pod -n kruise-system -l control-plane=daemon
  2. NAME READY STATUS RESTARTS AGE
  3. kruise-daemon-6hw6d 1/1 Running 0 4h7m
  4. kruise-daemon-d7xr4 1/1 Running 0 4h7m
  5. kruise-daemon-dqp8z 1/1 Running 0 4h7m
  6. kruise-daemon-dv96r 1/1 Running 0 4h7m
  7. kruise-daemon-q7594 1/1 Running 0 4h7m
  8. kruise-daemon-vnsbw 1/1 Running 0 4h7m