0

我有一个 k8 工作,它带来了多个 pod。该作业用于负载测试,因此所有 pod 都需要同时出现。在所有要调度的 pod 的节点都可用之前,不应启动作业。我遇到了 kube-batch https://github.com/kubernetes-sigs/kube-batch来做这个调度。我有几个问题:

1.如何只为集群中的一个命名空间启用kube-batch?

2.按照教程安装 kube-batch。但是 pod 在启动时失败并出现以下错误。如何解决此错误?

I1204 20:07:55.911393       1 allocate.go:96] Queue <default> is overused, ignore it.

I1204 20:07:55.911399       1 allocate.go:194] Leaving Allocate ...

I1204 20:07:55.911407       1 backfill.go:41] Enter Backfill ...

I1204 20:07:55.911413       1 backfill.go:71] Leaving Backfill ...

E1204 20:07:55.911521       1 runtime.go:69] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:76

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:65

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:51

/usr/local/go/src/runtime/asm_amd64.s:522

/usr/local/go/src/runtime/panic.go:513

/usr/local/go/src/runtime/panic.go:82

/usr/local/go/src/runtime/signal_unix.go:390

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/pkg/scheduler/framework/session.go:368

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/pkg/scheduler/plugins/gang/gang.go:154

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/pkg/scheduler/framework/framework.go:58

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/pkg/scheduler/scheduler.go:102

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/pkg/scheduler/scheduler.go:85

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134

/home/root1/servicecomb/go/src/github.com/kubernetes-sigs/kube-batch/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88

/usr/local/go/src/runtime/asm_amd64.s:1333

panic: runtime error: invalid memory address or nil pointer dereference [recovered]
        panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x148 pc=0x10ab979]
4

1 回答 1

0

不确定您要实现的目标是否可行。在我看来,您可以做的是修改 pods dockerfile 以包含 Supervisord 。然后在 supervisord 中使用 supervisord 的优先级指定当 pod 进入运行状态时要运行的命令。例子

[program:api]
directory=/usr/local
command=go main.go
priority=100
autostart=true
autorestart=true
stderr_logfile=/var/log
stdout_logfile=/var/log
于 2020-12-04T22:57:01.633 回答