Существует ли kubectl-версия `docker run --net = container: thingie --pid = container: thingie -it --rm busybox sh` - PullRequest
0 голосов
/ 25 октября 2019

В Docker, если я хочу проверить работающий контейнер, у которого нет собственной оболочки, я могу запустить что-то вроде этого:

docker run --net=container:thingie --pid=container:thingie -it --rm busybox sh

Это запускает оболочку в отдельном образе, но стот же pid / сетевое пространство, что и контейнер, который я хочу проверить. Существуют также варианты подключения к файловой системе целевого контейнера.

Можно ли сделать это с помощью kubectl в kubernetes и указать на существующий модуль / контейнер?

1 Ответ

2 голосов
/ 26 октября 2019

Конечно, сначала используйте kubectl get pod | grep YOUR_DEPLOYMENT_NAME, чтобы получить идентификатор капсулы. Затем используйте kubectl exec -it POD_UID bash/sh/whatever для входа в модуль. Обратите внимание, что ваш контейнер может не принимать bash, поэтому вам может потребоваться изменить его на sh.

Однако, как показывает ваш комментарий, изображение может не иметь оболочки (я никогда не слышал о ней, но мы все еще можем ее решить). Для этого вы можете добавить еще один контейнер в ваш модуль , который будет использовать файловую систему, сеть и т. Д. Это позволит вам отлаживать ваш основной контейнер. Используйте kubectl exec -it $YOUR_POD_UID -c $CONTAINER_NAME alpine sh, чтобы войти в контейнер отладки. Вот ямл на тот случай, если вам это нужно.

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: default
  name: alpine
  labels:
    app: alpine
spec:
  replicas: 1
  selector:
    matchLabels:
      app: alpine
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: alpine
    spec:
      containers:
      # Your container.
      - name: your_container_without_shell
        image: container_without_shell:latest
      # Sidecar container.
      - name: alpine
        image: alpine:latest
        command: ["/bin/sleep", "1000000"] # let's say it dies eventually.
      hostname: alpine
      restartPolicy: Always
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...