2026年8月3日

2026年8月3日

VPSでKubernetesクラスターを構築する方法(k3s)

はじめに

この記事では、VPS上でk3sを使ってKubernetesクラスターを構築する方法について解説します。最近はコンテナ技術が高度なアプリケーション開発やデプロイメントにおいて重要な役割を果たしており、それに対応するためにKubernetesが広く利用されています。k3sは、軽量でシンプルなKubernetesクラスターの構築に最適なツールであり、VPS上で効率的に運用することが可能です。

症状・背景

このテーマが必要になる主な場面:

  • ローカル環境以外でも同じように高度なアプリケーションを管理したい
  • コンテナ化されたアプリケーションのデプロイとスケーリングを効率化したい
  • クラウドインフロ strawman から始めたいが、初期費用や運用負荷が高いと感じる

手順・設定方法

ステップ1: k3sのインストール

# k3sのインストールコマンド
curl -sfL https://get.k3s.io | sh -

# インストールが完了したら、kubeconfigファイルをコピーする
sudo cp /var/lib/rancher/k3s/server/node-token ~/.kube/

# kubeconfigファイルを設定する
echo "apiVersion: v1
clusters:
- cluster:
    server: https://<VPSのIPアドレス>:6443
  name: default-cluster
contexts:
- context:
    cluster: default-cluster
    user: k3s
  name: default-context
current-context: default-context
kind: Config
preferences: {}
users:
- name: k3s
  user:
    token: $(cat /var/lib/rancher/k3s/server/node-token)" > ~/.kube/config

# kubeconfigファイルを設定する
echo "apiVersion: v1
clusters:
- cluster:
    server: https://<VPSのIPアドレス>:6443
  name: default-cluster
contexts:
- context:
    cluster: default-cluster
    user: k3s
  name: default-context
current-context: default-context
kind: Config
preferences: {}
users:
- name: k3s
  user:
    token: $(cat /var/lib/rancher/k3s/server/node-token)" > ~/.kube/config

# kubectlコマンドでクラスターのステータスを確認する
kubectl get nodes

ステップ2: 必要なパッケージのインストール

# 必要なパッケージをインストールする
sudo apt-get update && sudo apt-get install -y kubectl

ステップ3: Podとサービスの設定

# プロキシサービスを作成する
kubectl apply -f https://raw.githubusercontent.com/metalmatze/kube-proxier/master/deploy/default.yaml

# ウェブアプリケーションをデプロイする
cat <<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80
EOF

# サービスを作成する
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
---

ステップ4: 実践/トラブルシュート/監視

# デプロイメントとサービスの状態を確認する
kubectl get deployments,svc

注意事項

  • VPSのIPアドレスは必要に応じて変更する
  • k3sクラスターの設定やパラメータは、具体的な環境に合わせて調整する
  • セキュリティ上の注意点として、SSHアクセスを制限したり、必要なポートだけを開けたりすることが重要

まとめ

1. k3sのインストール: VPS上でk3sをインストールし、Kubernetesクラスターを構築します。

2. kubeconfigファイルの設定: kubectlコマンドを使用するためのkubeconfigファイルを作成します。

3. Podとサービスの設定: ウェブアプリケーションをデプロイし、そのサービスを提供します。

4. 実践/トラブルシュート/監視: デプロイメントとサービスの状態を確認して問題を解決します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ