1.4.15. Kubernetes 매니페스트 및 Ignition 구성 파일 생성

일부 클러스터 정의 파일을 수정하고 클러스터 시스템을 수동으로 시작해야 하므로 클러스터가 시스템을 생성하는 데 필요한 Kubernetes 매니페스트 및 Ignition 구성 파일을 사용자가 생성해야 합니다.

설치 구성 파일은 Kubernetes 매니페스트로 변환됩니다. 매니페스트는 나중에 클러스터를 생성하는 데 사용되는 Ignition 구성 파일로 래핑됩니다.

중요
  • 설치 프로그램에서 생성하는 Ignition 구성 파일에 24시간 후에 만료되는 인증서가 포함되어 있습니다. 이 인증서는 그 후에 갱신됩니다. 인증서를 갱신하기 전에 클러스터가 종료되고 24시간이 지난 후에 클러스터가 다시 시작되면 클러스터는 만료된 인증서를 자동으로 복구합니다. 예외적으로 kubelet 인증서를 복구하려면 대기 중인 node-bootstrapper 인증서 서명 요청(CSR)을 수동으로 승인해야 합니다. 자세한 내용은 Recovering from expired control plane certificates 문서를 참조하십시오.
  • 클러스터를 설치한 후 24시간에서 22시간까지의 인증서가 교체되기 때문에 생성된 후 12시간 이내에 Ignition 구성 파일을 사용하는 것이 좋습니다. 12시간 이내에 Ignition 구성 파일을 사용하면 설치 중에 인증서 업데이트가 실행되는 경우 설치 실패를 방지할 수 있습니다.

사전 요구 사항

  • OpenShift Container Platform 설치 프로그램을 가져오셨습니다.
  • install-config.yaml 설치 구성 파일을 생성하셨습니다.

프로세스

  1. 설치 프로그램이 포함된 디렉터리로 변경하고 클러스터에 대한 Kubernetes 매니페스트를 생성합니다.

    $ ./openshift-install create manifests --dir <installation_directory> 1
    1
    <installation_directory>는 사용자가 만든 install-config.yaml 파일이 포함된 설치 디렉터리를 지정합니다.
  2. 컨트롤 플레인 시스템 및 컴퓨팅 머신 세트를 정의하는 Kubernetes 매니페스트 파일을 제거합니다.

    $ rm -f openshift/99_openshift-cluster-api_master-machines-*.yaml openshift/99_openshift-cluster-api_worker-machineset-*.yaml

    이러한 리소스는 사용자가 직접 생성하고 관리하기 때문에 초기화할 필요가 없습니다.

    • 시스템 API로 머신 세트 파일을 보존하여 컴퓨팅 시스템을 생성할 수 있지만 사용자 환경과 일치하도록 해당 참조를 업데이트해야 합니다.
  3. <installation_directory>/manifests/cluster-scheduler-02-config.yml Kubernetes 매니페스트 파일의 mastersSchedulable 매개변수가 false로 설정되어 있는지 확인합니다. 이 설정으로 인해 컨트롤 플레인 머신에서 포드가 예약되지 않습니다.

    1. <installation_directory>/manifests/cluster-scheduler-02-config.yml 파일을 엽니다.
    2. mastersSchedulable 매개변수를 찾아서 값을 False로 설정되어 있는지 확인합니다.
    3. 파일을 저장하고 종료합니다.
  4. Ignition 구성 파일을 생성하려면 설치 프로그램이 포함된 디렉터리에서 다음 명령을 실행합니다.

    $ ./openshift-install create ignition-configs --dir <installation_directory> 1
    1
    <installation_directory>는 동일한 설치 디렉터리를 지정합니다.

    다음 파일이 디렉터리에 생성됩니다.

    .
    ├── auth
    │   ├── kubeadmin-password
    │   └── kubeconfig
    ├── bootstrap.ign
    ├── master.ign
    ├── metadata.json
    └── worker.ign
  5. 메타데이터 파일의 infraID 키를 환경 변수로 내보냅니다.

    $ export INFRA_ID=$(jq -r .infraID metadata.json)
작은 정보

metadata.json에서 infraID 키를 추출하여 사용자가 생성하는 모든 RHOSP 리소스의 접두사로 사용합니다. 이렇게 하면 동일한 프로젝트에서 여러 배포를 수행할 때 이름 충돌을 방지할 수 있습니다.