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. 実践/トラブルシュート/監視: デプロイメントとサービスの状態を確認して問題を解決します。
関連記事: