【发布时间】:2021-06-10 10:03:40
【问题描述】:
我对 docker Kubernetes 很陌生。我已经创建了 3 个节点的集群,现在我正在创建一个 YAML 文件来创建 pod。我从https://github.com/utkudarilmaz/docker-hping3 拍摄了图像,图像名称是utkudarilmaz/hping3。有人可以帮我在路径中设置命令或 docker 文件吗?因为我无法理解这个问题。我想成功运行我的 pod,以便我可以使用它。 我的 YAML 文件像
---
apiVersion: v1
kind: Pod
metadata:
name: second
labels:
app: web
spec:
containers:
- name: hping3
image: utkudarilmaz/hping3
command: ["hping3 [IP_ADDRESS"]
ports:
- containerPort: 80
nodeSelector:
disktype: ssd
如果我没有指定 [command],我的 pod 状态是 CrashLoopBackOff。我搜索了一下,发现My kubernetes pods keep crashing with "CrashLoopBackOff" but I can't find any log 我需要一个命令来连续运行容器,否则如果我在 YAML 文件中指定一个命令,如上面的命令:["hping3 103.22.221.59"] 然后当我运行时,它会进入循环
kubectl exec –it second – hping3 [IP_ADDRESS]
我明白了
error: unable to upgrade connection: container not found ("hping3")
kubectl decribe pod second 的输出
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 3m39s default-scheduler Successfully assigned default/second1 to netcs
Normal Pulled 3m35s kubelet Successfully pulled image "utkudarilmaz/hping3" in 2.714028668s
Normal Pulled 3m31s kubelet Successfully pulled image "utkudarilmaz/hping3" in 2.734426606s
Normal Pulled 3m15s kubelet Successfully pulled image "utkudarilmaz/hping3" in 2.61256593s
Normal Pulled 2m46s kubelet Successfully pulled image "utkudarilmaz/hping3" in 2.65727147s
Warning BackOff 2m11s (x5 over 3m4s) kubelet Back-off restarting failed container
Normal Pulling 2m4s (x5 over 3m38s) kubelet Pulling image "utkudarilmaz/hping3"
Normal Created 119s (x5 over 3m35s) kubelet Created container hping3
Warning Failed 119s (x5 over 3m35s) kubelet Error: failed to start container "hping3": Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: exec: "hping3 103.22.221.59": executable file not found in $PATH: unknown
Normal Pulled 119s kubelet Successfully pulled image "utkudarilmaz/hping3" in 5.128803062s
docker inspect $utkudarilmaz/hping3 的一些输出
"Mounts": [],
"Config": {
"Hostname": "104e9920881b",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": true,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": null,
"Image": "utkudarilmaz/hping3",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"hping3"
],
"OnBuild": null,
"Labels": {
"desription": "hping3 tool building on Alpine:latest",
"version": "1.0"
我的容器不会继续运行 当我尝试这个命令时
command: [ "/bin/bash", "-c", "--" ]
args: [ "while true; do sleep 30; done;" ] from
https://stackoverflow.com/questions/31870222/how-can-i-keep-a-container-running-on-kubernetes/40093356
在路径中找不到相同的错误文件
【问题讨论】:
-
在
command:中,命令名及其参数需要是单独的单词;command: ["hping3", "103.22.221.58"]。几天前我写了this answer,并给出了更长的解释。 -
@david Maze 我们可以有任何通用命令来帮助持续运行容器
-
它应该做什么?把容器想象成一个进程; “我可以在不指定命令的情况下创建一个进程吗?”实际上并没有那么有意义,同样地,只放一个空容器也不是特别有用。
-
stackoverflow.com/questions/31870222/… 喜欢这个,但这在我的 cvase 中也不起作用
-
我希望这应该可行,是的。
标签: docker kubernetes