如何在k3s代理程序处停止/启动容器?

时间:2020-10-20 13:10:15

标签: kubernetes containers k3s

Docker提供了以下功能来停止和启动同一容器。

OP46B1:/ # docker stop 18788407a60c
OP46B1:/ # docker ps -a                                                                                                      
  CONTAINER ID  IMAGE   COMMAND   CREATED       STATUS    PORTS      NAMES                                                                                                                      
  18788407a60c ubuntu:test "/bin/bash" 34 minutes ago Exited (0) 7 seconds ago charming_gagarin
OP46B1:/ # docker start 18788407a60c

但是k3s代理不提供此功能。通过“ k3s crictl stop”停止的容器不能通过“ k3s crictl start”重新启动。将出现以下错误。如何在k3s代理程序处停止和启动同一容器?

OP46B1:/data # ./k3s-arm64 crictl stop 5485f899c7bb6
  5485f899c7bb6
OP46B1:/data # ./k3s-arm64 crictl ps -a
  CONTAINER  IMAGE  CREATED  STATE NAME  ATTEMPT POD ID
  5485f899c7bb6 b58be220837f0 3 days ago  Exited  pod-webapp86  0 92a94e8eec410
OP46B1:/data# ./k3s-arm64 crictl start 5485f899c7bb6
  FATA[2020-10-20T00:54:04.520056930Z] Starting the container "5485f899c7bb6" failed: rpc error: code = Unknown desc = failed to set starting state for container "5485f899c7bb6f2d294a3a131b33d8f35c9cf84df73cacb7b8af1ee48a591dcf": container is in CONTAINER_EXITED state

1 个答案:

答案 0 :(得分:0)

k3s是kubernetes的发行版。 Kubernetes是对容器框架(containerd / docker / etc。)的抽象。因此,您不应尝试直接使用k3s crictl控制容器,而应使用kubernetes提供的pod抽象。

k3s kubectl get pods -A将列出k3s实例中当前正在运行的所有Pod。1
k3s kubectl delete pod -n <namespace> <pod-selector>将删除指定的容器,这将停止(并删除)其容器。2

相关问题