2015-11-26 20 views
7

Sırasıyla bir evreleme ve üretim ortamı için kullanılacak iki ayrı Kubernet kümesi kümem var. Ben her kümeye göndereceğim Kubernetes API nesneleri için YAML tezahürlerine sahip olmak istiyorum, ancak bazı nesneler iki ortam arasında biraz farklı konfigürasyonlara sahip olacak.Kubernetes bildirimlerindeki dinamik değerleri kullanma

Yapılan ancak örnek bir örnek olarak, her bir kümede, biri depolama arka ucu olarak S3 ve GCS arka ucu kullanılarak bir iç Docker kayıt defteri çalıştırmayı hayal edin. Kayıt defteri kapsayıcısı, bu yapılandırma değerlerini ortam değişkenleri olarak kabul edebilir veya bir dosyadan okur, her ikisi de Kubernetes'in desteğini gösterir, ancak bu değerleri her ortam için nasıl doldurmalıyım?

--- 
apiVersion: v1 
kind: Pod 
metadata: 
    name: foo 
spec: 
    containers: 
    - name: foo 
     image: foo 
     env: 
     - name: bar 
      value: $(etcdctl get /path/to/bar) 

Ben yazabilirsiniz:

Esasen ne istediğim $() sözdizimi tezahür gönderildiğinde sunucuda olacağını değişken interpolasyon olan böyle bir şey, görünen bir bildirim için bir yoldur Değerler için yer tutucuları kullanan ve ardından şablona işleyen, aslında bir dış kaynaktan gerçek değerleri çeken ve kümeye gönderilen son bildirimi üretmek için kullanılan şablonlar. Bununla birlikte, bunu zaten yapan bir araç olması durumunda ilk önce isteyeceğimi düşündüm, ya da farkında olmadığım bir şekilde bunu yapmak için Kubernetes-kutsanmış bir yol var. Kesinlikle Kubernet'leri kullanmak için birçok insanın yapması gereken bir şey gibi görünüyor.

Diğer fikirler, ana bilgisayar düğümlerinde bazı etcd, confd ve scripts kombinasyonlarını kullanarak dahil ettim, ancak bu, hemen hemen tüm maliyetlerden kaçınmak istediğim ana bilgisayar yapılandırma yönetimi alanına girmeye başlar. CoreOS kullanıyorum ve ana bilgisayarlar tamamen coreos-cloudinit ile sağlanıyor. Başka bir deyişle, ana bilgisayar sisteminde düğüm oluşturulduğunda tanımlanmayan hiçbir şey manipüle edilmez, bu nedenle Ansible gibi geleneksel yapılandırma yönetimi araçları dışarıdadır.

Kubernetes'in gizlilik sisteminin farkındayım, ancak bu değişken değerlerden bazıları oldukça büyük olabilir ve çoğu sır değildir.

cevap

İlgili konular