- ConfigMaps는 코드 구성을 분리하고 이미지 재구성을 허용하는 캠비오를 허용합니다.
- Cuatro는 clave를 소비합니다: env, args, ficheros en volúmenes 및 lectura via API con suscripción a cambios
- Actualización automática en volúmenes y reinicio necesario para env; 1MiB 제한으로 인해 결함이 발생했습니다.
- 실제 사례: 버전 관리, Kustomize con hash, RBAC, 암호 제거 및 사용자 불변 절차 진행
Kubernetes를 사용하려면 별도의 코드 구성이 필요합니다. 별도의 ConfigMap을 사용하면 됩니다. Permiten inyectar pares clave-valor no sensibles en tus Pods sin Hornear esa configuración dentro de la imagen, lo que facilita despliegues limpios, 휴대용 장치 및 fáciles de mantener.
기본적인 Además de lo básico, hay matics importantes: 제한 사항, 실제 자동 실행 볼륨, 컴퓨터에 영향을 미치는 변수 및 보안 실행 및 관찰 전략이 필요합니다. Este recorrido práctico yafoundo reúne todo lo que necesitas para dominar los ConfigMaps sin dejarte nada en eltintero.
Qué es un ConfigMap y por qué usarlo
ConfigMap은 Kubernetes 펜의 API 개체로 구성 데이터에 대한 정보가 없으며 용기에 대한 기밀이 없습니다. 콘텐츠에 대한 이미지를 구체적으로 구성하기 위한 개체를 삭제하세요., evitando que tengas que reconstrruirlas cada vez que cambie un parámetro.
Los Pods는 ConfigMaps를 사용하여 엔토르노 변수, 배열 인수, 볼륨 및 API 지시 사항에 대한 정보를 제공합니다. 12팩터 앱의 요소 구성을 통해 이 장치는 장치 및 생산에 필요한 휴대 기능을 제공합니다..
변수 DATABASE_HOST에 응용 프로그램이 있다고 상상해 보세요. 로컬 호스트에 로컬 호스트가 있으면 데이터 베이스에 대한 설명이 있는 서비스 이름이 미국에 있습니다. Con un ConfigMap은 alternar esos valores sin tocar la imagen ni el binario를 제공합니다., depurando el mismo código en cualquier entorno.
Hay una limitación clave: un ConfigMap no debe superar 1MiB. 필요에 따라 구성을 다양한 ConfigMap으로 나누어 외부 서비스나 구성 데이터의 기본 데이터로 사용할 수 있습니다.

Objeto ConfigMap: campos, nombres y claves válidas
사양에 따른 오브제의 차이, ConfigMap은 데이터와 바이너리 데이터에 대한 내용을 정의합니다.. 데이터 espera texto UTF-8; BinaryData는 Base64에 대한 바이너리 코드를 허용하며 UTF-8이 아닌 이상적인 형식입니다.
ConfigMap의 이름은 하위 도메인 DNS válido y las claves bajo 데이터 또는 BinaryData deben contener caracteres alfanuméricos, guion, guion bajo 또는 punto의 이름입니다. Las claves de data no pueden solaparse con las de BinaryData, así que Organízalas con criterio para evitar conflictos.
Kubernetes v1.19에서는 ConfigMaps를 변경할 수 없으며 immutable: true를 생성할 수 있습니다. 변경 불가능, 안정적인 버전 v1.21, evita cambiosaccidentales 및 API 서버 cerrando los 시계의 화물 감소, 코스타 데 케(costa de que), 필요하다면 캠비어 알고(cambiar algo)가 필요하고, 물건을 다시 만들려는 경향이 있습니다.
ConfigMap 및 Pod: 소비 형식
Para que un Pod는 ConfigMap, ambos deben estar en el mismo 네임스페이스를 사용합니다. Hay cuatro maneras Principles de consumirlos 응용 프로그램이 필요하다고 생각하세요.
- Pasar vores en command y args del contenedor, 참조 데이터 ConfigMap. Útil para binarios que lee configuración solo por 인수.
- Exponer는 경쟁의 기회에 대한 대단한 용기를 가지고 있습니다. La opción más común para apps que leen del entorno.
- Montar el ConfigMap como ficheros en unvoln de solo lectura. 완벽한 구성 기록 보관소를 위한 완벽한 응용 프로그램.
- ConfigMap에 대한 API 정보가 코드에 대해 자세히 알아보세요. API에 포함된 다른 네임스페이스를 포함하여 캠비오 및 칼리엔터에 대한 반응을 허용합니다..
Kuando se usa como Volumen, Kubernetes crea archives por clave. Si는 볼륨에 따라 항목을 정의하고 선택 항목을 선택합니다.; 아니, se proyectan todas. 이 정보는 특정 형식과 POSIX 파일 형식에 대한 권한을 부여합니다.
ConfigMaps 몬테도 및 엔터변수 변수의 실제화
Un detalle crítico: ConfigMap을 통해 볼륨을 늘리고, 자동으로 선전을 유도하여 다시 복구할 수도 있습니다.. 모든 내용은 캐시에 있는 캐시와 캐시에 있는 캐시에 포함되어 있습니다.
이 구성은 configMapAndSecretChangeDetectionStrategy에 따라 달라지며, 감시에 따라 TTL 또는 직접 API 서버를 기반으로 합니다. 전체 시간이 지연되어 캐시의 전파와 동기화가 지연되었습니다.; 결함이 있는 경우 동기화가 1분 걸리고 TTL이 1분 걸리면 지연 시간이 2분 걸립니다.
대신, ConfigMaps에서 파생된 항목의 변수는 자동으로 실제화되지 않습니다.. 포드를 다시 시작하려면 프로세스를 시작해야 새로운 가치를 인정할 수 있습니다. 복구 및 배포를 위해 포드 템플릿에 대한 설명을 수정하여 새로운 ReplicaSet을 제공해야 합니다.
kubectl로 ConfigMaps 만들기
kubectl을 사용하여 configmap을 생성하면 kustomization.yaml에서 Kustomize를 생성할 수 있습니다. kubectl은 다양한 fuentes를 인정합니다: 디렉토리, ficheros 개인, 리터럴 및 환경 파일.
Desde un directorio
kubectl empaqueta todos los ficheros Regulares con nombre válido del directio, usando el nombre de cada archive como clave y su contenido como valor. Entradas que no son ficheros Regulares se ignoran como 하위 디렉토리 또는 simbólicos를 묶습니다.
kubectl create configmap game-config --from-file=configure-pod-container/configmap/
ConfigMap에 대한 설명은 예를 들어 game.properties 및 ui.properties 데이터에 있으며 원본 텍스트와 같습니다. 클러스터에 대한 구성을 위한 정보의 형식은 다음과 같습니다..
Desde ficheros concretos
También puedes pasar varios –from-file repetidos para Combinar fuentes. Por Defecto la clave es el nombre base del archivevo, aunque puedes asignar una clave distinta.
kubectl create configmap game-config-2
--from-file=configure-pod-container/configmap/game.properties
--from-file=configure-pod-container/configmap/ui.properties
Si quieres definir otra clave para el fichero, usa la forma clave=path. Esto es útil cuando varios archives comparten nombres o quieres darles nombres más expresivos.
kubectl create configmap game-config-3
--from-file=game-special-key=configure-pod-container/configmap/game.properties
Desde valores literales
Con –from-literal은 pares clave-valor en línea, reitiendo la opción las veces necesarias를 정의합니다. 이상적인 파라는 빠른 속도로 진행하거나 선전을 위해 노력합니다..
kubectl create configmap special-config
--from-literal=special.type=charm
--from-literal=special.how=very
Desde env‑파일
–from-env-file은 entorno al estilo .env 변수의 아카이브 파일을 생성합니다. Desde v1.23은 특정 변수에 대해 –from-env-file 조합 기능을 제공합니다..
kubectl create configmap my-config --from-env-file=app.env --from-env-file=extra.env
Kustomize를 사용한 일반 ConfigMap
Kustomize는 Kustomization.yaml 생성을 통해 ConfigMaps의 데이터 또는 리터럴을 생성하도록 허용합니다. 이름에는 sufijo hash del contenido가 포함되어 있습니다. para garantizar un nuevo objeto al cambiar los datos.
configMapGenerator:
- name: game-config-4
files:
- configure-pod-container/configmap/game.properties
También es posible fijar la clave distinta al nombre del fichero. Esta técnica facilita despliegues declarativos 및 evita Problemas de Caché de configuración.
configMapGenerator:
- name: game-config-5
files:
- game-special-key=configure-pod-container/configmap/game.properties
Usar ConfigMaps 항목의 변수
Tienes dos Patrones 교장. Con envFrom importas todas las claves del ConfigMap como 변수 del contenedor. 다양한 변수에 따라 신속하게 응용 프로그램을 사용할 수 있습니다..
envFrom:
- configMapRef:
name: my-config
Si solo는 algunas claves 또는 renombrarlas, usa env y valueFrom.configMapKeyRef를 요구합니다. Así eliges claves puntuales y el nombre de lavariable puede ser diferente.
env:
- name: CONFIGMAP_USERNAME
valueFrom:
configMapKeyRef:
name: my-config
key: username
Ojo: los nombres de Variables de entorno recognition un conjunto Restringido de caracteres. ConfigMap의 유효성이 환경 변수에 포함되지 않은 경우 InvalidEnvironmentVariableNames에 대한 이벤트 등록을 생략하고 등록하세요., aunque el Pod arrancará.
Montar ConfigMaps como ficheros 제공
para exponer datos como archives, añade el Volumen en spec.volumes con configMap.name y monta ese Volumen con VolumeMounts en cada contenedor que lo necesite. Cada clave se proyectará como un archive bajo el mountPath 저장.
volumes:
- name: config-volume
configMap:
name: special-config
containers:
- name: app
image: my-image
volumeMounts:
- name: config-volume
mountPath: /etc/config
readOnly: true
Puedes mapear claves a rutas y nombres 정확한 usando 항목 y 경로, o montar una sola clave con subPath. 기본 모드 또는 clave에 대한 아카이브 권한을 설정하려면 다음 단계를 따르세요..
volumes:
- name: config-volume
configMap:
name: special-config
items:
- key: SPECIAL_LEVEL
path: keys
중요 사항 : si en la imagen ya 존재 ficheros bajo el Directorio de montaje, quedarán ocultos por el Volumen. Tenlo en quenta para no perder archives necesarios en timpo de ejecución.
텍스트는 UTF-8로 설명됩니다. 기타 코드화 또는 바이너리, 미국 바이너리 데이터. ConfigMap을 현실화하면 계획이 지연되고 계획된 내용이 새로워집니다.. Puedes acelerar la realización cambiando una anotación del del Pod para forzar relectura.
선택 사항 참조, 네임스페이스 및 제한 사항
ConfigMap은 선택사항으로 표시됩니다. Si el ConfigMap은 존재하지 않으며, el Volumen se montará vacío y la 변수 de entorno no tendrá valor; si la clave concreta는 존재하지 않습니다. la ruta o la Variable estarán ausentes.
Reglas a recordar: ConfigMap에 존재하는 항목이 참조용으로 salvo que lo marques como opcional에 존재함, y tanto Pod como ConfigMap deben estar en el mismo 네임스페이스. 손실 ConfigMap은 kubelet에 대한 정적 포드 관리 지침과 호환되는 아들이 없습니다.
ConfigMaps 변경 불가능
ConfigMaps의 기능은 변경할 수 없는 기능으로 인해 클러스터에 많은 변수가 포함되어 있습니다. protege frente a cambios indeseados que causen caídas y Reduce carga del API 서버 al cerrar 시계. Una vez immutable es true, no podrás editar data ni binaryData; toca borrar y recrear, y Normalmente reiniciar los Pods que lo montaban para evitar references huérfanas.
Límites, tamaño y almacenamiento interno
Los ConfigMaps는 API 개체에 대한 etcd 보호를 제공합니다. Defecto에 의한 cifrados는 없습니다.; quien tenga acceso a etcd oa los backups podrá leer su contenido, por lo que no debes almacenar secretos aquí.
Existe un límite de tamaño: 1MiB의 개체가 완료되었습니다.. 일반적으로 큰 오류가 발생했습니다. 이러한 기술에 대해 알아보고 다양한 구성을 다시 확인하고 ConfigMap에서 볼륨 및 외부 서비스 정보를 확인하세요.
빠른 비교: ConfigMap, 비밀 항목의 변수
구성에 따라 다양한 옵션이 제공됩니다. ConfigMaps는 데이터를 중앙 집중화하고 현실화를 인정하지 않습니다.. 별도의 구성으로 구성된 환경 변수, 외부 재배포 시 캠비오를 재배포할 수 있습니다. 비밀 almacenan datos sensibles codificados en base64; 실제로는 그렇지 않으며, 별도의 액세스와 통제를 허용하는 정책이 있습니다.
- 컨피그맵: 감각이 없는 사람, dinámicos, fáciles de montar como archives o env. 결함이 있는 경우는 없습니다.
- 환경 변수: sencillas, pero poco prácticas si hay muchas y no se actizan en caliente.
- 기미: 다토스 센서블스; 별도의 구성 자격 증명은 일반, 특히 특정 항목에 따라 필요합니다.
좋은 관행과 안전
ConfigMaps의 버전은 git y usa nombres descriptivos o sufijos de versión에 나와 있습니다. Kustomize에 따르면, Los hashes de contenido te ayudan a forzar relecturas en despligues sin trucos adicionales.
Evita는 ConfigMaps의 비밀을 소개합니다. 미국 비밀 및 RBAC 액세스 제한. 응용 프로그램의 기본 기능과 린터에 대한 sintaxis의 유효성을 검사합니다. para reducir errores de formato or indentación.
RBAC에 대한 액세스를 제어합니다. 예를 들어, un rol de solo lectura para configmaps en un 네임스페이스:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: configmap-reader
rules:
- apiGroups: ['']
resources: ['configmaps']
verbs: ['get', 'list', 'watch']
Para Cambios, kubectl edit es cómodo y aplica en vivo, pero en producción es바람직한 Flujo 선언 및 적용 및 개정 por PR. 미국의 엔토르노 변수, 평면 롤아웃 및 편집자 ConfigMap para que los Pods recojan los nuevos valores.
Patrones avanzados 및 escenarios reales
여러 항목: ConfigMap을 특정 개발, 스테이징 및 프로덕션에 생성합니다. mezclar가 조정하면 프로모션 버전의 오류가 줄어듭니다..
Copiar entre clústeres: al ser manifytos, puedes moverlos y aplicarlos con kubectl donde lo necesites. Esto agiliza migraciones o DR.
응용 프로그램은 캠비오에 반응합니다: si lees ConfigMaps desde la API, suscríbete a eventos y reacciona al vuelo. Este enfoque allowede Adaptar comportamiento sin reinicios, aunque implica más complejidad de código.
배포에 대한 Despliegues: envFrom o volúmenes에 대한 ConfigMaps 참조. ConfigMap을 사용하여 환경을 개선하고 혁신을 시도하면 포드 템플릿에 따라 주석 체크섬이 증가하고 표시됩니다., 새로운 ReplicaSet에 대한 설명이 없습니다.
볼륨 프로젝트 세부정보
Si el Pod는 다양한 원본의 볼륨을 정의하고, 미국 예상 볼륨을 조합하여 정의합니다. Las claves mapeadas con items allowed nombres de archiveo coherentes con lo que tu app espera. subPath es útil para montar una única clave sin montar el Directorio completo.
ConfigMap의 독주 강의 및 이미지에 대한 정보를 확인하려면 볼륨에 대한 잘못된 정보를 확인하세요. Planifica ubicaciones de montaje que no pisen artefactos esenciales de la imagen.
Actualización y detección de cambios en detalle
Kubelet은 configMapAndSecretChangeDetectionStrategy에 대한 감지 기능을 결정합니다. 결함이 있는 모드를 확인하세요. TTL mantiene una caché con caducidad y direct Consulta siempre al API 서버입니다.. Escoger uno u otro afecta latencia y carga del 제어 평면.
montadas puede tardar의 refresco 효과는 캐시의 전파 동기화 기간을 단축해야 합니다. 즉시 실제화해야 하며, 포드에 대한 주석을 수정하여 반사에 대한 동기화가 필요합니다.. 결함이 있는 경우 잠복기가 있는 경우에는 허용되지 않습니다.
오류에 따른 제한 사항
존재하지 않는 ConfigMap을 참조하세요. 선택 사항이므로 포드에 배열이 없습니다. 잘못된 방식으로, 참조 클래스는 존재하지 않는 블록으로 시작하여 참조 콘크리트 Sean 선택 사항에 대해 설명합니다..
미국 환경에서, las claves con nombres는 entorno se omiten y verás unevento con la lista de claves saltadas의 변수와 호환되지 않습니다. Esto evita fallos de arranque pero puede sorprender si esperabas esas 변수.
습관적인 실습 사례
ConfigMap에 대한 설명을 작성하세요.
kubectl create configmap app-config --from-file=.env.local --from-file=.env.remote
kubectl describe configmap app-config
Las claves serán los nombres de los ficheros y sus contenidos, los valores. Inspeccionar el objeto con explain te ayuda a verificar que las claves se han empaquetado como esperabas.
clave concreta의 엔토르노 데드 변수
env:
- name: PORT
valueFrom:
configMapKeyRef:
name: app-config
key: port
Este patrón mantiene el control fino sobre qué importas al entorno del proceso. 특히 ConfigMap에는 조각화 멀티클레이브가 포함되어 있으며 더 이상 설명할 수 없는 설명자가 포함되어 있습니다..
Montaje selectivo와 항목 및 허가
volumes:
- name: config-volume
configMap:
name: special-config
items:
- key: SPECIAL_TYPE
path: conf/type
mode: 0640
Proyectar claves en rutas concretas concretas con permisos adecuados는 정보의 오류를 줄이고 응용 프로그램에 대한 구조에 대한 정보를 줄입니다. Usa defaultMode para un valor por defo y sobreescríbelo por clave cuando lo necesites.
일반적인 문제 해결
변수 Mal nombradas: revisa que las claves en el ConfigMap sean válidas como nombres de env si usas envFrom. Pod의 이벤트에 대해 문의하세요. 무효한 이름에 대한 설명이 있습니다..
Montajes que ocultan archives: si tras montar el Volumen faltan archives que venían en la imagen, probablemente el mountPoint los ha eclipsado. Mueve el mountPath a otra ruta o pasa a subPath si solo necesitas una clave.
Actualizaciones que no llegan: con 변수 de entorno necesitarás reinicios o 롤아웃; 볼륨이 높으면 환기 장치가 동기화되어 실제로 반사되고 주석이 울리는 경우가 있습니다. Si quieres cero espera, evalúa la estrategia direct para detección de cambios.
오류: si recibes entidad demasiado grande, Divide el ConfigMap o cambia la estrategia de configuración. 개체에 따라 1MiB 제한이 있음을 확인함.
Seguridad: evita secretos en ConfigMaps; 미국 비밀 및 응용 프로그램 RBAC. cifrado en reposo de etcd si tu plataforma lo soporta y tu politica lo exige를 고려하십시오..
후원자 조직 및 관리
기본 기능에 따라 ConfigMap을 분리합니다: 기본 데이터, API, UI. 캠비오의 폭발 반경을 줄이고 콘크리트의 회전을 촉진합니다..
Documenta propósito, claves y contacto. kubectl은 개체 목록을 가져오며, 문서에 저장된 모든 항목을 제거합니다. ConfigMap에 대한 환경 및 볼륨에 대한 소비 사례를 포함합니다..
자동화된 유효성 검사는 인간의 응용 프로그램에 대한 테스트와 여러 가지 기능에 대한 테스트를 자동화합니다. YAML의 pruebas de sintaxis 조합과 claves críticas의 존재 여부 확인.
또한, ConfigMap의 체크섬을 통해 강력한 전략을 수립하고 포드 템플릿을 통해 롤아웃을 유도하는 형식을 갖추었습니다. Esto garantiza que los contenedores que usan env reciban los nuevos valores.
ConfigMap을 통해 ConfigMap을 확인하면 실제로 소비에 대한 변종을 파악하고 실제 정책을 실행하고 캠비오를 관리할 수 있습니다. 앞쪽의 실습을 시작하고, 긴장의 구성을 설정하고, 에스컬라에 대한 제어 및 목록을 확인하세요..
