2015-12-12 13 views
6

Konieczne przekazywanie argumentów wiersza polecenia dla kontenera dokowanego appContainer1 & appContainer2 w pod.yaml.Jak przekazywać argumenty wiersza poleceń w kernernetes?

pod.yaml

apiVersion: v1 
kind: Pod 
metadata: 
    name: microservices 
    labels: 
    app: apps 
spec: 
    containers: 
    - name: appContainer1 
     image: gcr.io/mybucket/appContainerImage1 
     ports: 
     - containerPort: 8080 
    - name: appContainer2 
     image: b.gcr.io/mybucket/appContainerImage2 
     ports: 
     - containerPort: 9090 

W docker, mogę przekazać argumenty linii poleceń za pomocą zmiennej środowiskowej (-e)

docker run --rm -it -p 9090:9090 -e spring.profiles.dynamic=local applicationimage1 

tak samo, trzeba przekazywać argumenty wiersza poleceń, gdy pojemniki działa wewnątrz kubernetes.

Odpowiedz

13

Brzmi jak w rzeczywistości nie chcą argumenty wiersza poleceń, ale zmienne środowiskowe - i można korzystać env na to:

- name: appContainer1 
    image: gcr.io/mybucket/appContainerImage1 
    ports: 
    - containerPort: 8080 
    env: 
    - name: spring.profiles.dynamic 
     value: local 

Wy Mogę użytku argumenty wiersza poleceń:

- name: appContainer1 
    image: gcr.io/mybucket/appContainerImage1 
    ports: 
    - containerPort: 8080 
    args: 
    - foo 
    - bar 
    - "String containing:colons:" 
+0

Niestety, env: obsługuje tylko czapki z kluczem i nie zezwala na używanie specjalnych znaków, takich jak kropka (.), A argumenty nie działają. proszę doradź mi. – Shiva

+0

@Shiva "nie działa" jest bardzo niejasne. Proszę być bardziej konkretnym. –

+0

@Shiva: Podobnie dzieje się, gdy * wypróbujesz * 'env', jak jest. (Czy udokumentowano ograniczenie dotyczące wielkich liter? Nie widziałem tego, ale być może przegapiłem je ...) –