Назад | Перейти на главную страницу

Как получить доступ к файловой системе остановленного контейнера на k3s?

У меня есть локальный кластер Kubernetes, работающий с k3s, и я хочу получить доступ к файловой системе остановленного Pod. Pod происходит от CronJob, и я хочу подробнее разобраться, почему это задание не удалось.

Для «обычной» установки Kubernetes я бы попытался получить доступ к файловой системе через docker cli. Однако с k3s docker ps на автомате возвращает пустой список. Насколько я понимаю, k3s использует containerd, но я не мог понять, как проверять контейнеры "containerd". Мой гугл-фу соскучился по мне. : /

Я не уверен, почему вы хотите войти в файловую систему, чтобы проверить, почему Job не смогли.

Когда вы создаете job он автоматически создает pod. Пример на основе официальные документы.

$ sudo k3s kubectl apply -f https://k8s.io/examples/controllers/job.yaml
job.batch/pi created

Тем временем он создал под (тем временем я создал псевдоним kk = "sudo k3s kubectl")

$ kk get pods
NAME                     READY   STATUS      RESTARTS   AGE
pi-796ng                 0/1     Completed   0          55s

$ kk get jobs
NAME      COMPLETIONS   DURATION   AGE
pi        1/1           7s         30s

1. Чтобы проверить, что происходит внутри модуля, вы можете проверить это

$ sudo k3s kubectl logs <pod_name> -c <container_name>

$ kk logs pi-796ng -c pi
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647...

2. Опишите пакет / опишите работу

$ sudo k3s kubectl describe pod <pod_name>

$ sudo k3s kubectl describe job <job_name>

Если они в разных namespace затем default вам нужно добавить -n <namespace> флаг для запроса

3. Kubernetes события

Выполнить команду

$ sudo k3s kubectl get events

Он покажет вам все события из вашего Kubernetes кластер.

Многие факторы устранения неполадок также могут зависеть от вашего Job спец. Например .spec.activeDeadlineSeconds или .spec.backoffLimit. Больше информации Вот.