4.12. RHCOS 설치 및 OpenShift Container Platform 부트스트랩 프로세스 시작
프로비저닝하는 IBM Z® 인프라에 OpenShift Container Platform을 설치하려면 RHCOS(Red Hat Enterprise Linux CoreOS)를 RHEL(Red Hat Enterprise Linux) 게스트 가상 머신으로 설치해야 합니다. RHCOS를 설치할 때 설치 중인 머신 유형에 대해 OpenShift Container Platform 설치 프로그램에서 생성한 Ignition 구성 파일을 제공해야 합니다. 적합한 네트워킹, DNS 및 로드 밸런싱 인프라를 구성한 경우 RHCOS 머신이 재부팅된 후 OpenShift Container Platform 부트스트랩 프로세스가 자동으로 시작됩니다.
사전 패키징된 QEMU COW2(QCOW2) 디스크 이미지를 사용하는 RHCOS의 빠른 트랙 설치를 수행할 수 있습니다. 또는 새 QCOW2 디스크 이미지에서 전체 설치를 수행할 수도 있습니다.
시스템에 보안을 추가하려면 빠른 설치를 진행하기 전에 IBM® Secure Execution를 사용하여 RHCOS를 설치할 수 있습니다.
4.12.1. IBM Secure Execution를 사용하여 RHCOS 설치 링크 복사링크가 클립보드에 복사되었습니다!
IBM® Secure Execution를 사용하여 RHCOS를 설치하기 전에 기본 인프라를 준비해야 합니다.
사전 요구 사항
- IBM® z15 이상 또는 IBM® LinuxONE III 이상
- RHEL(Red Hat Enterprise Linux) 8 이상.
- 부트스트랩 Ignition 파일이 있습니다. 파일이 보호되지 않아 다른 사용자가 보고 편집할 수 있습니다.
- 설치 후 부팅 이미지가 변경되지 않았는지 확인했습니다.
- 모든 노드를 IBM® 보안 실행 게스트로 실행해야 합니다.
프로세스
IBM® Secure Execution를 지원할 RHEL KVM 호스트를 준비합니다.
기본적으로 KVM 호스트는 IBM® Secure Execution 모드에서 게스트를 지원하지 않습니다. IBM® 보안 실행 모드에서 게스트를 지원하려면 KVM 호스트는 커널 매개변수 사양
prot_virt=1을 사용하여 LPAR 모드에서 부팅해야 합니다. RHEL 8에서prot_virt=1을 활성화하려면 다음 단계를 따르십시오.-
/boot/loader/entries/로 이동하여 부트로더 구성 파일*.conf를 수정합니다. -
커널 명령줄 매개변수
prot_virt=1을 추가합니다. zipl명령을 실행하고 시스템을 재부팅합니다.IBM® Secure Execution for Linux에서 성공적으로 지원하는 KVM 호스트는 다음 커널 메시지를 발행합니다.
prot_virt: Reserving <amount>MB as ultravisor base storage.KVM 호스트가 IBM® 보안 실행을 지원하는지 확인하려면 다음 명령을 실행합니다.
# cat /sys/firmware/uv/prot_virt_host출력 예
1이 속성의 값은 보안 호스트의 값과 일치하는 환경을 감지하는 Linux 인스턴스의 경우 1입니다. 다른 인스턴스의 경우 값은 0입니다.
-
Ignition을 통해 KVM 게스트에 호스트 키를 추가합니다.
첫 번째 부팅 중에 RHCOS는 호스트 키를 찾아 다시 암호화합니다. RHCOS는
/etc/se-hostkeys디렉토리에서ibm-z-hostkey-로 시작하는 파일을 검색합니다. 클러스터가 실행 중인 각 시스템의 모든 호스트 키는 관리자가 디렉터리에 로드해야 합니다. 처음 부팅한 후에는 다른 머신에서 VM을 실행할 수 없습니다.참고안전한 시스템에서 Ignition 파일을 준비해야 합니다. 예를 들어 다른 IBM® Secure Execution 게스트가 있습니다.
예를 들면 다음과 같습니다.
{ "ignition": { "version": "3.0.0" }, "storage": { "files": [ { "path": "/etc/se-hostkeys/ibm-z-hostkey-<your-hostkey>.crt", "contents": { "source": "data:;base64,<base64 encoded hostkey document>" }, "mode": 420 }, { "path": "/etc/se-hostkeys/ibm-z-hostkey-<your-hostkey>.crt", "contents": { "source": "data:;base64,<base64 encoded hostkey document>" }, "mode": 420 } ] } } ```참고노드가 여러 IBM Z® 시스템에서 실행할 수 있도록 하려면 필요한 만큼 호스트 키를 추가할 수 있습니다.
Base64로 인코딩된 문자열을 생성하려면 다음 명령을 실행합니다.
base64 <your-hostkey>.crtIBM® Secure Execution를 실행하지 않는 게스트와 비교하여 전체 이미지가 Ignition 단계 전에 무작위로 생성된 LUKS 암호로 암호화되므로 시스템의 첫 번째 부팅 시간이 길어집니다.
Ignition 보호 추가
Ignition 구성 파일에 저장된 시크릿을 읽거나 수정하지 못하도록 보호하려면 Ignition 구성 파일을 암호화해야 합니다.
참고원하는 보안을 위해 IBM® Secure Execution를 실행할 때 기본적으로 Ignition 로깅 및 로컬 로그인이 비활성화됩니다.
secex-qemu.qcow2이미지에 대한 공개 GPG 키를 가져오고 다음 명령을 실행하여 키를 사용하여 Ignition 구성을 암호화합니다.gpg --recipient-file /path/to/ignition.gpg.pub --yes --output /path/to/config.ign.gpg --verbose --armor --encrypt /path/to/config.ign
IBM® Secure Execution QCOW 이미지를 사용하여 노드를 설치하려면 RHCOS의 빠른 설치를 따르십시오.
참고VM을 시작하기 전에
serial=ignition을serial=ignition_crypted로 교체하고launchSecurity매개변수를 추가합니다.
검증
RHCOS 및 Ignition의 빠른 설치를 완료하면 첫 번째 부팅 시 실행되는 경우 암호 해독에 성공했는지 확인합니다.
암호 해독에 성공하면 다음 예와 유사한 출력을 기대할 수 있습니다.
출력 예
[ 2.801433] systemd[1]: Starting coreos-ignition-setup-user.service - CoreOS Ignition User Config Setup... [ 2.803959] coreos-secex-ignition-decrypt[731]: gpg: key <key_name>: public key "Secure Execution (secex) 38.20230323.dev.0" imported [ 2.808874] coreos-secex-ignition-decrypt[740]: gpg: encrypted with rsa4096 key, ID <key_name>, created <yyyy-mm-dd> [ OK ] Finished coreos-secex-igni…S Secex Ignition Config Decryptor.암호 해독에 실패하면 다음 예와 유사한 출력을 기대할 수 있습니다.
출력 예
Starting coreos-ignition-s…reOS Ignition User Config Setup... [ 2.863675] coreos-secex-ignition-decrypt[729]: gpg: key <key_name>: public key "Secure Execution (secex) 38.20230323.dev.0" imported [ 2.869178] coreos-secex-ignition-decrypt[738]: gpg: encrypted with RSA key, ID <key_name> [ 2.870347] coreos-secex-ignition-decrypt[738]: gpg: public key decryption failed: No secret key [ 2.870371] coreos-secex-ignition-decrypt[738]: gpg: decryption failed: No secret key