2017-09-26 2 views
1

과 같은 이미지의 다수의 포드/배치를 생성한다.는 Kubernetes I는 2 번의 포드 내부 용기 (<strong>용기 TEST2</strong> 및 <strong>cloudsql 프록시</strong>)와 배치가 다른 명령

컨테이너 테스트 2은 [ "my_app", "arg1", "arg2"]를 CMD로 전달하는 고정 이미지를 실행합니다. 다른 인수 조합으로이 컨테이너의 여러 인스턴스를 실행하고 싶습니다. 나는 노드들간에 배포 할 수 있도록 그것들을 별도의 포드로 실행하고 싶다. 나는 이것을 어떻게하는지 완전히 모릅니다.

두 컨테이너를 성공적으로 실행할 수 있지만 container-test2를 다른 인수로 복제하고 개별 컨테이너 내에서 각 컨테이너를 시작하는 방법을 모르겠습니다.

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: test 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     app: test 
    spec: 
     containers: 
     - image: gcr.io/testing-11111/testology:latest 
      name: container-test2 
      command: ["my_app", "arg1", "arg2"] 
      env: 
      - name: DB_HOST 
       # Connect to the SQL proxy over the local network on a fixed port. 
       # Change the [PORT] to the port number used by your database 
       # (e.g. 3306). 
       value: 127.0.0.1:5432 
      # These secrets are required to start the pod. 
      # [START cloudsql_secrets] 
      - name: DB_PASSWORD 
       valueFrom: 
       secretKeyRef: 
        name: cloudsql-db-credentials 
        key: password 
      - name: DB_USER 
       valueFrom: 
       secretKeyRef: 
        name: cloudsql-db-credentials 
        key: username 
      # [END cloudsql_secrets] 
      resources: 
      requests: 
       #memory: "64Mi" 
       cpu: 0.1 
      limits: 
       memory: "375Mi" 
       cpu: 0.15 


     # Change [INSTANCE_CONNECTION_NAME] here to include your GCP 
     # project, the region of your Cloud SQL instance and the name 
     # of your Cloud SQL instance. The format is 
     # $PROJECT:$REGION:$INSTANCE 
     # Insert the port number used by your database. 
     # [START proxy_container] 
     - image: gcr.io/cloudsql-docker/gce-proxy:1.09 
      name: cloudsql-proxy 
      command: ["/cloud_sql_proxy", "--dir=/cloudsql", 
        "-instances=testing-11111:europe-west2:testology=tcp:5432", 
        "-credential_file=/secrets/cloudsql/credentials.json"] 
      volumeMounts: 
      - name: cloudsql-instance-credentials 
       mountPath: /secrets/cloudsql 
       readOnly: true 
      - name: ssl-certs 
       mountPath: /etc/ssl/certs 
      - name: cloudsql 
       mountPath: /cloudsql 
     # [END proxy_container] 
      resources: 
      requests: 
       #memory: "64Mi" 
       cpu: 0.1 
      limits: 
       memory: "375Mi" 
       cpu: 0.15 

     # [START volumes] 
     volumes: 
     - name: cloudsql-instance-credentials 
      secret: 
      secretName: cloudsql-instance-credentials 
     - name: ssl-certs 
      hostPath: 
      path: /etc/ssl/certs 
     - name: cloudsql 
      emptyDir: 
     # [END volumes] 

편집 :

-f를 만들 kubectl : 솔루션

나는, "배포"디렉토리로 배포 설정의 여러 복사본을 만들어 이름과 명령을 개정 한 후 실행하여 해결 배포/당신은 할 수 없습니다

답변

1
  1. individua l 다른 복제본으로 실행되는 복제본은 "exact copy"에서처럼 복제본이 아닙니다. 여러 인수를 사용하여 응용 프로그램을 여러 번 실행하려면 여러 배포를 사용해야합니다.

  2. 복제 컨테이너는 자체 Pod에서 실행됩니다 (예 : 배포 용으로 세 개의 포드가 있어야 세 번의 복제로 조정됩니다.

+0

단일 배포 사양에이 방법을 사용할 수 있습니까? 예를 들어 "- image ..."섹션을 N 번 복사하고 "command : ..."명령을 조정하여 자체 포드에서 실행하도록 지정합니까? – s5s

+0

아니요, 순수 큐빅이 없습니다. 하나의 파일에 여러 배포 사양을 넣거나 사용자의 지속적인 통합 워크 플로 등에서 사용할 솔루션을 스크립트로 작성할 수 있습니다. –

+0

감사합니다. 배포/디렉토리를 만들고 포드 당 하나의 파일을 갖는 것으로 해결했습니다. – s5s