2016-04-08 18 views
1

Kubernetes yaml dosyasındaki ortam değişkenleri nasıl okunur? örneğin, ben liman işçisi resim etiketi değiştirmek istiyorum ama yaml dosyasını güncelleme olmadan ben kubectl rolling-update yapabilirsiniz Bununla buKubernetes çoğaltma denetleyicisi yaml dosyasında ortam değişkenini nasıl kullanabilirim

apiVersion: v1 
kind: ReplicationController 
... 
spec: 
    containers: 
    - name: myapp 
     image: myapp:${VERSION} 
... 

gibi, dosyayı yeniden yazmak istemiyorum.

sayesinde

cevap

-2

Belki bu demek?

- name: PUBLIC_URL 
    value: "http://gitserver.$(POD_NAMESPACE):$(SERVICE_PORT)" 

Bu onların docs belirtildiğine şeydir .. ama artık benim için çalışmaz.

0

Sen this gibi Deploymentkubectl set image ile birleştiğinde kullanmalıdır:

kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1

0

ederim HELM kullanarak öneriyoruz. https://github.com/kubernetes/helm

Yukarıdaki linkte bulunan bilgileri kullanarak HELM'i kurabilirsiniz. Bu, helm komutunu kullanabilmenizi sağlayacaktır.

helm create YOUR_APP_NAME'u çalıştırarak, aşağıdaki gibi bir dizin yapısı oluşturur.

apiVersion: v1 
kind: ReplicationController 
... 
spec: 
    containers: 
    - name: myapp 
     image: {{.Values.container.name}}:{{.Values.container.version}} 
... 

senin çoğaltma için YAML dosyası: Kullanmakta değişkenleri başvurabilirsiniz sizin ReplicationController dosyasında

container: 
    name: "nginx" 
    version: "latest" 

: Eğer gibi bazı ENV değişkenleri ayarlayabilirsiniz values.yaml dosyasında

YOUR_APP_NAME/ 
    Chart.yaml   # A YAML file containing information about the chart 
    LICENSE    # OPTIONAL: A plain text file containing the license for the chart 
    README.md   # OPTIONAL: A human-readable README file 
    values.yaml   # The default configuration values for this chart 
    charts/    # OPTIONAL: A directory containing any charts upon which this chart depends. 
    templates/   # OPTIONAL: A directory of templates that, when combined with values, 
         # will generate valid Kubernetes manifest files. 
    templates/NOTES.txt # OPTIONAL: A plain text file containing short usage notes 

kontrolör, şablonlar dizinine yerleştirilmelidir.

Daha sonra helm package YOUR_PACKAGE_NAME komutunu çalıştırabilirsiniz. Paketi K8S kümenize yüklemek için helm install PACKAGE_NAME

'u çalıştırabilirsiniz. NOT: ReplicationController yerine Deployments'u kullanmaya başlamanızı öneririm. Bakınız: https://kubernetes.io/docs/user-guide/deployments/

İlgili konular