7.2.5. AWS에서 사용자 지정 /var 파티션이 있는 새 RHCOS 작업자 노드 추가


OpenShift Container Platform은 부트스트랩 중에 처리되는 머신 구성을 사용하여 설치 중에 장치 분할을 지원합니다. 그러나 /var 파티션을 사용하는 경우 장치 이름은 설치 시 결정되어야 하며 변경할 수 없습니다. 장치 이름 지정 스키마가 다른 경우 다른 인스턴스 유형을 노드로 추가할 수 없습니다. 예를 들어 m4.large 인스턴스, dev/xvdb 의 기본 AWS 장치 이름으로 /var 파티션을 구성한 경우 기본적으로 m5.large 인스턴스가 /dev/nvme1n1 장치를 사용하므로 AWS m5.large 인스턴스를 직접 추가할 수 없습니다. 다른 이름 지정 스키마로 인해 장치를 파티션하지 못할 수 있습니다.

이 섹션의 절차에서는 설치 시 구성된 것과 다른 장치 이름을 사용하는 인스턴스와 함께 새로운 RHCOS(Red Hat Enterprise Linux CoreOS) 컴퓨팅 노드를 추가하는 방법을 보여줍니다. 사용자 정의 사용자 데이터 시크릿을 생성하고 새 컴퓨팅 머신 세트를 구성합니다. 이러한 단계는 AWS 클러스터에 따라 다릅니다. 이 원칙은 다른 클라우드 배포에도 적용됩니다. 그러나 장치 이름 지정 스키마는 다른 배포마다 다르며 케이스별로 결정되어야 합니다.

절차

  1. 명령줄에서 openshift-machine-api 네임스페이스로 변경합니다.

    $ oc project openshift-machine-api
  2. worker-user-data 시크릿에서 새 시크릿을 생성합니다.

    1. 시크릿의 userData 섹션을 텍스트 파일로 내보냅니다.

      $ oc get secret worker-user-data --template='{{index .data.userData | base64decode}}' | jq > userData.txt
    2. 텍스트 파일을 편집하여 새 노드에 사용하려는 파티션에 대한 스토리지,파일 시스템, systemd 스탠자를 추가합니다. 필요에 따라 Ignition 구성 매개변수 를 지정할 수 있습니다.

      참고

      ignition 스탠자의 값을 변경하지 마십시오.

      {
        "ignition": {
          "config": {
            "merge": [
              {
                "source": "https:...."
              }
            ]
          },
          "security": {
            "tls": {
              "certificateAuthorities": [
                {
                  "source": "data:text/plain;charset=utf-8;base64,.....=="
                }
              ]
            }
          },
          "version": "3.2.0"
        },
        "storage": {
          "disks": [
            {
              "device": "/dev/nvme1n1", 
      1
      
              "partitions": [
                {
                  "label": "var",
                  "sizeMiB": 50000, 
      2
      
                  "startMiB": 0 
      3
      
                }
              ]
            }
          ],
          "filesystems": [
            {
              "device": "/dev/disk/by-partlabel/var", 
      4
      
              "format": "xfs", 
      5
      
              "path": "/var" 
      6
      
            }
          ]
        },
        "systemd": {
          "units": [ 
      7
      
            {
              "contents": "[Unit]\nBefore=local-fs.target\n[Mount]\nWhere=/var\nWhat=/dev/disk/by-partlabel/var\nOptions=defaults,pquota\n[Install]\nWantedBy=local-fs.target\n",
              "enabled": true,
              "name": "var.mount"
            }
          ]
        }
      }
      1
      AWS 블록 장치의 절대 경로를 지정합니다.
      2
      데이터 파티션의 크기(MB)를 지정합니다.
      3
      메비 바이트 단위의 파티션 시작을 지정합니다. 데이터 파티션을 부트 디스크에 추가할 때 최소 25000MB(메비 바이트)가 권장됩니다. 루트 파일 시스템은 지정된 오프셋까지 사용 가능한 모든 공간을 채우기 위해 자동으로 크기가 조정됩니다. 값이 지정되지 않거나 지정된 값이 권장 최소값보다 작으면 생성되는 루트 파일 시스템의 크기가 너무 작아지고 RHCOS를 나중에 다시 설치할 때 데이터 파티션의 첫 번째 부분을 덮어 쓸 수 있습니다.
      4
      /var 파티션의 절대 경로를 지정합니다.
      5
      파일 시스템 형식을 지정합니다.
      6
      루트 파일 시스템이 마운트될 위치와 관련하여 Ignition이 실행되는 동안 파일 시스템의 마운트 지점을 지정합니다. 이는 실제 루트에 마운트되어야 하는 위치와 반드시 동일하지는 않지만 이를 동일하게 만드는 것이 좋습니다.
      7
      /dev/disk/by-partlabel/var 장치를 /var 파티션에 마운트하는 systemd 마운트 장치를 정의합니다.
    3. work-user-data 시크릿에서 disableTemplating 섹션을 텍스트 파일로 추출합니다.

      $ oc get secret worker-user-data --template='{{index .data.disableTemplating | base64decode}}' | jq > disableTemplating.txt
    4. 두 개의 텍스트 파일에서 새 사용자 데이터 시크릿 파일을 생성합니다. 이 사용자 데이터 시크릿은 userData.txt 파일의 추가 노드 파티션 정보를 새로 생성된 노드에 전달합니다.

      $ oc create secret generic worker-user-data-x5 --from-file=userData=userData.txt --from-file=disableTemplating=disableTemplating.txt
  3. 새 노드의 새 컴퓨팅 머신 세트를 생성합니다.

    1. AWS에 대해 구성된 다음과 유사한 새 컴퓨팅 머신 세트 YAML 파일을 생성합니다. 필요한 파티션과 새로 생성된 사용자 데이터 시크릿을 추가합니다.

      작은 정보

      기존 컴퓨팅 머신 세트를 템플릿으로 사용하고 새 노드에 필요한 대로 매개변수를 변경합니다.

      apiVersion: machine.openshift.io/v1beta1
      kind: MachineSet
      metadata:
        labels:
          machine.openshift.io/cluster-api-cluster: auto-52-92tf4
        name: worker-us-east-2-nvme1n1 
      1
      
        namespace: openshift-machine-api
      spec:
        replicas: 1
        selector:
          matchLabels:
            machine.openshift.io/cluster-api-cluster: auto-52-92tf4
            machine.openshift.io/cluster-api-machineset: auto-52-92tf4-worker-us-east-2b
        template:
          metadata:
            labels:
              machine.openshift.io/cluster-api-cluster: auto-52-92tf4
              machine.openshift.io/cluster-api-machine-role: worker
              machine.openshift.io/cluster-api-machine-type: worker
              machine.openshift.io/cluster-api-machineset: auto-52-92tf4-worker-us-east-2b
          spec:
            metadata: {}
            providerSpec:
              value:
                ami:
                  id: ami-0c2dbd95931a
                apiVersion: awsproviderconfig.openshift.io/v1beta1
                blockDevices:
                - DeviceName: /dev/nvme1n1 
      2
      
                  ebs:
                    encrypted: true
                    iops: 0
                    volumeSize: 120
                    volumeType: gp2
                - DeviceName: /dev/nvme1n2 
      3
      
                  ebs:
                    encrypted: true
                    iops: 0
                    volumeSize: 50
                    volumeType: gp2
                credentialsSecret:
                  name: aws-cloud-credentials
                deviceIndex: 0
                iamInstanceProfile:
                  id: auto-52-92tf4-worker-profile
                instanceType: m6i.large
                kind: AWSMachineProviderConfig
                metadata:
                  creationTimestamp: null
                placement:
                  availabilityZone: us-east-2b
                  region: us-east-2
                securityGroups:
                - filters:
                  - name: tag:Name
                    values:
                    - auto-52-92tf4-worker-sg
                subnet:
                  id: subnet-07a90e5db1
                tags:
                - name: kubernetes.io/cluster/auto-52-92tf4
                  value: owned
                userDataSecret:
                  name: worker-user-data-x5 
      4
      1
      새 노드의 이름을 지정합니다.
      2
      AWS 블록 장치의 절대 경로를 지정합니다. 여기서는 암호화된 EBS 볼륨입니다.
      3
      선택 사항: 추가 EBS 볼륨을 지정합니다.
      4
      사용자 데이터 시크릿 파일을 지정합니다.
    2. 컴퓨팅 머신 세트를 생성합니다.

      $ oc create -f <file-name>.yaml

      시스템을 사용할 수 있게 되는 데 몇 분 정도 걸릴 수 있습니다.

  4. 새 파티션과 노드가 생성되었는지 확인합니다.

    1. 컴퓨팅 머신 세트가 생성되었는지 확인합니다.

      $ oc get machineset

      출력 예

      NAME                                               DESIRED   CURRENT   READY   AVAILABLE   AGE
      ci-ln-2675bt2-76ef8-bdgsc-worker-us-east-1a        1         1         1       1           124m
      ci-ln-2675bt2-76ef8-bdgsc-worker-us-east-1b        2         2         2       2           124m
      worker-us-east-2-nvme1n1                           1         1         1       1           2m35s 
      1

      1
      이는 새로운 컴퓨팅 시스템 세트입니다.
    2. 새 노드가 생성되었는지 확인합니다.

      $ oc get nodes

      출력 예

      NAME                           STATUS   ROLES    AGE     VERSION
      ip-10-0-128-78.ec2.internal    Ready    worker   117m    v1.26.0
      ip-10-0-146-113.ec2.internal   Ready    master   127m    v1.26.0
      ip-10-0-153-35.ec2.internal    Ready    worker   118m    v1.26.0
      ip-10-0-176-58.ec2.internal    Ready    master   126m    v1.26.0
      ip-10-0-217-135.ec2.internal   Ready    worker   2m57s   v1.26.0 
      1
      
      ip-10-0-225-248.ec2.internal   Ready    master   127m    v1.26.0
      ip-10-0-245-59.ec2.internal    Ready    worker   116m    v1.26.0

      1
      이는 새 노드입니다.
    3. 사용자 지정 /var 파티션이 새 노드에 생성되었는지 확인합니다.

      $ oc debug node/<node-name> -- chroot /host lsblk

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

      $ oc debug node/ip-10-0-217-135.ec2.internal -- chroot /host lsblk

      출력 예

      NAME        MAJ:MIN  RM  SIZE RO TYPE MOUNTPOINT
      nvme0n1     202:0    0   120G  0 disk
      |-nvme0n1p1 202:1    0     1M  0 part
      |-nvme0n1p2 202:2    0   127M  0 part
      |-nvme0n1p3 202:3    0   384M  0 part /boot
      `-nvme0n1p4 202:4    0 119.5G  0 part /sysroot
      nvme1n1     202:16   0    50G  0 disk
      `-nvme1n1p1 202:17   0  48.8G  0 part /var 
      1

      1
      nvme1n1 장치는 /var 파티션에 마운트됩니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동