feat(kruise): support chart 1.8.3#224
Merged
Merged
Conversation
Collaborator
Author
|
lgtm |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
incubator/kruise 安装与功能测试报告
1. 测试结论
kruise-test最终处于deployed状态。kruise-controller-manager2/2 Ready,kruise-daemon1/1 Ready。kruise-testrelease 和kruise-system控制面,供后续继续验证。2. 测试环境
kind-argov1.34.0argo-control-planecontainerd://2.1.3linux/amd64v3.19incubator/kruise1.8.31.8.3备注:本地
kubectl version的 client 版本字符串为v0.0.0-master+$Format:%H$,执行kubectl version时会出现版本解析提示,但本次kubectl get/apply/wait/delete/auth等命令均可正常使用。3. 镜像与安装参数
Chart 默认镜像为 Docker Hub:
openkruise/kruise-manager:v1.8.3openkruise/kruise-helm-hook:v0.1.0为避免 Docker Hub 限流,并验证前置镜像同步结果,本次安装覆盖为:
镜像验证摘要:
mirrors.tencent.com/pavleli/kruise-manager:v1.8.3sha256:0482722b4e5690010fedcf726a7e41e8876b7aa1de987bdbbdd44e5daefd199elinux/amd64,linux/arm64,linux/ppc64lemirrors.tencent.com/pavleli/kruise-helm-hook:v0.1.0sha256:edc7cf9428fd72f9885431a4f0fe4e2e1724f6a8fbd4b592105fbdfdb2a9afdflinux/amd64,linux/arm64,linux/ppc64le4. 安装前检查
4.1 Chart 静态检查
执行命令:
结果:
4.2 模板渲染检查
执行命令:
结果:模板渲染成功,输出包含 Namespace、CRD、RBAC、Deployment、DaemonSet、WebhookConfiguration 和 pre-delete hook Job 等资源。
4.3 集群安装前状态
安装前未发现已有 Kruise release:
rtk helm list -A --filter 'kruise|openkruise'结果:
安装前未发现
kruise-systemnamespace:结果:
5. 安装过程
5.1 初始安装问题
第一次尝试使用 Helm CLI 的
--create-namespace:失败信息:
根因:
--create-namespace会先创建 release namespacekruise-system。installation.createNamespace=true,模板中也会创建同名 Namespace。后续处理过程中还发现一个关联问题:由 Helm CLI 创建的
kruise-system缺少 chart 期望的标签control-plane=openkruise,Kruise 的 pod validating webhook 会拦截自身 namespace 内 Pod 删除。当 webhook 后端短暂不可达时,Pod 删除会失败:修正方式:
安装时关闭 chart 内 Namespace 创建:
5.2 最终成功安装命令
结果:
6. 安装后健康检查
6.1 Helm release
结果:
6.2 控制面组件
结果:
Pod 状态:
6.3 Webhook service
结果:
说明 webhook service 已有两个 controller-manager backend endpoint。
6.4 CRD
已创建并建立的 Kruise CRD 包括:
7. 用户场景测试
测试 namespace:
测试 workload 镜像:
m.daocloud.io/docker.io/library/busybox:1.36m.daocloud.io/docker.io/library/alpine:3.207.1 场景一:CloneSet 创建、扩容与自愈
测试目标:
CloneSetCRD 可被 API Server 接收。创建 CloneSet:
初始结果:
扩容命令:
扩容结果:
自愈验证:
删除后状态:
结论:CloneSet 创建、扩容和 Pod 自愈能力验证通过。
7.2 场景二:SidecarSet 自动注入
测试目标:
SidecarSet可创建。创建 SidecarSet:
创建匹配标签的普通 Deployment:
Deployment 结果:
Pod 容器列表:
Pod 状态:
SidecarSet 状态:
控制器日志关键证据:
结论:SidecarSet webhook 注入和状态回写验证通过。
7.3 场景三:ImagePullJob 镜像预拉取
测试目标:
ImagePullJobGate=true生效。ImagePullJob能调度到指定节点。NodeImage回写状态。创建 ImagePullJob:
执行状态轮询结果:
最终 ImagePullJob 状态:
NodeImage关键状态:结论:ImagePullJob 控制器和 kruise-daemon 镜像预拉取链路验证通过。
8. 事件与日志证据
8.1 CloneSet 事件
8.2 SidecarSet 事件
8.3 控制器日志
CloneSet 状态更新:
SidecarSet 注入:
Daemon 镜像预拉取相关:
9. 观察项与风险
9.1 Namespace 创建方式
不建议对本 chart 使用以下组合:
同时保留默认:
原因:
namespaces "kruise-system" already exists。control-plane=openkruise标签,后续可能触发 Kruise webhook 自拦截问题。建议安装方式:
9.2 StorageClass RBAC
controller-manager 日志中出现过非阻塞错误:
权限检查:
结果:
当前集群存在默认 StorageClass:
影响评估:
kruise-manager-role对storageclasses.storage.k8s.io的get/list/watch权限,或明确该日志是否为预期降级行为。9.3 单节点 kind 环境限制
本次环境为单节点 kind 集群:
10. 清理结果
已删除测试业务资源:
清理后验证:
保留 Kruise 安装:
保留控制面状态:
11. 最终判定
incubator/kruise在当前 kind 测试集群中可完成安装,并能正常提供核心 OpenKruise 能力:CloneSet能创建、扩容并保持期望副本数。SidecarSet能通过 webhook 对匹配 Pod 自动注入 sidecar。ImagePullJob能通过 controller 与 kruise-daemon 完成节点镜像预拉取。因此,本次安装和用户场景功能验证判定为通过。