정말로 k8s의 하위 경로를 알아냈나요?
우리는 종종 하위 경로를 사용합니다. 저장소나 configmap을 디렉터리에 직접 마운트하면 해당 디렉터리 아래의 원본 콘텐츠를 덮어쓰게 됩니다. 예를 들어 nginx 컨테이너의 /etc/default.conf 파일만 교체하려고 하는데 configmap을 통해 /etc 디렉터리에 직접 마운트하면 전체 디렉터리를 직접 덮어쓰게 되어 작동하지 않습니다. 덮어쓸 원본 파일입니다. 이때 하위 경로를 사용해야 합니다.
하위 경로를 통해 전체 디렉토리 범위를 피하기 위해 하나의 파일만 /etc 디렉토리에 마운트할 수 있지만 여기에도 작은 결함이 있습니다. 컨테이너입니다. 주의가 필요합니다.
주제로 돌아가서 이 하위 경로는 어떻게 구현됩니까? 먼저 그러한 예를 살펴보겠습니다.
컨테이너에 로그인하면 /mnt/aaa/bbb 및 /mnt/ccc/ddd 두 디렉터리를 볼 수 있습니다. 호스트에서는 /srv/aaa/bbb 및 /를 볼 수 있습니다. srv/aaa/eee 디렉토리. 이 하위 경로는 실제로 우리가 저장하는 하위 경로입니다. k8s는 저장된 디렉터리에서 이 파일이나 디렉터리를 찾습니다. k8s 코드 구현을 살펴보겠습니다.
스토리지에 하위 경로가 이미 포함되어 있는 경우(예: NAS 스토리지 하위 디렉터리가 이미 존재하거나 특정 configmap 키가 이미 존재하는 경우), 반대로 파일이나 디렉터리가 생성되지 않습니다. 존재하지 않으면 이 디렉터리가 먼저 생성됩니다.
이어서 이 하위 경로 경로를 컨테이너 내부 경로에 바인드 마운트하기만 하면 됩니다. 이는 다른 스토리지 마운트와 다르지 않습니다.