Mac mini M4 を跨区域レンタルし K3s/k0s を回すと、支配的になりやすいのは レジストリ RTT と containerd の pull、続いて ResourceQuota/LimitRange です。算力選定・リージョン・ノード で前提を揃え、表とコピペ例で合わせてください。Kind/minikube・Docker/Podman と併読。料金・購入・ヘルプはログイン不要です。
リージョン・ノード選定
K3s と k0s の対照
いずれも Linux+containerd 前提。ゲストがホストの APFS/帯域を共有する点は Kind 稿 と同型です。単一ノードで観測してから冗長化してください。
| 観点 | K3s | k0s |
|---|---|---|
| 導入・運用の入口 | 公式インストーラと k3s サブコマンド、/etc/rancher/k3s/config.yaml で拡張が一般的 |
k0sctl や単一バイナリ、設定は k0s.yaml 系に集約されやすい |
| データストア | 組み込み etcd/外部 DB/SQLite 等から選択 | コントロールプレーンの組み立てがドキュメント上追いやすいことが多い |
| kubelet/CRI のいじり方 | --kubelet-arg をインストール時または設定ファイルで列挙 |
spec.kubelet.extraArgs 等(バージョンによりキー名はドキュメント確認)で同等の挙動を狙える |
| 既定 CNI | Flannel 既定など、フラグで差し替え可 | リリースノートでバンドル確認、検証は最小から |
| 向きやすい用途 | エッジ・既存 shell 手順との親和、Rancher 連携を見据える場合 | 「ゼロフリクション」志向の標準化、k0sctl による再現性重視 |
決め方: シェル手順の蓄積なら K3s、k0sctl の再現性なら k0s。どちらも単一ノードで pull とクォートを測ってから二ノード目へ。
イメージ並列とリソースクォートの例
出発点(版に合わせキー確認)。K3s:kubelet の pull 猶予を伸ばす例。
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server \
--kubelet-arg=image-pull-progress-deadline=10m" sh -
containerd:高 RTT では max_concurrent_downloads を絞る。
# /etc/rancher/k3s/registries.yaml とは別。containerd の config.toml 系で:
# [plugins."io.containerd.grpc.v1.cri"]
# [plugins."io.containerd.grpc.v1.cri".containerd]
# max_concurrent_downloads = 3
k0s:k0s.yaml の kubelet 追加引数へ同種を載せる(キーは版ドキュメント)。クォート YAML(調整必須):
apiVersion: v1
kind: LimitRange
metadata:
name: default-limits
namespace: app
spec:
limits:
- defaultRequest:
cpu: "250m"
memory: "256Mi"
default:
cpu: "1"
memory: "1Gi"
type: Container
---
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-quota
namespace: app
spec:
hard:
requests.cpu: "8"
requests.memory: 14Gi
limits.cpu: "12"
limits.memory: 18Gi
pods: "24"
レプリカを扇に広げる前に crictl pull で digest 固定。対話型は startupProbe 計 〜30s、バッチは activeDeadlineSeconds を別監視。