Получить критическую информацию с помощью golang
Я пытаюсь получить критическую информацию, такую как containerID, pid, используя golang. Приведенный ниже код работает на моем Mac, но когда я помещаю его в контейнер и развертываю в стеке openshift 3.11, он не работает.
cmdStr
в приведенном ниже коде может быть любая команда docker или cri-o, например docker ps
или crictl ps --no-trunc -a --quiet
Используемая версия go go1.14.1 darwin/amd64
package main
import "os/exec"
import "fmt"
func main() {
cmdStr := "docker ps"
fmt.Printf("cmdStr is %s", cmdStr)
out, _ := exec.Command("/bin/sh", "-c", cmdStr).Output()
fmt.Printf("output is %s", out)
}
Результатом приведенного выше кода, который я получаю на моем Mac, является
cmdStr is docker ps
output is CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
То же самое в openshift 3.11 в журналах модуля:
cmdStr is docker ps
output is
Другой вариант - использовать код по этой ссылке: https://godoc.org/github.com/google/cadvisor/container/crio, но я не уверен, как его использовать, пример поможет.
go get github.com/google/cadvisor/container/crio
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:86:31: undefined: unix.CGROUP_SUPER_MAGIC
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:95:5: undefined: IsCgroup2UnifiedMode
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:109:5: undefined: IsCgroup2UnifiedMode
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:151:5: undefined: IsCgroup2UnifiedMode
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:155:18: undefined: ParseCgroupFile
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:163:9: undefined: Mount
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:171:75: undefined: Mount
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:172:16: undefined: Mount
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:185:8: undefined: Mount
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:209:37: undefined: Mount
github.com/opencontainers/runc/libcontainer/cgroups/v1_utils.go:185:8: too many errors
# github.com/opencontainers/runc/libcontainer/utils
github.com/opencontainers/runc/libcontainer/utils/utils_unix.go:19:17: undefined: unix.PROC_SUPER_MAGIC
github.com/opencontainers/runc/libcontainer/utils/utils_unix.go:63:62: undefined: unix.SOCK_CLOEXEC