Rozważałem użycie sekretów do zamontowania pojedynczego pliku, ale wydaje się, że możesz zamontować tylko katalog, który nadpisze całą pozostałą zawartość. Jak mogę udostępnić pojedynczy plik konfiguracyjny bez montowania katalogu?
kubernetes
Smana
źródło
źródło
Zacząłbym od tego roboczego przykładu stąd . Upewnij się, że używasz przynajmniej Kubernetes 1.3.
Po prostu utwórz ConfigMap w następujący sposób:
apiVersion: v1 kind: ConfigMap metadata: name: test-pd-plus-cfgmap data: file-from-cfgmap: file data
A następnie utwórz kapsułę taką jak ta:
apiVersion: v1 kind: Pod metadata: name: test-pd-plus-cfgmap spec: containers: - image: ubuntu name: bash stdin: true stdinOnce: true tty: true volumeMounts: - mountPath: /mnt name: pd - mountPath: /mnt/file-from-cfgmap name: cfgmap subPath: file-from-cfgmap volumes: - name: pd gcePersistentDisk: pdName: testdisk - name: cfgmap configMap: name: test-pd-plus-cfgmap
źródło
Obecnie (v1.0, v1.1) nie ma możliwości zamontowania pojedynczego pliku konfiguracyjnego na woluminie. Struktura Secret jest naturalnie zdolna do reprezentowania wielu sekretów, co oznacza, że musi to być katalog.
Kiedy otrzymamy obiekty konfiguracyjne, powinny być obsługiwane pojedyncze pliki.
W międzyczasie możesz zamontować katalog i dowiązanie do niego ze swojego obrazu?
źródło
Powiedzmy, że chcesz zamontować nowy plik log4j2.xml w działającym wdrożeniu, aby usprawnić rejestrowanie
# Variables k8s_namespace=xcs deployment_name=orders-service container_name=orders-service container_working_dir=/opt/orders-service # Create config map and patch deployment kubectl -n ${k8s_namespace} create cm log4j \ --from-file=log4j2.xml=./log4j2.xml kubectl -n ${k8s_namespace} patch deployment ${deployment_name} \ -p '{"spec":{"template":{"spec":{"volumes":[{"configMap":{"defaultMode": 420,"name": "log4j"},"name": "log4j"}]}}}}' kubectl -n ${k8s_namespace} patch deployment ${deployment_name} \ -p '{"spec":{"template":{"spec":{"containers":[{"name": "'${container_name}'","volumeMounts": [{ "mountPath": "'${container_working_dir}'/log4j2.xml","name": "log4j","subPath": "log4j2.xml"}]}]}}}}'
źródło