- ConfigMaps, kod yapılandırmasını ayırır ve görüntüleri yeniden oluşturmak için farklı dinamiklere izin verir
- Şunları tüketirsiniz: env, args, hacim dosyaları ve API aracılığıyla dersler ve ek açıklamalar
- Ses düzeylerini otomatik olarak etkinleştirme ve ortam için yeniden başlatma gerekir; 1 MiB sınırı ve kusurlu transfer
- Uygulamalar: sürüm oluşturma, hash'i özelleştirme, RBAC, sırlardan kaçınma ve işlem sırasında değiştirilemez öğeleri kullanma

Kubernetes ile çalışıyorsanız ve kod yapılandırmasını ayırmanız gerekiyorsa, ConfigMaps sizin için en önemli seçenektir. Görüntünün içinde bir yapılandırma yapmak için Pod'larda mantıklı olmayan klavuz değerlerinin değiştirilmesine izin verin, bu, temiz, taşınabilir ve bakım kolaylığını ortadan kaldırmayı kolaylaştırır.
Temel olarak önemli noktalar var: tam sınırlar, hacimsel olarak montarları otomatik olarak gerçekleştirmek, değişkenleri ve değişkenleri etkilemek, güvenlik uygulamaları ve gözlemlenebilirlik stratejileri. Bu, ConfigMaps'e hakim olmak için gerekenleri renklendirmede yeniden yapılandırmanın pratik bir yolu..
Bu bir ConfigMap'tir ve kullanılması gerekir
ConfigMap, Kubernetes API'sinin aynı düzeyde gizli olmayan yapılandırma verilerini toplamak için kullanılan bir nesnesidir. Hedefiniz, yarışmacı görsellerinin özel yapılandırmasını devre dışı bıraktı, her şeyi yeniden yapılandırmanın ve bir parametreyi değiştirmenin önlenmesini sağlar.
Pod'lar, ConfigMaps'i veri değişkenleri, düzen argümanları, hacimlerdeki dosya dosyaları veya doğrudan API'ye bağlı dosyalar olarak kullanabilir. Bu sistem, 12 Faktörlü Uygulamaların yapılandırma faktörünü içeriyor ve geliştirme, üretim ve üretim sırasında taşınabilirliği artırıyor.
Uygulamanın DATABASE_HOST değişkenine aktarıldığını hayal edin. Yerel olarak bir yerel ana bilgisayar bulunur ve veri tabanını açıklayan bir Hizmetin adı kullanılır. ConfigMap'i kullanarak, ikili dosyadaki görüntüye göre farklı değerler elde edebilirsiniz., aynı kodu başka bir kasaya boşaltın.
Hay una limitación clave: ConfigMap'in 1 MiB'den daha üstün olması gerekmez. Daha fazla gerekiyorsa, yapılandırmayı çeşitli ConfigMaps'e bölün veya harici bir hizmet, bir birim veya yapılandırma veri tabanı kullanın.

ConfigMap Nesnesi: Kampüsler, İsimler ve Geçerli Klavuzlar
Kamp spesifikasyonlarına göre nesnelerin belediye başkanlığından bir fark, ConfigMap, veri ve ikili veri içindeki içeriği tanımlar. veri espera metni UTF‑8; ikili Veri, base64'te kodlanmış ikili içerik içerir; UTF‑8 olmayan formatlar için idealdir.
ConfigMap'in adı, geçerli bir alt DNS DNS'sine sahiptir ve alfanümerik, guion, guion bajo veya punto karakterlerinde içerik içeren ikili veri veya ikili veri grupları içerir. Veri grupları, ikili verilerle ayrıştırılamazÇatışmaları önlemek için kriterlere göre organize edildiği gibi.
Kubernetes v1.19, ConfigMaps'in değişmez öğelerini oluşturabilir ve değişmez bir kampa dönüştürebilir: true. v1.21 sürümünde değiştirilemez, kazara oluşabilecek değişikliklerden kaçınılır ve saatlerin API sunucusundaki yük azaltılır, aynı zamanda değişiklik gerektiriyorsa, nesneyi silme ve yeniden oluşturma eğilimindedir.
ConfigMaps ve Pod'lar: tüketim biçimleri
Bir Pod'un ConfigMap'i kullanması için, aynı ad alanında da çalışmanız gerekir. Temel tüketim ilkelerini takip edin Uygulamanın gerekli olup olmadığına bakın.
- Pasar, ConfigMap verilerine referans olarak yarışmacının komutlarını ve argümanlarını değerlendirir. Tartışmalar için tek başına yapılandırmayı kolaylaştıran ikili dosyalar için kullanılır.
- Exponer, yarışmacının içindeki değişkenler gibi clave-valor'u da temsil eder. Entorno'da kullanılabilecek uygulamalar için daha fazla seçenek.
- ConfigMap'i kişisel bir ders cildinde dosya halinde bulabilirsiniz. Yapılandırma arşivlerini çalıştıran uygulamalar için mükemmel.
- API'yi kendi koduyla birlikte ConfigMap'e bakın. API kullanan diğer ad alanları da dahil olmak üzere farklı adlara kaydolmaya ve sıcaklıkta yanıt vermeye izin verin.
Kubernetes, hacim olarak kullanıldığında arşivler oluşturur. Hacimdeki öğeleri tanımlar, seçilebilir ve somut bölümleri yeniden adlandırabilirsiniz; eğer hayır, bugünlerde bir projeniz var. También, belirli kuralları ele alabilir ve her dosya için POSIX'e izin verebilir.
ConfigMaps montajlarının ve değişken değişkenlerinin güncelleştirilmesi
Un detalle crítico: Bir ConfigMap'i bir ciltte monte ettiğinizde, değişiklikler otomatik olarak küçük bir geri dönüşle yayılır.. Kubelet, içeriği her zaman senkronize ederek yerel bir önbellekte saklar.
Bu uyumluluk, TTL veya doğrudan API sunucusu üzerinden izleyebileceğiniz configMapAndSecretChangeDetectionStrategy'ye bağlıdır. Toplam gecikme, önbellek yayılımından daha fazla kubelet senkronizasyon süresinin toplamı kadardır; kusurluysa, 1 dakikalık senkronizasyon ve 1 dakikalık TTL, 2 dakikalık gecikmeye kadar izin verebilir.
Bunun yerine, ConfigMaps'ten türetilen değişkenler otomatik olarak gerçekleştirilmiyor. İşlemin yeni değerleri geri kazanması için Pod'u yeniden başlatmanız veya kullanıma sunmanız gerekir. Dağıtımlar'da bir yeniden yükleme sağlamak için bir yazılım, Kapsül Şablonu'nda bir açıklama değiştirerek yeni bir ReplicaSet'i tetikler.
Crear ConfigMaps con kubectl
Kubectl ile yapılandırma haritası oluşturabilir veya kustomization.yaml'de özelleştirme oluşturucuları oluşturabilirsiniz. kubectl çeşitli kaynaklara izin verir: dizinler, bireysel dosyalar, değişmez dosyalar ve ortam dosyaları.
Desde un directorio
Geçerli dizin adı ile tüm düzenli dosyalarınızı doldurun, dosya adı olarak dosya adını ve içeriği de değer olarak kullanın. Düzenli olarak hiçbir oğlunun görmezden geldiği girişler alt dizinler gibi veya sembolleri birleştirir.
kubectl create configmap game-config --from-file=configure-pod-container/configmap/
ConfigMap'i örneğin oyun.özellikleri ve kullanıcı arayüzü verilerinin orijinal metniyle açıklayın. Bu, kümedeki yapılandırma dosyalarının en büyük biçimidir.
Desde ficheros concretos
Kaynakları birleştirmek için dosyadan çeşitli tekrarlar yapabilirsiniz. Dosyanın kusurlu olması, arşivin temel adıdır., ayrıca bir fark belirtebilirsiniz.
kubectl create configmap game-config-2
--from-file=configure-pod-container/configmap/game.properties
--from-file=configure-pod-container/configmap/ui.properties
Dosya için başka bir yolu tanımlamak isterseniz, klavuz=yol formunu kullanın. Bu, çeşitli arşivlerin adları karşılaştırması veya daha fazla açıklama içeren sevgili adları kullanması için kullanılır..
kubectl create configmap game-config-3
--from-file=game-special-key=configure-pod-container/configmap/game.properties
Desde valores literales
Kelimenin tam anlamıyla, gerekli olan seçenekleri tekrarlayarak, çevrimiçi olarak eşit değer değerlerini tanımlar. Hızları veya bir mülk vuruşunu ayarlamak için idealdir.
kubectl create configmap special-config
--from-literal=special.type=charm
--from-literal=special.how=very
Desde env dosyaları
–env dosyasından, .env biçimindeki değişkenler arşivinin bir bölümünü oluşturur. v1.23, kaynakları birleştirmek için ortam dosyasından belirli çeşitli özelliklere sahiptir.
kubectl create configmap my-config --from-env-file=app.env --from-env-file=extra.env
Kişiselleştirme ile Genel Yapılandırma Haritaları
Özelleştirme, dosyaların veya değişmezlerin ConfigMap'lerini oluşturmak için özelleştirme.yaml dosyasında oluşturucuların bildirilmesine izin verir. Oluşturulan isim, bir sufi içerik karması içerir Verilerinizi değiştirmek için yeni bir nesneyi garanti etmek için.
configMapGenerator:
- name: game-config-4
files:
- configure-pod-container/configmap/game.properties
Bu, dosya adından farklı bir kategoriye ait olabilir. Bu teknik, bildirimleri ortadan kaldırmayı ve yapılandırma önbelleğindeki sorunları ortadan kaldırmayı kolaylaştırır.
configMapGenerator:
- name: game-config-5
files:
- game-special-key=configure-pod-container/configmap/game.properties
ConfigMaps'i ortam değişkenleri olarak kullanın
Tienes dos patrones müdürleri. EnvFrom'dan ConfigMap'in tüm öğelerini içerik değişkenleri olarak içe aktarır. Uygulamada çok sayıda değişken olduğunda hızlı ve rahat.
envFrom:
- configMapRef:
name: my-config
Eğer tek başınıza başka anahtarlar veya şifreler sorarsanız, değerFrom.configMapKeyRef'i kıskanırsınız. Farklı zaman aralıkları ve değişkenin adı farklı olabilir.
env:
- name: CONFIGMAP_USERNAME
valueFrom:
configMapKeyRef:
name: my-config
key: username
Ojo: Entorno değişken isimleri, karakter sınırlamasıyla birlikte kabul edilir. ConfigMap'in bir anahtarı bir ortam için geçerli değilse, InvalidEnvironmentVariableNames türünde bir olayı atlayın ve kaydedin, aunque el Pod arrancará.
Montar ConfigMaps dosya olarak
Verileri arşiv olarak göstermek için, birimi configMap.name ile özel hacimlere ekleyin ve bu birimi gerekli olan her içerikteki hacimle birlikte ekleyin. Bu ağ MountPath'in bir dosyası olarak projelendiriliyor.
volumes:
- name: config-volume
configMap:
name: special-config
containers:
- name: app
image: my-image
volumeMounts:
- name: config-volume
mountPath: /etc/config
readOnly: true
Haritalar, yoldaki öğeleri kullanan kuralları ve kesin adları belirler veya alt Yol ile tek bir yol oluşturabilir. Dosya izinlerini varsayılan mod veya klavyeye göre ayarlayabilirsiniz.
volumes:
- name: config-volume
configMap:
name: special-config
items:
- key: SPECIAL_LEVEL
path: keys
Önemli Not: Resimde montaj dizininde dosyalar mevcutsa, cilt tarafından görüntülenebilir. Boşaltma sırasında gerekli olan dosyaları silmemek için bunu yapın.
Metin UTF-8'de gösterilir; diğer kodlar veya ikili dosyalar için, ABD ikili Verileri. ConfigMap'i etkinleştirdiğinizde, önerilen içerik sözü geçen gecikmeyle yenilenir.. Yeniden kaydetme için Pod'a bir not ekleyerek, işlemin gerçekleştirilmesini hızlandırabilirsiniz.
İsteğe bağlı referanslar, ad alanları ve kısıtlamalar
Bir ConfigMap referansı isteğe bağlı olarak kullanılabilir. ConfigMap mevcut değilse, birim boşalır ve ortam değişkeninin değeri değişmez; Eğer beton mevcut değilse, ruta veya değişken değişkenler kullanılabilir.
Reglas a recordar: İsteğe bağlı olarak işaretler gönderilmeden önce ConfigMap'in mevcut olması gerekir, ConfigMap gibi Pod da aynı ad alanında yer alır. ConfigMaps, Kubelet tarafından doğrudan oluşturulan statik bölmelerle uyumlu değildir.
ConfigMaps değişmezleri
Değiştirilemez ConfigMaps işlevi, birçok montaj kümesinde açıklanabilir: sorunlara neden olan diğer değişiklikleri koruyun ve belirli saatlerde API sunucusunun yükünü azaltın. Değişmez bir şey doğrudur, ikili verilerde hiçbir veri düzenlemesi yoktur; Bu, kötü referansları engellemek için yüklenen Pod'ları silip yeniden oluşturabilmenizi ve normal şekilde yeniden başlatabilmenizi sağlar.
Sınırlar, Tamaño ve Dahili Depolama
ConfigMaps, API nesnelerinin geri kalanıyla birlikte korunur. Kusurlu bir işlem yok; Yedeklemelere erişilebildiğinde, yedekler içeriğinde bulunabilir, çünkü gizli bilgilerin alınması gerekmemektedir.
Existe un límite de tamaño: Tamamlanan nesnenin 1 MiB boyutunda olması gerekiyor. Aşırı büyük bir hata oluştu. Bu teknikle karşılaşırsanız, çeşitli ConfigMaps'lerde yapılandırmayı yeniden hazırlayın veya hacimlere veya harici hizmetlere yönelik bilgi aktarımı yapın.
Karşılaştırmalı hızlı: ConfigMaps, veri tabanı değişkenleri ve Secrets
Çeşitli seçenekler konfigürasyona yol açar. ConfigMaps, mantıklı olmayan verileri merkezileştiriyor ve dinamikleri gerçekleştirmeyi kabul ediyor. Farklı yapılandırmalardaki değişkenler, farklı ayarlar için yeniden konuşlandırılabilir. Temel64'te kodlanmış mantıklı veriler içeren sırlar; gerçek değil, ancak ayrılıklara ve daha büyük kontrollere erişim politikalarına izin veriliyor.
- Yapılandırma Haritaları: arşiv veya ortam gibi mantıklı, dinamik ve kolay kurulum yok. Arızalı ürün yok.
- Ortam Değişkenleri: Ancak çok fazla uygulamanız varsa ve sıcaklıkta gerçekleştirilmiyorsa.
- sırları: mantıklı veriler; normal yapılandırmanın ayrı kimlik bilgileri, özel olarak anlaşılması gerekir.
İyi uygulamalar ve güvenlik
ConfigMaps sürümlerini bir yerde saklayın ve sürüm açıklamalarını veya sürüm dosyalarını kullanın. Özelleştirmeyle, içerik karmaları ek bilgilerden yararlanarak daha fazla bilgi sağlar.
Evita ConfigMaps'e gizli bilgiler sunuyor; Erişimi sınırlamak için ABD Sırları ve RBAC. Uygulamadan önce satır satırlarını ve temel bilgileri doğrulama Biçim veya girinti hatalarını azaltmak için.
RBAC erişimini kontrol edin. Örneğin, un rol de solo lectura bir ad alanındaki yapılandırma haritaları için:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: configmap-reader
rules:
- apiGroups: ['']
resources: ['configmaps']
verbs: ['get', 'list', 'watch']
Değişiklikler için, canlı ortamda düzenleme ve uygulama, ancak üretimde, PR tarafından başvuru ve revizyon yoluyla beyan edilen beyan yöntemi tercih edilir. Ortam değişkenleri kullanıyorsanız, Pod'ların yeni değerleri yeniden belirlemesi için ConfigMap'i düzenleyerek kullanıma sunma planını yapın.
Avanzados ve gerçek senaryolar
Çoklu ortamlar: geliştirme, aşamalandırma ve üretim için özel ConfigMaps oluşturun. Yardımcı önlemler geliştirici sürümlerdeki hataları ayarlar ve azaltır.
Kümeler arasında kopyalayın: Manifestolar halinde, gerekli yerlere göre taşıyıcılar ve uygulamalar yapabilirsiniz. Esto agiliza migraciones o DR.
Çeşitli yanıtlara yanıt veren uygulamalar: API'deki ConfigMaps varsa, olayları kaydedin ve görüntülü olarak yanıt verin. Bu, kodların daha da karmaşık hale getirilmesiyle birlikte, yeniden başlatmalar için uyumlu hale getirilmesine izin veren bir bilgidir..
Dağıtımlarla ilgili açıklamalar: ortamdaki ve birimlerdeki ConfigMaps'e bakın. ConfigMap'i ortam olarak kullandığınızda yenileme yapmak için, Kapsül Şablonunda bir açıklama sağlama toplamı ekleyin veya bir etiketi artırın, yeni bir ReplicaSet'in desenlendirilmesini sağlar.
Proje hacimlerinin ayrıntıları
Pod'un çeşitli kökenlerden bir hacim tanımlaması durumunda, kombinasyonlar için öngörülen hacimleri kullanın. Öğelerle ilgili harita haritaları, dosya adlarının uygulamanızla tutarlı olmasına izin verir. subPath, dizini tamamlamak için tek bir anahtar oluşturmak için kullanılır.
Kişisel derste ConfigMap montajlarını kurtarın ve hacimdeki gizli gizli dosyalarda dosyalar halindeki görüntüleri kurtarın. Görüntüdeki önemli unsurların yer almadığı montaj planları.
Tüm ayarların ayrıntılı olarak gerçekleştirilmesi ve algılanması
Kubelet, MapAndSecretChangeDetectionStrategy yapılandırmasındaki değişiklikleri tespit etmeye karar verir. Kusurlu modu izleyin, TTL'yi bir önbelleğe alın ve her API sunucusuna doğrudan başvurun. Başka bir gecikme ve kontrol düzlemi yükü etkisinden kurtulun.
Montajlardaki etkili yenileme, önbellek yayılımının daha fazla olduğu senkronizasyon dönemine kadar gecikebilir. Hemen gerçekleştirilmesi gerekiyorsa, yansımayı güçlendirecek bir senkronizasyon oluşturmak için Pod'daki bir açıklamayı değiştirin. Bu kullanıcı gecikmesi veya arızası kabul edilemez olduğunda sık sık kullanılır.
Kısıtlamalar ve hatalarla uyumluluk
İsteğe bağlı olarak bir ConfigMap referansı mevcut değilse, Pod düzenlenemez. Aynı modda, mevcut olmayan referans komutları, isteğe bağlı somut referansların başlangıç salvosunu engelliyor.
EnvFrom kullanıldığında, ortam değişkenleri için uyumsuz olan kodlar atlanır ve tuzlu kodlar listesiyle bir olay doğrulanır. Bu, bazı temel değişkenlerin yanı sıra bazı düzenleme hatalarından da kaçınılmasını sağlar..
Alışılmış Uygulamalar
Dosyalarda bir ConfigMap oluşturun ve açıklayın
kubectl create configmap app-config --from-file=.env.local --from-file=.env.remote
kubectl describe configmap app-config
Klavyeler, dosya adlarını ve içeriklerini, değerlerini içerir. Tanımladığınız nesneyi inceleyin ve klavyelerin esperabas gibi doldurulduğunu doğrulayın..
Bir beton parçasının içindeki değişkenler
env:
- name: PORT
valueFrom:
configMapKeyRef:
name: app-config
key: port
Bu patron, işlemin girişine aktarılan kontrolün iyi olmasını sağlar. Bu özellikle ConfigMap'in bütünleşik bir açıklama gerektirmeyen çok kanallı parçalar içermesi durumunda kullanılır..
Montaj öğeleri ve izinleri seçin
volumes:
- name: config-volume
configMap:
name: special-config
items:
- key: SPECIAL_TYPE
path: conf/type
mode: 0640
Bilgi akışını azaltmak için yeterli izinlerle beton kalıpları koruyun ve yapıyı uygulamanız için ayrılan veri tabanıyla hizalayın. Arızalı bir değer için varsayılan Modu kullanın ve ihtiyaç duyulduğunda kontrol için varsayılan modu kullanın.
Yaygın sorunları giderme
Adlandırılmış değişkenler: ConfigMap'teki komutların, envFrom kullanıldığında çevre adlarına göre doğrulandığını gözden geçirin. Geçersiz isimler tarafından indirilip indirilmediğini öğrenmek için Pod etkinliklerine başvurun.
Gizli dosya montajları: Görüntüde yer alan boş dosyaların bir araya getirilmesi durumunda, muhtemelen MountPoint'in gölgede kalması muhtemeldir. Tek başına bir klavye gerekiyorsa MountPath'i başka bir rotaya veya subPath'e geçirin.
Gerçekleştirilemeyen gerçekleşmeler: yeniden başlatılmasını veya kullanıma sunulmasını gerektiren ortam değişkenleri; ses seviyelerinde, senkronizasyon havalandırması sağlayın veya bir açıklamayı gerçekleştirecek bir yansıma sağlayın. Eğer başka bir şey istiyorsanız, cambiyotiğin tespiti için doğrudan stratejiyi değerlendirin.
Tamaño hataları: çok büyük tarifler varsa, ConfigMap'i bölün veya yapılandırma stratejisini değiştirin. Nesne için 1 MiB sınırını kurtarın.
Güvenlik: ConfigMaps'te gizli bilgileri ortadan kaldırın; ABD Sırları ve RBAC uygulaması. Destek platformunda ve dış politikada veri deposundaki şifreyi göz önünde bulundurun.
Organizasyon ve Yönetim Patronları
İşlevsel olarak Yapılandırma Haritalarını ayırın: veri tabanı, API, kullanıcı arayüzü. Bu, patlama yarıçapını azaltmak ve beton değerlerinin dönüşünü kolaylaştırmak için.
Teklifi, bağlantıları ve iletişim bilgilerini belgeleyin. Nesnelerin listesini elde ettiğimizde, belge kötü niyetli kişilerin engellenmesi için depoda canlı olarak duruyor. Her ConfigMap için kıskançlıkla ilgili tüketim örneklerini ve hacimleri ekleyin.
Birden fazla kaynak oluşturup oluşturmadığınızı göz önünde bulundurarak, uygulamadaki lifleri ve humus testlerini otomatikleştirin. YAML'in giriş temellerini, eleştiri notlarının mevcut olup olmadığını kontrol etmek için birleştirin.
Bunları dağıtmak için, ConfigMap'in bir sağlama toplamı ile Pod Şablonu'na sağlam bir strateji eklenir, bu da her şeyin kullanıma sunulmasını tetikleyecek biçimdir. Bu, kullanan rakiplerin yeni değerlerden yararlanacağını garanti eder.
ConfigMaps'in özü önemli, ancak tüketim değişkenleri, gerçekleştirme politikaları ve değişiklik değişiklikleri hakim olduğunda gerçek değeri ortaya çıkıyor. Önceki uygulamaları, güvenlik yapılandırmalarını, kontrolleri ve yükseltme listelerini izleyin.