
kubernetes에서 Pod에 대한 CPU 선호도를 설정하고 싶습니다. 그런데 해당 서류를 설정하는데 실패하고, 찾는데 애를 먹었습니다.
내가 이해하는 것:
- 기본적으로 k8s의 CPU 관리자는 노드의 모든 CPU 코어를 공유 풀로 간주하고 이를 사용하여 노드에 배포된 Pod를 실행합니다.
- kubelet의 CPU-manager-policy 필드를 'static'으로 설정하면 .yaml 파일에서 CPU 요청/제한을 정수로 설정하여 Pod에 대한 CPU 선호도를 설정할 수 있습니다.
제가 한:
- CPU-manager-policy 필드를 정적으로 변경하기 위해 다음과 같이 kubelet의 구성을 변경하려고 했습니다.링크
- 그러나 CPU-manager-policy 필드는 변경되지 않았으며 여전히 '없음'입니다.
- 그래서 /var/lib/kubelet/config.yaml의 'cpuManagerPolicy' 필드를 변경했습니다.
- 그런 다음 'sudo systemctl restart kubelet'을 실행했습니다.
- 노드 상태가 'NotReady'로 변경되고 모든 Pod가 보류 상태로 전환되었습니다.
내가 사용하고 있는 환경:
- k8s 버전: v1.13.2
- CNI: 칼리코
- OS: 우분투 16.04
- 노드 수: 2(마스터 1개, 워커 1개)
- 애플리케이션: 이름이 지정된 istio의 샘플 앱도서정보
미리 감사드립니다!
답변1
나는 그것을 해결했다. config.yaml 파일에 'kubeReserved' 필드를 추가해야 합니다. 또한 /var/lib/kubelet/cpu_manager_state 파일을 제거해야 합니다. 그런 다음 'systemctl restart kubelet'을 실행하여 kubelet을 다시 시작하세요.