OpenKruise 概述

326 阅读1分钟

阅读本节前请了解什么是 openkruise

openkruise doc :openkruise.io/zh/docs/

本文是系列专栏《OpenKruise 代码详解》的综述

仓库结构

kruise
├── apis: 包含 OpenKruise  API 定义和类型定义。
├── bin: 包含构建后的可执行文件。
├── cmd: 包含命令行工具的源代码。
├── config: 包含 OpenKruise 的配置文件。
├── docs: 包含项目的文档,如使用指南、API 文档等。
├── hack: 包含用于开发和测试的辅助脚本。
├── pkg: 包含 OpenKruise 的核心代码和功能实现。
   ├── client: 提供与 Kubernetes API Server 交互的客户端代码。
   ├── control: 控制器底层代码
   ├── controller: 控制器逻辑代码
   ├── daemon: 某些守护进程的实现代码
   ├── features: 特殊功能
   ├── util: 工具函数代码
   └── webhook: 提供 Webhook 相关的代码和功能实现。
├── scripts: 包含用于执行各种脚本的工具。
├── test: 包含测试代码和测试工具。

Workload详解

Init

|- controller.init()
|- main()
  |- controller.SetupWithManager(mgr)
    |- statefulset.Add(mgr)
      |- utildiscovery.DiscoverGVK(controllerKind)
      |- r := newReconciler(mgr)
      |- add(mgr, r) // add adds a new Controller to mgr with r as the reconcile.Reconciler
        |- Watch(asts)
        |- Watch(Pod)
    |- advancedcronjob.Add(mgr)
    |- xxxx.Add(mgr)

Reconcile

Advanced StatefulSet

CloneSet

Advanced DaemonSet

BroadcastJob

AdvancedCronJob

Sidecar

SidecarSet + PodLaunchPriority

多区域管理

WorkloadSpread

UnitedDeployment

运维特性

Container Restart

Imagepuller(NodeImage)

ResourceDistribution

应用安全防护

Deletion Protection

PodUnavailableBudget

Kruise-Daemon

Kruise-daemon

  1. Container-Recreate

  1. Imagepuller(NodeImage)

重要特性一览

生命周期钩子

SidecarSet 热升级

容器优先级启动

原地升级

升级预热