| OCP (Red Hat OpenShift Container Platform) | OKD | |
|---|---|---|
| 성격 | 상용 제품 | 커뮤니티 배포판 |
| 기본 노드 OS | RHCOS | Fedora CoreOS (SCOS 기반 빌드도 있다) |
| 지원 | Red Hat 정식 지원 | 커뮤니티 |
| 서브스크립션 | 필요 | 불필요 |
| 이미지 저장소 | registry.redhat.io — 풀 시크릿 필요 |
공개 quay.io |
| 릴리스 주기 | 안정적, 장기 지원 계열 존재 | 상류를 빠르게 따라간다 |
OKD 는 OCP 의 상류다. 기능은 대부분 같지만, 수명 주기가 짧고 업그레이드 부담이 크다. Fedora CoreOS 자체가 빠르게 올라가기 때문이다. 학습·검증에는 적합하고, 장기 운영 클러스터에는 각오가 필요하다.
둘 다 불변(immutable) OS 다. 패키지를 개별로 설치하지 않고 이미지 단위로 갱신하며, /usr 는 읽기 전용이다.
| RHCOS | Fedora CoreOS | |
|---|---|---|
| 기반 | RHEL | Fedora |
| 갱신 | OpenShift 의 Machine Config Operator 가 관리 | 자체 자동 갱신 (Zincati) |
| 독립 사용 | 하지 않는다. OpenShift 전용 | 독립적으로 쓸 수 있다 |
| 수명 | OCP 릴리스에 묶인다 | Fedora 주기를 따른다 |
RHCOS 는 단독 OS 로 쓰는 물건이 아니다. 노드 설정은 MachineConfig 리소스로 관리하고, SSH 로 들어가 손으로 고친 것은 다음 갱신에 되돌아간다.
컨트롤 플레인은 반드시 RHCOS 다. 예외가 없다.
워커 노드는 예전에 RHEL 을 쓸 수 있었지만, OCP 4.14 를 마지막으로 RHEL 워커 노드 지원이 종료됐다. 지금은 워커도 RHCOS 를 쓴다. 기존 RHEL 워커가 있는 클러스터는 업그레이드 전에 RHCOS 로 교체해야 한다.
CentOS 나 다른 배포판은 어느 역할로도 지원되지 않는다.
베어메탈 UPI(User Provisioned Infrastructure) 설치에서 부트스트랩 노드는 설치 중에만 존재한다. 임시 컨트롤 플레인을 띄워 진짜 컨트롤 플레인이 올라오도록 돕고, 역할이 끝나면 클러스터에서 빠진다.
설치가 끝나면 이렇게 확인하고 정리한다.
openshift-install wait-for bootstrap-complete --dir=<install-dir> --log-level=info
이 명령이 "It is now safe to remove the bootstrap resources" 를 찍으면 부트스트랩 머신을 내리고, 로드밸런서 설정에서도 부트스트랩 대상을 뺀다.
가능하다. 재설치하는 것이지 역할을 바꾸는 것이 아니다.
oc get csr
oc get csr -o name | xargs oc adm certificate approve
oc get nodes
부트스트랩 상태의 디스크를 그대로 두고 워커로 편입시키려 하지 않는다. 남은 부트스트랩 구성이 충돌한다.
둘은 역할이 다르다. bastion 은 설치 도구·웹 서버·DNS·로드밸런서를 올려 두는 관리 장비이고, bootstrap 은 클러스터 구성원이다. 물리적으로 한 대에 몰 수는 있지만 권하지 않는다.
bastion 은 별도로 두고 설치 내내 유지한다.
RHCOS · FCOS 는 첫 부팅 때 Ignition 설정을 읽어 디스크 분할, 사용자, 네트워크, systemd 유닛을 구성한다. install-config.yaml 에서 만든다.
mkdir -p <install-dir>
cp install-config.yaml <install-dir>/
openshift-install create manifests --dir=<install-dir>
openshift-install create ignition-configs --dir=<install-dir>
결과물은 bootstrap.ign · master.ign · worker.ign 이다.
create manifests 와 create ignition-configs 는 install-config.yaml 을 소비한다. 원본이 사라지므로 반드시 복사본을 따로 둔다.
Ignition 설정에는 만료가 있다. 부트스트랩 Ignition 에 들어가는 인증서의 유효 기간이 짧아(기본 24시간), 만든 지 오래된 파일로 설치하면 인증 오류로 실패한다. 설치가 지연됐다면 다시 만든다.
bootstrap.ign 에는 풀 시크릿이 들어 있다. 웹 서버로 배포할 때 접근을 제한하고, 설치가 끝나면 치운다.
기본 비밀번호는 없다. RHCOS 의 core 사용자는 비밀번호 로그인이 막혀 있고, SSH 공개 키로만 들어간다. 그 키는 install-config.yaml 의 sshKey 에 넣은 것이다.
ssh core@<node-ip>
클러스터가 살아 있다면 oc 로 들어가는 편이 낫다. 노드에 SSH 를 열어 둘 필요가 없다.
oc debug node/<node-name>
chroot /host
install-config.yaml 에 키를 넣지 않았고 클러스터도 응답하지 않는다면, 콘솔에서 커널 인자를 고쳐 복구 모드로 들어가는 방법밖에 없다. 설치 전에 반드시 sshKey 를 넣어 둔다.
| 목적 | 방법 |
|---|---|
| 노트북에서 단일 노드 | OpenShift Local (구 CodeReady Containers). Red Hat 계정만 있으면 된다. 최소 4 CPU · 9GB 램, 실질적으로 16GB 권장 |
| 완전한 클러스터를 무료로 | OKD |
| 브라우저에서 바로 | Developer Sandbox |
| 상용 제품 평가 | OCP 평가판 서브스크립션 |
OCP 는 서브스크립션 없이 설치해도 registry.redhat.io 이미지를 받을 풀 시크릿이 없어 진행되지 않는다.