반응형
실행 중인 container에 mount하는 방법
목표
kubernetes cluster에서 container mount 는
pod 생성 시에 volume 설정을 통해 mount하는 방법이 있음.
하지만 이미 running 상태로 동작 중인 pod의 container에 mount해야하는 경우도 있음.
이에 따라 실행 중인 container에 mount하는 방법을 알아봄.
test 환경
kubernetes cluster 중
control node에서 test를 진행함
kubernetes cluster에서 container runtime으로 containerd를 사용하고 있음.
cluster 정보는 다음과 같음
[Containerd : 1.4.12]
kubernetes cluster에 배포되어있는 container 확인
해당 test환경에서는 조회된 pod/iksoon-deployment-7848564b67-cb6cb 를 대상으로 진행해봄
pod 확인
[명령어]
kubectl get all -o wide
pod의 container 확인
[명령어]
kubectl describe pod/dnsutils | grep "Container ID"
위의 정보로 container는
kube.worker.node host에 배포되어있고
container ID는 5e540cf73e8482e7305a7075441ad81f31d17095db9e17ecdcfa35f88389e382
임을 알 수 있음.
container의 실제 directory 경로로 이동
container가 배포되어있는
kube.worker.node host에서 진행.
[명령어]
mount | grep overlay | awk '{print $3}' | grep "확인하고자 하는 container id"
ex) mount | grep overlay | awk '{print $3}' | grep 5e540cf73e8482e7305a7075441ad81f31d17095db9e17ecdcfa35f88389e382
[명령어]
cd "위에서 확인한 경로"
ex) cd /run/containerd/io.containerd.runtime.v2.task/k8s.io/5e540cf73e8482e7305a7075441ad81f31d17095db9e17ecdcfa35f88389e382/rootfs
kubectl exec -it 명령으로 접속한 container의 directory 정보와 일치함을 알 수 있음.
container에 mount
mount directory 정보는 다음과 같음
해당 directory를 container에 mount 함.
mount할 directory 생성
container directory에 mount할 directory를 생성.
[명령어]
mkdir ./temp1
mount 진행
[명령어]
mount --bind /root/mountTest/ ./temp1/
test에서는 기존 directory를 mount 하기 때문에 --bind 옵션을 사용함.
--bind 옵션 : 특정 디렉토리를 다른 디렉토리에 붙일 수 있음
정상적으로 /root/mountTest directory가 container의 temp1 directory에 mount 된 것을 확인할 수 있음.
kubectl exec 명령으로 비교
[명령어]
kubectl exec -it pod/iksoon-deployment-7848564b67-cb6cb -- bash
실행되고 있던 container에 정상적으로 mount 된 것을 확인할 수 있음.
반응형
'Kubernetes > Kubernetes 이론' 카테고리의 다른 글
Kubernetse Linux Namespace 분석 : Pod Container 공유자원 리서치 (0) | 2024.07.14 |
---|---|
kubectl cp 명령 특징 (0) | 2022.07.05 |
Container 관련 기술 리서치 (2) | 2022.03.06 |
Pod Security Policy deprecated (0) | 2021.11.19 |
yaml 파일에서 환경변수 사용 (0) | 2021.11.04 |