준비
- 클라이언트(예 : bastion)에서 oc 설치
- API에 로그인
oc login https://api.<<cluster-domain>:6443 --username <id> --password <pw>
#또는 KUBECONFIG 사용
- 작업 프로젝트(네임스페이스) 선택/ 생성:
oc new-project demo # 없으면 생성
oc project demo # 있으면 선택
1) 명령 전송(예 : 매니페스트 적용)
oc apply -f pod.yaml
# 또는
oc run hello --inage=registry.access.redhat.com/ubi9/ubi -- /bin/sleep 3600
- oc는 API Server에 HTTPS 요청을 보낸다.
- API Server는 RBAC(권한), SCC(OpenShift 고유 보안 맥락), Quota/LimitRange, admission Webhook 등을 거쳐 유효성 검증을 한다.
- 통과하면 etcd에 오브젝트(여기선 Pod/Deplotment 등)에 저장.
2) 컨트롤 플레인 동작
- Controller Manager
- Deployment면 ReplicaSet 생성 → Pod 스펙 보장.
- Scheduler
- 아직 노드가 정해지지 않은 Pod를 보고, 리소스/어피니티/톨러레이션 등을 계산해 특정 워커 노드에 배치
- 배치 결과가 eetcd에 반영된다.
3) 노드(워커)에서의 실행
- 해당 노드의 kubelet이 내게 스케줄 된 새 Pod를 감지
- CRI-O(openshift의 기본 컨테이너 런타임)가
- 이미지 풀(레지스트리 인증 필요 시 imagePullSecret 사용)
- 컨테이너 파일시스템 준비
- 컨테이너 생성/시작