LabHub
배우기 러닝패스 코스

쿠버네티스 배포판 — 직접 세운다 · k0s 구성과 동적 구성 · 실습

k0s.yaml 을 고치고 재시작까지 했는데 아무 일도 없었다

LabHub 에서 이어서 보기

이 실습은 진짜 k0s 에서 돕니다

VM 안에 k0s v1.36.4+k0s.0 한 대(컨트롤러 겸 워커)가 정적 구성으로 떠 있습니다. 설정 파일은 /etc/k0s/k0s.yaml, 작업 디렉터리는 /root/k0scfg 입니다. 처음 뜨는 데 3분 안팎이 걸립니다. 실습 중에 k0s 를 세 번 재시작합니다.

목표

k0s 설정이 어디서 오는지를 모드별로 확인합니다. 정적 구성에서는 파일 변경이 재시작해야 반영되고, 동적 구성에서는 파일 대신 ClusterConfig 오브젝트가 반영된다는 것을 워커 프로필 ConfigMap 으로 보여 줍니다. 헬름 확장을 선언하고 지워서 Chart 오브젝트와 릴리스가 어떻게 따라가는지 기록합니다.

왜 중요한가

k0s 는 파일 하나로 설정한다고 알려져 있어, 동적 구성을 켠 클러스터에서도 사람들이 파일을 고칩니다. 그러면 재시작까지 해도 아무것도 바뀌지 않고, 오류도 나지 않습니다. 반대로 정적 구성에서는 파일을 고친 노드가 재시작되는 날 갑자기 설정이 바뀝니다. 두 경우 모두 "명령이 성공했다" 가 아니라 실제로 무엇이 생겼는지를 봐야 알 수 있습니다.

단계

1. 기본값과 이 VM 의 설정을 비교해 /root/k0scfg/defaults.yaml/root/k0scfg/defaults.json 에 저장하세요.
2. k0s sysinfo 결과를 /root/k0scfg/sysinfo.json/root/k0scfg/sysinfo-summary.txt 로 남기세요.
3. 정적 구성에서 파일에 워커 프로필 edge-small 을 넣고, 재시작 없이 반영되지 않는 것을 /root/k0scfg/static-edit.json 에 기록하세요.
4. k0s 를 재시작해 프로필 ConfigMap 이 생기는 것을 /root/k0scfg/static-restart.json 에 기록하세요.
5. 동적 구성으로 바꾸고 ClusterConfig 오브젝트를 /root/k0scfg/dynamic.json 에 기록하세요.
6. 동적 구성에서 파일에 프로필 from-file 을 넣고 재시작한 결과를 /root/k0scfg/file-ignored.json 에 기록하세요.
7. ClusterConfig 에 프로필 from-api 를 더해 재시작 없이 반영되는 것을 /root/k0scfg/api-patch.json 에 기록하세요.
8. ClusterConfig 에 podinfo 차트를 선언하고 /root/k0scfg/helm.json 을 쓰세요.
9. 차트 선언을 지운 결과를 /root/k0scfg/removal.json 에, 정리를 /root/k0scfg/report.md 에 쓰세요.

참고

단계 9개

  1. 적지 않은 값은 무엇이 되나
  2. 설치 전 점검을 읽는다
  3. 파일을 고쳤는데 아무 일도 없다
  4. 재시작하자 생겼다
  5. 진실의 원천을 API 로 옮긴다
  6. 이번에는 재시작해도 무시된다
  7. 오브젝트를 고치면 바로 반영된다
  8. 선언한 차트가 Chart 오브젝트가 된다
  9. 선언을 지우면 무엇이 남나