Explanationrke2spray

구조와 실행 모델

Kubespray 공개 경로와 변수가 RKE2 server·agent 실행 모델로 변환되는 구조

업데이트 검증 근거 자료이 페이지 편집

핵심 요약

  • 공통 Playbook·Role·Inventory 이름은 운영 의도의 호환성을 제공함
  • 실제 bootstrap은 kubeadm 대신 RKE2 server·agent와 bundled containerd를 사용함
  • 공개 Role은 native 동작, RKE2 adapter 또는 사전 검증 실패 중 하나를 수행함
  • embedded etcd가 기본이며 분리된 etcd group은 external datastore 경계를 뜻함
  • 같은 이름이 Kubespray task 본문과 결과 상태의 동일성을 보장하지 않음

유지되는 API와 교체되는 실행을 구분함

구분Kubespray와 같은 형태RKE2로 교체되는 의미
진입점root Playbook 이름Playbook 내부 lifecycle
역할공개 Role 경로와 tagkubeadm·kubelet task 구현
대상Inventory group 이름server·agent 역할 판정
설정kube_version, CNI 변수RKE2 config와 release lock
AddOnkubernetes-apps 경계RKE2 HelmChart 또는 manifest

저장소 경로가 책임을 나눔

경로책임
cluster.yml, scale.yml, upgrade-cluster.ymlKubespray 형태의 root API 제공
playbooks/RKE2 lifecycle 조정
roles/공개 Role과 RKE2 adapter 구현
inventory/sample/비밀정보 없는 재사용 예제 제공
extra_playbooks/health, snapshot, certificate와 AddOn 운영 제공
docs/kubespray-api-compatibility.ymlmapping과 예외의 canonical contract 제공
KUBESPRAY_BASELINE추적 중인 upstream commit 고정

실행은 검증 후 수렴함

  1. root Playbook이 대응하는 playbooks/ lifecycle을 호출함
  2. kubespray_defaults가 Kubespray 변수와 RKE2 확장 변수를 정규화함
  3. validate_inventory가 topology, version, runtime과 raw config 충돌을 검사함
  4. 공개 Role이 native task, adapter 또는 명시적 실패를 실행함
  5. lifecycle이 service, API와 Node Ready 상태를 확인함

공개 이름을 실행 의미로 해석함

  • kubernetes/kubeadm은 kubeadm 실행기가 아니라 RKE2 bootstrap adapter임
  • kubernetes/control-planerke2-server와 API readiness를 관리함
  • kubernetes/node는 RKE2 config와 agent lifecycle을 관리함
  • container-engine은 standalone runtime 설치가 아니라 bundled containerd 경계를 관리함
  • etcd는 topology에 따라 embedded 또는 external datastore를 선택함

결론

  • rke2spray를 Kubespray의 복제본이 아니라 공개 운영 형태를 RKE2로 번역하는 adapter로 봐야 함
  • 지원 여부는 Role 경로의 존재가 아니라 호환성 참조의 분류와 preflight 결과로 판단해야 함