13.6. GitOps ZTP를 사용하여 단일 노드 OpenShift 클러스터에 작업자 노드 추가


기존 단일 노드 OpenShift 클러스터에 하나 이상의 작업자 노드를 추가하여 클러스터에서 사용 가능한 CPU 리소스를 늘릴 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform 4.11 이상 베어 메탈 허브 클러스터에서 RHACM 2.6 이상을 설치하고 구성
  • 허브 클러스터에 토폴로지 Aware Lifecycle Manager 설치
  • hub 클러스터에 Red Hat OpenShift GitOps 설치
  • GitOps ZTP ztp-site-generate 컨테이너 이미지 버전 4.12 이상 사용
  • GitOps ZTP를 사용하여 관리형 단일 노드 OpenShift 클러스터 배포
  • RHACM 설명서에 설명된 대로 중앙 인프라 관리 구성
  • 내부 API 끝점 api-int.<cluster_name>.<base_domain>을 확인하도록 클러스터를 제공하는 DNS를 구성합니다.

프로세스

  1. example-sno.yaml SiteConfig 매니페스트를 사용하여 클러스터를 배포한 경우 새 작업자 노드를 spec.clusters['example-sno'].nodes 목록에 추가합니다.

    nodes:
    - hostName: "example-node2.example.com"
      role: "worker"
      bmcAddress: "idrac-virtualmedia+https://[1111:2222:3333:4444::bbbb:1]/redfish/v1/Systems/System.Embedded.1"
      bmcCredentialsName:
        name: "example-node2-bmh-secret"
      bootMACAddress: "AA:BB:CC:DD:EE:11"
      bootMode: "UEFI"
      nodeNetwork:
        interfaces:
          - name: eno1
            macAddress: "AA:BB:CC:DD:EE:11"
        config:
          interfaces:
            - name: eno1
              type: ethernet
              state: up
              macAddress: "AA:BB:CC:DD:EE:11"
              ipv4:
                enabled: false
              ipv6:
                enabled: true
                address:
                - ip: 1111:2222:3333:4444::1
                  prefix-length: 64
          dns-resolver:
            config:
              search:
              - example.com
              server:
              - 1111:2222:3333:4444::2
          routes:
            config:
            - destination: ::/0
              next-hop-interface: eno1
              next-hop-address: 1111:2222:3333:4444::1
              table-id: 254
  2. SiteConfig 파일의 spec.nodes 섹션에 있는 bmcCredentialsName 필드에서 참조하는 새 호스트의 BMC 인증 시크릿을 생성합니다.

    apiVersion: v1
    data:
      password: "password"
      username: "username"
    kind: Secret
    metadata:
      name: "example-node2-bmh-secret"
      namespace: example-sno
    type: Opaque
  3. Git의 변경 사항을 커밋한 다음 GitOps ZTP ArgoCD 애플리케이션에서 모니터링하는 Git 리포지토리로 내보냅니다.

    ArgoCD 클러스터 애플리케이션이 동기화되면 GitOps ZTP 플러그인에서 생성한 허브 클러스터에 두 개의 새 매니페스트가 표시됩니다.

    • BareMetalHost
    • NMStateConfig

      중요

      작업자 노드에 대해 cpuset 필드를 구성해서는 안 됩니다. 노드 설치가 완료된 후 작업자 노드의 워크로드 파티셔닝이 관리 정책을 통해 추가됩니다.

검증

설치 프로세스를 여러 가지 방법으로 모니터링할 수 있습니다.

  • 다음 명령을 실행하여 사전 프로비저닝 이미지가 생성되었는지 확인합니다.

    $ oc get ppimg -n example-sno

    출력 예

    NAMESPACE       NAME            READY   REASON
    example-sno     example-sno     True    ImageCreated
    example-sno     example-node2   True    ImageCreated

  • 베어 메탈 호스트의 상태를 확인합니다.

    $ oc get bmh -n example-sno

    출력 예

    NAME            STATE          CONSUMER   ONLINE   ERROR   AGE
    example-sno     provisioned               true             69m
    example-node2   provisioning              true             4m50s 1

    1
    프로비저닝 상태는 설치 미디어에서 부팅하는 노드가 진행 중임을 나타냅니다.
  • 설치 프로세스를 지속적으로 모니터링합니다.

    1. 다음 명령을 실행하여 에이전트 설치 프로세스를 확인합니다.

      $ oc get agent -n example-sno --watch

      출력 예

      NAME                                   CLUSTER   APPROVED   ROLE     STAGE
      671bc05d-5358-8940-ec12-d9ad22804faa   example-sno   true       master   Done
      [...]
      14fd821b-a35d-9cba-7978-00ddf535ff37   example-sno   true       worker   Starting installation
      14fd821b-a35d-9cba-7978-00ddf535ff37   example-sno   true       worker   Installing
      14fd821b-a35d-9cba-7978-00ddf535ff37   example-sno   true       worker   Writing image to disk
      [...]
      14fd821b-a35d-9cba-7978-00ddf535ff37   example-sno   true       worker   Waiting for control plane
      [...]
      14fd821b-a35d-9cba-7978-00ddf535ff37   example-sno   true       worker   Rebooting
      14fd821b-a35d-9cba-7978-00ddf535ff37   example-sno   true       worker   Done

    2. 작업자 노드 설치가 완료되면 작업자 노드 인증서가 자동으로 승인됩니다. 이 시점에서 작업자는 ManagedClusterInfo 상태에 나타납니다. 다음 명령을 실행하여 상태를 확인합니다.

      $ oc get managedclusterinfo/example-sno -n example-sno -o \
      jsonpath='{range .status.nodeList[*]}{.name}{"\t"}{.conditions}{"\t"}{.labels}{"\n"}{end}'

      출력 예

      example-sno	[{"status":"True","type":"Ready"}]	{"node-role.kubernetes.io/master":"","node-role.kubernetes.io/worker":""}
      example-node2	[{"status":"True","type":"Ready"}]	{"node-role.kubernetes.io/worker":""}

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.