Kubernetesディストリビューション — 自分で立てる
クイズ: Talos Linux
한국어 원문으로 표시합니다.
Talos 노드에서 kubelet 로그를 보고 싶다. 이 실습 환경에서 실제로 되는 방법은?
- 노드 IP 의 22번으로 SSH 접속해 journalctl 로 kubelet 유닛 로그를 본다
- talosctl -n <노드 IP> logs kubelet 으로 apid 를 거쳐 로그를 받는다
- docker exec 로 노드 컨테이너의 sh 에 들어가 /var/log 를 읽는다
- talosctl dmesg 를 grep 하면 kubelet 표준 출력이 커널 로그로 모두 모인다
워커에 talosctl patch mc --mode=try --timeout=30s 로 라벨을 붙이고 아무것도 하지 않았다. 30초 뒤의 상태로 맞는 것은?
- 라벨은 그대로 남고, try 는 적용 결과를 30초 동안 감시하기만 한다
- 노드가 재부팅되면서 staged 된 이전 설정으로 돌아간다
- 라벨이 빠지고, 되돌리기도 설정 변경이라 MachineConfig version 이 한 번 더 오른다
- 라벨이 빠지고 version 도 적용 전 숫자로 되감긴다
kubelet extraArgs 에 오타 난 플래그를 넣은 패치가 'Applied configuration without a reboot' 로 받아들여졌는데 노드가 NotReady 가 됐다. 이 현상에 대한 설명으로 맞는 것은?
- 머신 설정 검증은 문서 형식을 볼 뿐, kubelet 이 그 플래그를 아는지는 실행해 봐야 드러난다
- no-reboot 모드라서 검증을 건너뛰었고, auto 모드였다면 적용 전에 거절됐다
- extraArgs 는 재부팅이 필요한 필드라 반쯤만 적용되어 kubelet 이 멈췄다
- 검증은 통과했지만 워커는 컨트롤 플레인에 설정을 되물어 서로 달라져 멈춘 것이다
이 VM(호스트 클러스터 파드 10.244.0.0/16, 서비스 10.96.0.0/12) 안에서 talosctl cluster create 를 기본값으로 쓰면 무엇이 문제인가?
- 도커 네트워크 기본 대역 10.5.0.0/24 가 호스트 서비스 대역 안에 들어가 노드끼리 통신하지 못한다
- Talos 는 파드 대역을 스스로 비어 있는 곳으로 고르므로 기본값으로도 문제가 없다
- 기본 파드·서비스 대역이 10.244.0.0/16·10.96.0.0/12 라 VM 주소·DNS 와 겹친다
- 기본값은 IPv6 전용 대역이라 IPv4 뿐인 VM 에서는 파드가 주소를 받지 못한다
podSubnets 를 바꾸는 strategic merge 패치를 넣었다. Talos 문서의 병합 규칙에 따른 결과는?
- 목록은 항상 덧붙으므로 기존 10.244.0.0/16 뒤에 새 대역이 추가된다
- 목록 필드는 패치로 바꿀 수 없어 JSON6902 replace 만 받아들여진다
- 새 대역과 기존 대역 중 더 좁은 쪽 하나만 남도록 합쳐진다
- cluster.network.podSubnets 는 예외라서 패치 값으로 덮어써진다
Talos 가 셸과 SSH 를 없앤 설계가 운영에 주는 대가로 가장 알맞은 것은?
- 기록 없는 수작업은 막히지만, apid 경로와 talosconfig 인증서를 잃으면 고칠 방법이 없다
- 쿠버네티스 이외의 워크로드를 파드로도 돌릴 수 없어 데몬셋 모니터링 에이전트를 쓸 수 없다
- 루트 파일 시스템이 읽기 전용이라 컨테이너 이미지를 받을 공간이 없어 모든 이미지를 OS 에 미리 넣어야 한다
- 설정 변경마다 노드를 재부팅해야 해서 라벨 하나를 바꾸는 데도 워크로드가 옮겨진다