2017-04-09 48 views
6

Şirketim bir yıldan fazla bir süredir Kuberenetes ve yaklaşık 6 ay boyunca GitLab kullanıyor. Yakın zamanda GitLab 9.x sürümüne geçtik ve KI ile CI + uygulama yapılandırması ile ilgili kararın ne olduğunu bulmaya çalışırken sorun yaşıyoruz. Bu özellik harika ve çevremizde çalışmayı çok isterim.GitLab 9.x Kubernetes Entegrasyonu

GitLab, hizmetinize/uygulamanıza ve ortamınıza eşit olacak uygulamaya eşit olacak şekilde ad alanı tarafından ayrılmış bir kümenin içindeki tüm ortamlarınızla tek bir küme kurulumuna sahip olmanızı bekliyor gibi görünüyor.

namespace = hello-world 
app = development 
app = qa 
app = production 

gerçek bir dünya örnekte biz de çalışacak de tam tersi bir tercih ediyorum: Bu GitLab benzemeye benim Kuberenetes ortamı, ad bölünmüştür hizmetinizdeyiz ile tek küme istiyor gibi görünüyor ne yanı

DEVELOPMENT CLUSTER 
namespace = development 
app = hello-world 

QA CLUSTER 
namespace = qa 
app = hello-world 

PRODUCTION CLUSTER 
namespace = production 
app = hello-world 

ad uygulama ve uygulamalar çevre olmak olmak Having tek küme ile, hepimiz yükseltmeden Kube en son sürümüne yükseltme yeteneğine sahip olmazdı. Belki bir şeyi özlüyorum ama okuduğum şeye dayanıyor ve bunu test ettikten sonra, bunun tasarlandığı şekilde olduğu anlaşılıyor. Başvuru için

bu benim CI + dağıtma kurulu yapmak için şu anda böyle görünüyor terminali mutlu

development: 
    <<: *deploy_definition 
    stage: development 
    environment: hello-world 
    script: 
     deploy.sh -a "hello-world" 

ama bu karışıklığa eklemek için bu

development: 
    <<: *deploy_definition 
    stage: development 
    environment: development 
    script: 
     deploy.sh -a "hello-world" 

gibi görünmelidir, onlar entegrasyonlar sekmesine bağlanmak için size sadece bir Kubernetes master verin.

Bu doğru mu, yoksa bir şey mi eksik?

+0

Hey, bu nasıl göründüğünü üzerinde biraz genişletmek olabilir, çalışma masası dağıtmak kim var bulabilirim kaç birisin beri? Özellikle, her aşama hangi çevreye ihtiyaç duyar? Şu anda 'review/*' ortamlarını ve prod'lerini çalıştırıyoruz, ancak örneğinizde sadece bir ortama ' ' –

+0

@ north.mister ile doğru bir şekilde dağıtılabiliyor gibi görünüyor. Kubernetes entegrasyonu ile her şeyi kurduktan sonra, sizin yukarıda yaptığım gibi yapılandırmanız gerekir. Çalışmamı sağlayabilmemin tek yolu, gitlab-ci dosyasımdaki ortam adının, dağıtım kubernetes şablonundaki uygulama adıyla aynı olması, ref https://kubernetes.io/docs/concepts/workloads/ kontrolörleri/dağıtım /. Muhtemelen tek bir kubernet ortamına sahip olduğunuzdan, ancak çevre başına bir kümeye sahip olduğumuz için bu sizin için çalışacaktır, bu yüzden benim için başarısız oldu. Umarım bu size yardımcı olur. –

cevap

5

Haklısınız. Ben de sinir bozucu buldum.

Ama bile Kubernetes entegrasyon development: <<: *deploy_definition stage: development environment: name: development url: https://development.yourdomain.com script: deploy.sh -a "hello-world"

Kontrol dışarı ben otomatik yapılandırması hakkında geçenlerde yazdığı yazı gitlab gelen Kubernetes dağıtmak olmadan ortamları kullanabilirsiniz.

http://blog.lwolf.org/post/how-to-create-ci-cd-pipeline-with-autodeploy-k8s-gitlab-helm/

+0

Bu yöntem dağıtım kurullarını destekliyor mu? Burada sahip olduğum tek hedef bu. –