OpenKruise 组件

OpenKruise 组件

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

在这里插入图片描述

  • CRDs

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

kubectl get crd | grep kruise.io

advancedcronjobs.apps.kruise.io                       2021-03-11T01:46:56Z
broadcastjobs.apps.kruise.io                          2021-03-11T01:46:56Z
clonesets.apps.kruise.io                              2021-03-11T01:46:56Z
daemonsets.apps.kruise.io                             2021-03-11T01:46:56Z
imagepulljobs.apps.kruise.io                          2021-03-11T01:46:56Z
nodeimages.apps.kruise.io                             2021-03-11T01:46:56Z
sidecarsets.apps.kruise.io                            2021-03-11T01:46:56Z
statefulsets.apps.kruise.io                           2021-03-11T01:46:56Z
uniteddeployments.apps.kruise.io                      2021-03-11T01:46:56Z
  • Kruise-manager

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

kubectl get deploy -n kruise-system

NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
kruise-controller-manager   2/2     2            2           6m33s

kubectl get pod -n kruise-system

NAME                                         READY   STATUS    RESTARTS   AGE
kruise-controller-manager-5cd9c5b5dd-hb7z9   1/1     Running   0          6m48s
kruise-controller-manager-5cd9c5b5dd-mfdxz   1/1     Running   0          6m48s
kruise-daemon-29wc4                          1/1     Running   0          6m47s
kruise-daemon-9jvjb                          1/1     Running   0          6m47s
kruise-daemon-m4nmk                          1/1     Running   0          6m47s
kruise-daemon-q8vzl                          1/1     Running   0          6m48s

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

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

kubectl get svc -n kruise-system

NAME                     TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kruise-webhook-service   ClusterIP   10.100.86.89   <none>        443/TCP   7m23s

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

  • Kruise-daemon

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

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

kubectl get pod -n kruise-system -l control-plane=daemon

NAME                  READY   STATUS    RESTARTS   AGE
kruise-daemon-29wc4   1/1     Running   0          13m
kruise-daemon-9jvjb   1/1     Running   0          13m
kruise-daemon-m4nmk   1/1     Running   0          13m
kruise-daemon-q8vzl   1/1     Running   0          13m

猜你喜欢

转载自blog.csdn.net/miss1181248983/article/details/114704822