【完全版】Rancher Desktop × Helm で Spring Boot アプリを Kubernetes にデプロイする方法

目次

はじめに

Docker Desktop の重さやライセンス問題に悩まされ、「もっと軽くて、本番に近い Kubernetes をローカルで再現できる環境はないのか」と感じたことはありませんか。Kubernetes や Helm を学びたいのに、最初の一歩でつまずいてしまう そんな声をよく耳にします。特に Spring Boot のような実務でよく使うアプリケーションを Kubernetes 上で動かしたい場合、環境構築のハードルが高く、学習コストが膨らみがちです。

そこで注目されているのが Rancher Desktop × Helm × Spring Boot という組み合わせです。Rancher Desktop は軽量で無料、しかも本番に近い k3s ベースの Kubernetes をワンクリックで利用できるため、Docker Desktop の代替として急速に広まっています。本記事では、この Rancher Desktop 上で Spring Boot アプリを Helm Chart を使ってデプロイする方法 を、初心者でも再現できる形で丁寧に解説します。

記事を読み進めることで、Docker build → Helm → kubectl apply というクラウドネイティブ開発の基本フローが自然に理解でき、ローカル環境で本番さながらの Kubernetes 動作を体験できるようになります。実務レベルの構成をそのままローカルで再現できるため、学習にも検証にも最適です。

この記事を読み終える頃には、あなたのローカル環境が本番級に進化し、クラウドネイティブ開発の第一歩を自信を持って踏み出せるはずです。

↓完成イメージ

この記事でできること

・Rancher Desktop の Kubernetes 上で Spring Boot(Java)アプリを Helm Chart でデプロイできるようになる
・Docker build → Helm → kubectl apply の流れが理解できる
・ローカル環境でクラウドネイティブ開発を再現できる

なぜ Rancher Desktop × Helm が最強のローカル環境なのか

①本番に近い Kubernetes(k3s)がワンクリックで手に入る
Rancher Desktop は k3s ベースの軽量 Kubernetes を標準搭載しており、 Docker Desktop のように別途 K8s を有効化する必要がありません。そのため以下のような利点があります。
・VM の CPU / メモリ割り当ても GUI で調整可能
・k3s は本番でも利用される軽量ディストリビューション
・Kubernetes バージョンを GUI で切り替え可能
→ ローカルで本番に近い挙動を再現できるため、検証環境として非常に強い。

kubectl・Helm・containerd/dockerd が最初から全部入り
Rancher Desktop は以下をすべて同梱しています
・kubectl(K8s CLI)
・Helm(K8s パッケージマネージャ)
・containerd または dockerd(Moby)
・nerdctl(containerd 用 Docker 互換 CLI)
これらが インストール不要で即利用可能です。手軽にローカルで構築できるという利点があります。

③ローカルでビルドしたイメージをそのまま Kubernetes にデプロイできる
Rancher Desktop は ローカルでビルドしたコンテナイメージを直接 k3s に渡せる ため、 レジストリに push する必要がありません。AWS上のEKSやその他kubernetes環境では通常レジストリが必要となるのでその構築の手間を省くことができます。

④Docker Desktop の代替として完全無料・軽量
Docker Desktop は商用利用でライセンス費用が発生しますが、 Rancher Desktop は 完全無料OSSです。
さらにDocker Desktopよりも軽量で、WindowsではWSL2と統合されており、個人開発・企業の双方にメリットがあります。

前提条件(環境)

Rancher Desktop :1.22.0
java:21

手順まとめ(全体像)

以下の図の赤字部分が手順の概要となります。

実際の手順

Rancher Desktopのインストール

以下のサイトからRancher Desktopをインストールする。
https://rancherdesktop.io

インストール後の初回起動時、以下のような画面が表示されるため「containerd」を選択してOKをクリックする。

demoプロジェクトの作成

以下の記事を参考にdemoアプリケーションを作成し,C:\workに配置する。

あわせて読みたい
【初心者向け】IntelliJでJava+Spring BootのWebアプリを作成する方法 はじめに 本記事では、IntelliJ IDEAを利用してJava+Spring BootのWebアプリのサンプルを作成する手順をご紹介します。spring tool suiteでも可能ですが、私自身の興味...

Dockerfileを作成

C:\work\demoにDockerfileを作成する
・Dockerfile

FROM eclipse-temurin:21-jdk AS build
WORKDIR /app
COPY . .
RUN ./gradlew build

FROM eclipse-temurin:21-jdk
WORKDIR /app
COPY --from=build /app/build/libs/*.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]

demoアプリケーションをビルド

powershellで以下のコマンドを実行し、ビルド実行

cd C:\\work\demo
nerdctl build -t demo-app:1.0 .
nerdctl images

ビルドが完了したらk8s用namespaceにビルドしなおす

nerdctl -n k8s.io build -t demo-app:1.0 .
nerdctl -n k8s.io images | findstr demo

kubernetes環境にnamespaceを作成

引き続きpowershellにて以下のコマンドを実行し、kubernetes環境に「demo」という名前のnamespaceを作成する。

kubectl create namespace demo

helmでdemoアプリケーションをデプロイ

以下のコマンドを実行し、コンテナデプロイに必要なファイルセットを作成する。

helm create demo-chart

コマンド実行後の状態↓

demo-chart/values.yaml を以下の通り編集してイメージ名を設定

image:
  repository: demo-app
  tag: "1.0"
  pullPolicy: IfNotPresent

service:
  type: ClusterIP
  port: 80

以下のコマンドを実行し、デプロイする。

helm install demo-app ./demo-chart -n demo
kubectl get pods -n demo
kubectl get svc -n demo

ポートフォワードの設定

kubernetes環境にpodを立ち上げただけではアクセスすることができないため、以下のコマンドを実行し、ポート8080向けのリクエストを8080でポートフォワーディングする。

kubectl -n demo port-forward svc/demo-app-demo-chart 8080:8080

アクセス確認

http://localhost:8080 にアクセスし、「test」と表示されることを確認する。

以上で手順は終了です。後述ではトラブルシューティングをご紹介します。

トラブルシューティング

Rancher Desktop × Helm × Spring Boot の組み合わせは強力ですが、初学者がつまずきやすいポイントもいくつか存在します。ここでは 原因 → 症状 → 解決策 の順で整理し、実務でも役立つ形でまとめました。

Helm install 後に Pod が以下のようなエラーで起動しない

症状:以下のようなエラーとなり、podが起動しない

ImagePullBackOff
Failed to pull image "demo-app:1.0"

解決策:Kubernetes が参照する k8s.io 名前空間でイメージをビルドし直す。

nerdctl -n k8s.io build -t demo-app:1.0 .     #k8s.io名前空間でビルド
nerdctl -n k8s.io images | findstr demo      #イメージ存在確認

原因:Rancher Desktop の Kubernetes(k3s)は独立した containerd 名前空間(k8s.io)を使用しているため、通常の nerdctl でビルドしたイメージは Kubernetes から参照できません。

イメージが見つからない(ImagePullBackOff)

症状:podのステータスが以下のようになっていて、イメージが見つかっていない

ImagePullBackOff
ErrImagePull

解決策:以下①~③の手順を実施して再デプロイしてください。

①イメージが存在するか確認

nerdctl -n k8s.io images

②Helmのvalues.yamlを再確認

image:
  repository: demo-app
  tag: "1.0"

③再デプロイ

helm upgrade --install demo-app ./demo-chart -n demo

原因values.yamlimage.repository が間違っている または tag が一致していない

Helm install の失敗

症状:インストールが失敗する。

Error: INSTALLATION FAILED
Error: rendered manifests contain a resource that already exists

解決策:以下①~③の手順を実施して再デプロイしてください。

①既存リソースを削除

helm uninstall demo-app -n demo

②values.yamlの構文チェック

helm lint ./demo-chart

③再インストール

helm install demo-app ./demo-chart -n demo

原因:Chart 内のテンプレート構文エラー / values.yaml のインデントミス / すでに同名リリースが存在する

まとめ

Kubernetes 開発体験を得られる最強の構成です。 この記事を通じて、以下の流れを実際に手を動かしながら理解できたはずです。

  • Docker(nerdctl)でイメージをビルド
  • Helm Chart で Kubernetes マニフェストを生成
  • kubectl でデプロイし、Pod・Service を操作
  • ローカルで本番さながらの挙動を確認

特に Rancher Desktop は 軽量・無料・k3s ベース という強みがあり、Docker Desktop の代替としてだけでなく、学習・検証環境としても非常に優れています。
Spring Boot アプリを Kubernetes 上で動かせるようになると、次のステップとして以下のような実務レベルの技術にもスムーズに進めます。

  • GitOps(ArgoCD)で自動デプロイ
  • Karpenter によるオートスケール
  • EKS への本番デプロイ
  • Observability(Prometheus / Grafana / OpenTelemetry)
  • Service Mesh(Istio / Linkerd)

ローカルで「本番と同じ体験」ができることは、クラウドネイティブ開発において大きな自信につながります。 今日構築した環境は、あなたのクラウドネイティブスキルを一段引き上げる強力な武器になるはずです。
次は、ぜひ GitOps 化 や EKS への応用 に挑戦してみてください。 あなたのクラウドネイティブ開発の旅は、ここからさらに広がっていきます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次