# 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ノードとして少なくとも1回セットアップされている場合 | アクティブ（実行中） |
    | `systemctl status kubelet` | デバイスが起動後にkubeadmを使用して、Kubernetesノードとしてセットアップされていない場合 | インアクティブ（停止） |
    |  |  |  |

## `meta-virtualization` ソリューションとは対照的な Docker と Kubernetes の変更点

- `meta-qcom-hwe/dynamic-layers/virtualization-layer/recipes-containers/docker/docker-moby_git.bbappend` ファイルは、`ExecStart` サービスの一部として実行される `dockerd` コマンドに `--exec-opt native.cgroupdriver=systemd` オプションを追加するために `/${systemd_unitdir}/system/docker.service` を修正します。これにより、DockerとKubernetesとの間の `cgroupdriver` での整合性が保たれます。
- `meta-qcom-hwe` / `recipes-containers` / `kubernetes` / `kubernetes_git.bbappend` ファイルは、`KUBELET_EXTRA_ARGS` の一部として `--fail-swap-on=false` を追加するために `/lib/systemd/system/kubelet.service.d/10-kubeadm.conf` を修正します。デフォルトでは、Kubernetes はスワップが **OFF** であることを期待していますが、Qualcomm Linux は zram 機能を有効にしてスワップを **ON** に設定しています。`--fail-swap-on=false` を設定することで、スワップメモリーが有効でも kubelet を実行できるようになります。
- アップストリームの `kubelet.service` は、デバイスがKubernetesノードとして構成されていなくても、デバイスの起動時に自動的に起動を試みます。しかし、この動作はリソースを消費し、電力に影響を与えます。これに対処するために　`kubelet.service` を変更しており、`meta-qcom-hwe/recipes-containers/kubernetes/kubernetes_git.bbappend` ファイルの `WantedBy=multi-user.target` を削除しています。`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-27JA/topics/use_of_docker_containers.md) [Next Topic
property-vault](https://docs.qualcomm.com/bundle/publicresource/80-70020-27JA/topics/configure_properties.md)

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