TheKoguryo's 기술 블로그

 Version 2024.04.01

1.10.1 Worker Node 디스크 사이즈 늘리기

용량이 큰 컨테이너 이미지들을 사용하거나, 이미지를의 합계 사이즈가 큰 경우, 실행을 위해 컨테이너 이미지를 Worker Node로 가져오다 오류가 날수 있습니다. 이를 방지하기 위해 Worker Node의 디스크 사이즈를 다음과정을 통해 늘립니다.

Worker Node Boot Volume 사이즈 늘리기
  1. Worker Node의 Boot Volume의 기본 사이즈는 50GB입니다. 클러스터 생성시 advance options 또는 Node Pool 설정화면에서 Boot volume 사이즈를 늘립니다.

    image-20230717182259829

  2. Worker Node에 SSH로 접속하여, 디스크 정보를 보면 다음과 같습니다.

    • sda의 사이즈는 늘어났지만, 실제 파티션된 볼륨 사이즈는 변경되지 않아, 45.5G로 전체를 다 사용하지 못하고 있습니다.
    [opc@oke-c7fk4xxodaa-nk4a2kfionq-sfwfrelxbnq-0 ~]# sudo lsblk
    NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda                  8:0    0  100G  0 disk 
    ├─sda1               8:1    0  100M  0 part /boot/efi
    ├─sda2               8:2    0    1G  0 part /boot
    └─sda3               8:3    0 45.5G  0 part 
      ├─ocivolume-root 252:0    0 35.5G  0 lvm  /
      └─ocivolume-oled 252:1    0   10G  0 lvm  /var/oled
    
  3. 루트 파티션을 확장할 수 있습니다. Extending the Root Partition on a Linux-Based Image을 참고하여 oci-growfs 명령으로 루트 파티션을 늘립니다.

    sudo /usr/libexec/oci-growfs -y
    
    • 실행 예시
    [opc@oke-c7fk4xxodaa-nk4a2kfionq-sfwfrelxbnq-0 ~]$ sudo /usr/libexec/oci-growfs -y
    Volume Group: ocivolume
    Volume Path: /dev/ocivolume/root
    Mountpoint Data     
    ---------------
              mountpoint: /
                  source: /dev/mapper/ocivolume-root
         filesystem type: xfs
             source size: 35.5G
                    type: lvm
                    size: 35.5G
        physical devices: ['/dev/sda3']
        physical volumes: ['/dev/sda', '/dev/sda']
        partition number: ['3']
       volume group name: ocivolume
       volume group path: /dev/ocivolume/root
    
    Partition dry run expansion "/dev/sda3" succeeded.
    CHANGE: partition=3 start=2304000 old: size=95371264 end=97675264 new: size=207411167 end=209715167
    
    Expanding partition /dev/sda3: Confirm?  Partition expand expansion "/dev/sda3" succeeded.
    ...
    
  4. 확장후 다시 조회하면, sda3의 사이즈가 98.9G로 늘어난 것을 볼 수 있습니다.

    [opc@oke-c7fk4xxodaa-nk4a2kfionq-sfwfrelxbnq-0 ~]$ lsblk
    NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda                  8:0    0  100G  0 disk 
    ├─sda1               8:1    0  100M  0 part /boot/efi
    ├─sda2               8:2    0    1G  0 part /boot
    └─sda3               8:3    0 98.9G  0 part 
      ├─ocivolume-root 252:0    0 88.9G  0 lvm  /
      └─ocivolume-oled 252:1    0   10G  0 lvm  /var/oled
    
cloud-init을 사용하여, Worker Node 생성시 자동으로 확장하기
  1. 클러스터 생성시 advance options 또는 Node Pool 설정화면에서 Boot volume 사이즈를 늘립니다.

  2. Worker Node 생성시 커스텀 cloud-init 스크립트를 실행할 수 있습니다.

  3. 문서상에 있는 디폴트 시작 스크립트에 oci-growfs 명령을 추가해 주면 됩니다.

    #!/bin/bash
    curl --fail -H "Authorization: Bearer Oracle" -L0 http://169.254.169.254/opc/v2/instance/metadata/oke_init_script | base64 --decode >/var/run/oke-init.sh
    bash /var/run/oke-init.sh
    sudo /usr/libexec/oci-growfs -y
    
  4. 클러스터 생성시 advance options 또는 Node Pool 설정화면에서 Initialization Script에 복사합니다.

    image-20230717183225763

  5. 추가된 내용으로 클러스터를 생성하거나, 기존 Node Pool인 경우 Worker Node를 재생성합니다.

  6. 생성된 Worker Node에 SSH로 접속해 cloud-init-output 로그를 확인하면, 추가된 스크립트가 실행된 것을 볼 수 있습니다.

    $ cat /var/log/cloud-init-output.log
    ...
    Mon Jul 17 09:40:21 UTC 2023 Finished OKE bootstrap
    Volume Group: ocivolume
    Volume Path: /dev/ocivolume/root
    ...
    
    CHANGED: partition=3 start=2304000 old: size=95371264 end=97675264 new: size=207411167 end=209715167
    
    Extending /dev/sda3 succeeded.
    Device /dev/sda3 extended successfully.
    Logical volume /dev/ocivolume/root extended successfully.
    Cloud-init v. 22.1-6.0.4.el8_7.2 running 'modules:final' at Mon, 17 Jul 2023 09:39:26 +0000. Up 23.69 seconds.
    Cloud-init v. 22.1-6.0.4.el8_7.2 finished at Mon, 17 Jul 2023 09:40:23 +0000. Datasource DataSourceOracle.  Up 80.32 seconds
    
  7. cloud-init이 실행되어 루트 볼륨이 늘어난 것을 확인할 수 있습니다.

    [opc@oke-c7fk4xxodaa-nk4a2kfionq-sfwfrelxbnq-0 ~]$ lsblk
    NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda                  8:0    0  100G  0 disk 
    ├─sda1               8:1    0  100M  0 part /boot/efi
    ├─sda2               8:2    0    1G  0 part /boot
    └─sda3               8:3    0 98.9G  0 part 
      ├─ocivolume-root 252:0    0 88.9G  0 lvm  /
      └─ocivolume-oled 252:1    0   10G  0 lvm  /var/oled
    


이 글은 개인으로서, 개인의 시간을 할애하여 작성된 글입니다. 글의 내용에 오류가 있을 수 있으며, 글 속의 의견은 개인적인 의견입니다.

Last updated on 17 Jul 2023