28.4.3. 동적 영구 스토리지에 기존 Ceph 클러스터 사용


동적 영구 스토리지에 기존 Ceph 클러스터를 사용하려면 다음을 수행합니다.

  1. client.admin base64 인코딩 키를 생성합니다.

    $ ceph auth get client.admin

    Ceph 시크릿 정의 예

    apiVersion: v1
    kind: Secret
    metadata:
      name: ceph-secret
      namespace: kube-system
    data:
      key: QVFBOFF2SlZheUJQRVJBQWgvS2cwT1laQUhPQno3akZwekxxdGc9PQ== 1
    type: kubernetes.io/rbd 2

    1
    이 base64 키는 ceph auth get-key client.admin | base64 명령을 사용하여 Ceph MON 노드 중 하나에서 생성된 다음 출력을 복사하고 비밀 키의 값으로 붙여넣습니다.
    2
    이 값은 Ceph RBD가 동적 프로비저닝을 사용하는 데 필요합니다.
  2. client.admin의 Ceph 시크릿을 생성합니다.

    $ oc create -f ceph-secret.yaml
    secret "ceph-secret" created
  3. 보안이 생성되었는지 확인합니다.

    $ oc get secret ceph-secret
    NAME          TYPE                DATA      AGE
    ceph-secret   kubernetes.io/rbd   1         5d
  4. 스토리지 클래스를 생성합니다.

    $ oc create -f ceph-storageclass.yaml
    storageclass "dynamic" created

    Ceph 스토리지 클래스 예

    apiVersion: storage.k8s.io/v1beta1
    kind: StorageClass
    metadata:
      name: dynamic
      annotations:
        storageclass.kubernetes.io/is-default-class: "true"
    provisioner: kubernetes.io/rbd
    parameters:
      monitors: 192.168.1.11:6789,192.168.1.12:6789,192.168.1.13:6789 1
      adminId: admin 2
      adminSecretName: ceph-secret 3
      adminSecretNamespace: kube-system 4
      pool: kube  5
      userId: kube  6
      userSecretName: ceph-user-secret 7

    1
    쉼표로 구분된 IP 주소 Ceph 모니터 목록입니다. 이 값은 필수입니다.
    2
    풀에 이미지를 만들 수 있는 Ceph 클라이언트 ID입니다. 기본값은 admin 입니다.
    3
    adminId 의 시크릿 이름입니다. 이 값은 필수입니다. 제공하는 시크릿에는 kubernetes.io/rbd 가 있어야 합니다.
    4
    adminSecret 의 네임스페이스입니다. 기본값은 default 입니다.
    5
    Ceph RBD 풀. 기본값은 rbd 이지만 이 값은 권장되지 않습니다.
    6
    Ceph RBD 이미지를 매핑하는 데 사용되는 Ceph 클라이언트 ID입니다. 기본값은 adminId 의 시크릿 이름과 동일합니다.
    7
    Ceph RBD 이미지를 매핑하는 userId 의 Ceph 시크릿 이름입니다. PVC와 동일한 네임스페이스에 있어야 합니다. 새 프로젝트에서 Ceph 보안을 기본값으로 설정하는 경우 이 매개변수 값을 제공해야 합니다.
  5. 스토리지 클래스가 생성되었는지 확인합니다.

    $ oc get storageclasses
    NAME                TYPE
    dynamic (default)   kubernetes.io/rbd
  6. PVC 오브젝트 정의를 생성합니다.

    PVC 오브젝트 정의 예

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: ceph-claim-dynamic
    spec:
      accessModes:  1
        - ReadWriteOnce
      resources:
        requests:
          storage: 2Gi 2

    1
    accessModes 는 액세스 권한을 적용하지 않고 PV를 PVC에 일치시키는 레이블 역할을 합니다.
    2
    이 클레임은 2Gi 이상의 용량을 제공하는 PV를 찾습니다.
  7. PVC를 만듭니다.

    $ oc create -f ceph-pvc.yaml
    persistentvolumeclaim "ceph-claim-dynamic" created
  8. PVC가 생성되어 예상 PV에 바인드되었는지 확인합니다.

    $ oc get pvc
    NAME        STATUS  VOLUME                                   CAPACITY ACCESSMODES  AGE
    ceph-claim  Bound   pvc-f548d663-3cac-11e7-9937-0024e8650c7a 2Gi      RWO          1m
  9. Pod 오브젝트 정의를 생성합니다.

    Pod 오브젝트 정의 예

    apiVersion: v1
    kind: Pod
    metadata:
      name: ceph-pod1 1
    spec:
      containers:
      - name: ceph-busybox
        image: busybox 2
        command: ["sleep", "60000"]
        volumeMounts:
        - name: ceph-vol1 3
          mountPath: /usr/share/busybox 4
          readOnly: false
      volumes:
      - name: ceph-vol1
        persistentVolumeClaim:
          claimName: ceph-claim-dynamic 5

    1
    oc get pod에 표시되는 이 포드 의 이름입니다.
    2
    이 포드에서 실행하는 이미지입니다. 이 경우 busyboxsleep 으로 설정됩니다.
    3
    볼륨의 이름입니다. 이 이름은 containersvolumes 섹션에서 모두 동일해야 합니다.
    4
    컨테이너의 마운트 경로입니다.
    5
    Ceph RBD 클러스터에 바인딩된 PVC입니다.
  10. Pod를 생성합니다.

    $ oc create -f ceph-pod1.yaml
    pod "ceph-pod1" created
  11. Pod가 생성되었는지 확인합니다.

    $ oc get pod
    NAME        READY     STATUS   RESTARTS   AGE
    ceph-pod1   1/1       Running  0          2m

1분 정도 경과하면 포드 상태가 Running 으로 변경됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.