3.9.6.5. 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
설치 구성 파일을 생성하셨습니다.
절차
설치 프로그램이 포함된 디렉터리로 변경하고 클러스터에 대한 Kubernetes 매니페스트를 생성합니다.
$ ./openshift-install create manifests --dir <installation_directory> 1
- 1
<installation_directory>
는 사용자가 만든install-config.yaml
파일이 포함된 설치 디렉터리를 지정합니다.
컨트롤 플레인 시스템을 정의하는 Kubernetes 매니페스트 파일을 제거합니다.
$ rm -f <installation_directory>/openshift/99_openshift-cluster-api_master-machines-*.yaml
이러한 파일을 제거하면 클러스터가 컨트롤 플레인 시스템을 자동으로 생성하지 못합니다.
작업자 시스템을 정의하는 Kubernetes 매니페스트 파일을 제거합니다.
$ rm -f <installation_directory>/openshift/99_openshift-cluster-api_worker-machineset-*.yaml
작업자 시스템은 사용자가 직접 생성하고 관리하기 때문에 초기화할 필요가 없습니다.
<installation_directory>/manifests/cluster-scheduler-02-config.yml
Kubernetes 매니페스트 파일의mastersSchedulable
매개변수가false
로 설정되어 있는지 확인합니다. 이 설정으로 인해 컨트롤 플레인 머신에서 포드가 예약되지 않습니다.-
<installation_directory>/manifests/cluster-scheduler-02-config.yml
파일을 엽니다. -
mastersSchedulable
매개변수를 찾아서 값을False
로 설정되어 있는지 확인합니다. - 파일을 저장하고 종료합니다.
-
선택 사항: Ingress Operator 에서 사용자 대신 DNS 레코드를 생성하지 않으려면
<installation_directory>/manifests/cluster-dns-02-config.yml DNS 구성 파일에서
privateZone
및 publicZone
섹션을 제거합니다.apiVersion: config.openshift.io/v1 kind: DNS metadata: creationTimestamp: null name: cluster spec: baseDomain: example.openshift.com privateZone: 1 id: mycluster-100419-private-zone publicZone: 2 id: example.openshift.com status: {}
제거한 경우 나중에 인그레스 DNS 레코드를 수동으로 추가해야 합니다.
사용자 프로비저닝 인프라에서 Azure를 구성할 때, ARM(Azure Resource Manager) 템플릿에서 나중에 사용할 수 있도록 매니페스트 파일에 정의된 일부 공통 변수를 내보내야 합니다.
다음 명령을 사용하여 인프라 ID를 내보냅니다.
$ export INFRA_ID=<infra_id> 1
- 1
- OpenShift Container Platform 클러스터에
<cluster_name>-<random_string>
형식으로 식별자(INFRA_ID
)가 할당되었습니다. 제공된 ARM 템플릿을 사용해서 생성된 대부분의 리소스에 대해 기본 이름으로 사용됩니다.manifests/cluster-infrastructure-02-config.yml
파일의.status.infrastructureName
속성 값입니다.
다음 명령을 사용하여 리소스 그룹을 내보냅니다:
$ export RESOURCE_GROUP=<resource_group> 1
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