Menu Close

6.4.2. Pod의 예상 볼륨 구성

예상 볼륨을 생성할 때는 예상 볼륨 이해에 설명된 볼륨 파일 경로 상황을 고려하십시오.

다음 예제에서는 예상 볼륨을 사용하여 기존 보안 볼륨 소스를 마운트하는 방법을 보여줍니다. 이 단계를 사용하여 로컬 파일에서 사용자 이름 및 암호 보안을 생성할 수 있습니다. 그런 다음 예상 볼륨을 사용하여 하나의 컨테이너를 실행하는 Pod를 생성하여 동일한 공유 디렉터리에 보안을 마운트합니다.

프로세스

예상 볼륨을 사용하여 기존 보안 볼륨 소스를 마운트합니다.

  1. 다음을 입력하고 암호 및 사용자 정보를 적절하게 교체하여 보안이 포함된 파일을 생성합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: mysecret
    type: Opaque
    data:
      pass: MWYyZDFlMmU2N2Rm
      user: YWRtaW4=

    userpass 값은 base64로 인코딩된 유효한 문자열일 수 있습니다.

    다음 예제에서는 admin을 base64 형식으로 보여줍니다.

    $ echo -n "admin" | base64

    출력 예

    YWRtaW4=

    다음 예제에서는 암호 1f2d1e2e67df를 base64 형식으로 보여줍니다.

    $ echo -n "1f2d1e2e67df" | base64

    출력 예

    MWYyZDFlMmU2N2Rm

  2. 다음 명령을 사용하여 보안을 생성합니다.

    $ oc create -f <secrets-filename>

    예를 들면 다음과 같습니다.

    $ oc create -f secret.yaml

    출력 예

    secret "mysecret" created

  3. 다음 명령을 사용하여 보안이 생성되었는지 확인할 수 있습니다.

    $ oc get secret <secret-name>

    예를 들면 다음과 같습니다.

    $ oc get secret mysecret

    출력 예

    NAME       TYPE      DATA      AGE
    mysecret   Opaque    2         17h

    $ oc get secret <secret-name> -o yaml

    예를 들면 다음과 같습니다.

    $ oc get secret mysecret -o yaml
    apiVersion: v1
    data:
      pass: MWYyZDFlMmU2N2Rm
      user: YWRtaW4=
    kind: Secret
    metadata:
      creationTimestamp: 2017-05-30T20:21:38Z
      name: mysecret
      namespace: default
      resourceVersion: "2107"
      selfLink: /api/v1/namespaces/default/secrets/mysecret
      uid: 959e0424-4575-11e7-9f97-fa163e4bd54c
    type: Opaque
  4. volumes 섹션이 포함된 다음과 유사한 Pod 구성 파일을 생성합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-projected-volume
    spec:
      containers:
      - name: test-projected-volume
        image: busybox
        args:
        - sleep
        - "86400"
        volumeMounts:
        - name: all-in-one
          mountPath: "/projected-volume"
          readOnly: true
      volumes:
      - name: all-in-one
        projected:
          sources:
          - secret:      1
              name: user
          - secret:      2
              name: pass
    1 2
    생성한 보안의 이름입니다.
  5. 구성 파일에서 Pod를 생성합니다.

    $ oc create -f <your_yaml_file>.yaml

    예를 들면 다음과 같습니다.

    $ oc create -f secret-pod.yaml

    출력 예

    pod "test-projected-volume" created

  6. Pod 컨테이너가 실행 중인지 확인한 후 Pod 변경 사항을 확인합니다.

    $ oc get pod <name>

    예를 들면 다음과 같습니다.

    $ oc get pod test-projected-volume

    출력은 다음과 유사합니다.

    출력 예

    NAME                    READY     STATUS    RESTARTS   AGE
    test-projected-volume   1/1       Running   0          14s

  7. 다른 터미널에서 oc exec 명령을 사용하여 실행 중인 컨테이너에 쉘을 엽니다.

    $ oc exec -it <pod> <command>

    예를 들면 다음과 같습니다.

    $ oc exec -it test-projected-volume -- /bin/sh
  8. 쉘에서 projected-volumes 디렉터리에 예상 소스가 포함되어 있는지 확인합니다.

    / # ls

    출력 예

    bin               home              root              tmp
    dev               proc              run               usr
    etc               projected-volume  sys               var