cylonchau / customScheduler

基于prometheus的自定义调度器
6 stars 6 forks source link

部署阶段的 yaml 配置文件看不太懂 #3

Closed JaydenChang closed 7 months ago

JaydenChang commented 8 months ago

一个是 scheduler 的 profile 里的 /mnt/d/src/go_work/customScheduler/scheduler.conf,这个对应的是自己集群里的 /etc/kubernetes/scheduler.conf 吗,是需要在打镜像时把这个文件也放在和 Dockerfile 同一级目录下吗 然后这个 scheduler 的 profile,好像是不可以 使用 kubectl apply 这个命令去添加的吧,应该是要放在镜像里给 编译后的二进制文件去识别的吧 然后就是我使用了你后面写的有 rbac 和 image deployment 的 yaml 配置生成 deployment,进入 custom-scheduler 容器的 logs 查看,发现一个错误,,具体为:

I0229 09:50:46.208421       1 reflector.go:243] Listing and watching *v1.ConfigMap from pkg/mod/k8s.io/client-go@v0.19.10/tools/cache/reflector.go:156
E0229 09:50:46.209875       1 reflector.go:127] pkg/mod/k8s.io/client-go@v0.19.10/tools/cache/reflector.go:156: Failed to watch *v1.ConfigMap: failed to list *v1.ConfigMap: configmaps "extension-apiserver-authentication" is forbidden: User "system:serviceaccount:kube-system:scheduler-sa" cannot list resource "configmaps" in API group "" in the namespace "kube-system"

我大概是在哪一步配置出现了问题呢

cylonchau commented 8 months ago

问题一:/mnt/d/src/go_work/customScheduler/scheduler.conf 这个路径是我本地的kube-scheduler(或者custom scheduler)的配置文件,这个不是作为 k8s api的,是随kube-scheduler(或者custom scheduler)启动时配置 问题2:我之前打的镜像有些问题,后面没有在看了,直接用二进制启动的,如果你要用容器方式启动的话,需要有集群管理员权限才可以,这个报错的问题就是serviceaccount没有对应资源的权限

cylonchau commented 8 months ago

已回复

Best regards.


寄件者: Jayden Chang @.> 寄件日期: 2024年2月29日 17:53 收件者: cylonchau/customScheduler @.> 副本: Subscribed @.***> 主旨: [cylonchau/customScheduler] 部署阶段的 yaml 配置文件看不太懂 (Issue #3)

一个是 scheduler 的 profile 里的 /mnt/d/src/go_work/customScheduler/scheduler.conf,这个对应的是自己集群里的 /etc/kubernetes/scheduler.conf 吗,是需要在打镜像时把这个文件也放在和 Dockerfile 同一级目录下吗 然后这个 scheduler 的 profile,好像是不可以 使用 kubectl apply 这个命令去添加的吧,应该是要放在镜像里给 编译后的二进制文件去识别的吧 然后就是我使用了你后面写的有 rbac 和 image deployment 的 yaml 配置生成 deployment,进入 custom-scheduler 容器的 logs 查看,发现一个错误,,具体为:

I0229 09:50:46.208421 1 reflector.go:243] Listing and watching *v1.ConfigMap from @./tools/cache/reflector.go:156 E0229 09:50:46.209875 1 reflector.go:127] @./tools/cache/reflector.go:156: Failed to watch v1.ConfigMap: failed to list v1.ConfigMap: configmaps "extension-apiserver-authentication" is forbidden: User "system:serviceaccount:kube-system:scheduler-sa" cannot list resource "configmaps" in API group "" in the namespace "kube-system"

我大概是在哪一步配置出现了问题呢

― Reply to this email directly, view it on GitHubhttps://github.com/cylonchau/customScheduler/issues/3, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHDSYB4DM43HLE6JE2BWF23YV35DNAVCNFSM6AAAAABD7TIXAGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE3DAOBVG42TGMA. You are receiving this because you are subscribed to this thread.Message ID: @.***>

JaydenChang commented 8 months ago

上面两个解决了,给原来的ServiceAccount也添加了合适的权限,关闭原来的kube-scheduler的也找到了方法,挪走 /etc/kubernetes/manifests/kube-scheduler.yaml 即可。 现在出现了一个新的问题,用容器部署和二进制启动都有一个新bug:

I0304 06:15:51.121046    9652 reflector.go:243] Listing and watching *v1beta1.PodDisruptionBudget from pkg/mod/k8s.io/client-go@v0.19.10/tools/cache/reflector.go:156
E0304 06:15:51.122681    9652 reflector.go:127] pkg/mod/k8s.io/client-go@v0.19.10/tools/cache/reflector.go:156: Failed to watch *v1beta1.PodDisruptionBudget: failed to list *v1beta1.PodDisruptionBudget: the server could not find the requested resource

这个问题我看GitHub上有类似的issue,好像是在新版本移除了某API,但是好像没有给出相应的解决方案,不知道大佬之前有没有遇到过。

JaydenChang commented 8 months ago

噢看了下你的go.mod,用的比较旧版本的包,可能是这个原因吧

cylonchau commented 8 months ago

是的,api版本应该更新了,需要用hack切换1.25,但是,可能1.25用的framework也变了,可以用新版本framework重构 Best regards


寄件者: Jayden Chang @.> 寄件日期: 2024年3月4日 14:52 收件者: cylonchau/customScheduler @.> 副本: Cylon @.>; Comment @.> 主旨: Re: [cylonchau/customScheduler] 部署阶段的 yaml 配置文件看不太懂 (Issue #3)

噢看了下你的go.mod,用的比较旧版本的包,可能是这个原因吧

― Reply to this email directly, view it on GitHubhttps://github.com/cylonchau/customScheduler/issues/3#issuecomment-1975848792, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHDSYB4YWNYYVN2EYEUAT23YWQK3TAVCNFSM6AAAAABD7TIXAGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZVHA2DQNZZGI. You are receiving this because you commented.Message ID: @.***>

cylonchau commented 8 months ago

v1beta1应该新版本api移除了

Best regards


寄件者: Jayden Chang @.> 寄件日期: 2024年2月29日 17:53 收件者: cylonchau/customScheduler @.> 副本: Subscribed @.***> 主旨: [cylonchau/customScheduler] 部署阶段的 yaml 配置文件看不太懂 (Issue #3)

一个是 scheduler 的 profile 里的 /mnt/d/src/go_work/customScheduler/scheduler.conf,这个对应的是自己集群里的 /etc/kubernetes/scheduler.conf 吗,是需要在打镜像时把这个文件也放在和 Dockerfile 同一级目录下吗 然后这个 scheduler 的 profile,好像是不可以 使用 kubectl apply 这个命令去添加的吧,应该是要放在镜像里给 编译后的二进制文件去识别的吧 然后就是我使用了你后面写的有 rbac 和 image deployment 的 yaml 配置生成 deployment,进入 custom-scheduler 容器的 logs 查看,发现一个错误,,具体为:

I0229 09:50:46.208421 1 reflector.go:243] Listing and watching *v1.ConfigMap from @./tools/cache/reflector.go:156 E0229 09:50:46.209875 1 reflector.go:127] @./tools/cache/reflector.go:156: Failed to watch v1.ConfigMap: failed to list v1.ConfigMap: configmaps "extension-apiserver-authentication" is forbidden: User "system:serviceaccount:kube-system:scheduler-sa" cannot list resource "configmaps" in API group "" in the namespace "kube-system"

我大概是在哪一步配置出现了问题呢

― Reply to this email directly, view it on GitHubhttps://github.com/cylonchau/customScheduler/issues/3, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHDSYB4DM43HLE6JE2BWF23YV35DNAVCNFSM6AAAAABD7TIXAGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE3DAOBVG42TGMA. You are receiving this because you are subscribed to this thread.Message ID: @.***>