# Qualcomm Linux에서 Kubernetes 설정

Kubernetes는 컨테이너에서 실행되는 애플리케이션의 배포, 스케일링 및 관리를 자동화하는 데 사용되는 오픈 소스 플랫폼입니다. 여러 기기에서 컨테이너를 구성하도록 지원하여 애플리케이션의 효율적인 리소스 활용도, 고가용성 및 확장성을 보장합니다. Kubernetes는 대규모 서버와 클라우드 시스템뿐만 아니라 소규모 Linux 임베디드 기기에도 유용합니다. 또한 여러 IoT 기기에서 컨테이너 및 애플리케이션을 효율적으로 관리하고 오케스트레이션하는 데 도움이 됩니다. Kubernetes에 대한 자세한 내용은 [Kubernetes](https://kubernetes.io/) 공식 웹 사이트를 참조하세요.

## Kubernetes 활성화

- Qualcomm Linux 릴리스는 다음과 같은 변경을 통해 `qcom-multimedia-image` 에서 기본적으로 Kubernetes를 활성화합니다.

    - `packagegroup-qcom-k8s` 가 `dynamic-layers/virtualization-layer/recipes-containers/packagegroups/packagegroup-qcom-k8s.bb` 의 `meta-qcom-hwe` 계층에 정의됩니다.
    - `packagegroup-qcom-k8s` 가 `meta-qcom-distro` 계층의 `recipes-products/packagegroups/packagegroup-qcom-multimedia.bb` 이미지 레시피에 포함됩니다.
- 부팅 후 kubelet의 상태를 확인하려면 다음 명령어를 실행하고 출력을 확인하세요.

    | 명령어 | 설명 | 출력 |
    | --- | --- | --- |
    | `systemctl status kubelet` | 기기가 부팅 후 kubeadm을 사용하여 한 번 이상 Kubernetes 노드로 설정된 경우 | 활성(실행 중) |
    | `systemctl status kubelet` | 기기가 부팅 후 kubeadm을 사용하여 Kubernetes 노드로 설정되지 않은 경우 | 비활성(중지) |
    |  |  |  |

## `meta-virtualization` 솔루션과 달리 Docker 및 Kubernetes에서 변경된 사항

- `meta-qcom-hwe/dynamic-layers/virtualization-layer/recipes-containers/docker/docker-moby_git.bbappend` 파일은 `/${systemd_unitdir}/system/docker.service` 를 수정하여 서비스 `ExecStart` 의 일부로 실행되는 `dockerd` 명령어에 `--exec-opt native.cgroupdriver=systemd` 옵션을 추가합니다. 이 작업을 통해 Docker와 Kubernetes 간에 `cgroupdriver` 를 사용하는 패리티가 유지됩니다.
- `meta-qcom-hwe`/`recipes-containers`/`kubernetes`/`kubernetes_git.bbappend` 파일은 `/lib/systemd/system/kubelet.service.d/10-kubeadm.conf` 를 수정하여 `--fail-swap-on=false` 를 `KUBELET_EXTRA_ARGS` 의 일부로 추가합니다. 기본적으로 Kubernetes는 스왑이 **OFF** 일 것으로 예상하지만, Qualcomm Linux에서는 zram 기능이 활성화되면 스왑이 **ON** 으로 설정됩니다. `--fail-swap-on=false` 를 설정하면 스왑 메모리가 활성화된 경우에도 kubelet을 실행할 수 있습니다.
- 업스트림 `kubelet.service` 는 기기 부팅 시 자동으로 시동을 시도하며, 이는 기기가 Kubernetes 노드로 구성되지 않은 경우에도 마찬가지입니다. 그러나 이 동작은 리소스를 소모하며 전력에 영향을 미칩니다. 이 문제를 해결하려면 `meta-qcom-hwe/recipes-containers/kubernetes/kubernetes_git.bbappend` 파일에서 `WantedBy=multi-user.target` 을 제거하여 `kubelet.service` 를 수정하세요. `WantedBy=multi-user.target` 을 삭제하면 업스트림 `kubelet.service` 는 `multi-user.target` 의 일부로 부팅 시 자동으로 시작되는 것이 아니라, 기기가 `kubeadm` 을 사용하여 Kubernetes 노드로 설정될 때 시작됩니다.

Last Published: Dec 23, 2025

[Previous Topic
Docker 컨테이너 사용](https://docs.qualcomm.com/bundle/publicresource/80-70020-27KO/topics/use_of_docker_containers.md) [Next Topic
property-vault](https://docs.qualcomm.com/bundle/publicresource/80-70020-27KO/topics/configure_properties.md)

Source: [https://docs.qualcomm.com/doc/80-70020-27KO/topic/setup_kubernetes_with_qualcomm_linux.html](https://docs.qualcomm.com/doc/80-70020-27KO/topic/setup_kubernetes_with_qualcomm_linux.html)