KubernetesはOCIコンテナ(Dockerイメージを含む)の大規模管理・自動化のデファクトスタンダードです。この記事ではk8sの基礎概念とminikubeでのローカル学習環境を解説します。
Kubernetesの主要リソース
| リソース |
役割 |
| Pod |
コンテナの最小単位(1つ以上のコンテナをまとめる) |
| Deployment |
Podの管理・スケーリング・ローリングアップデート |
| Service |
Podへのネットワークアクセスを管理・負荷分散 |
| ConfigMap |
設定情報を管理(環境変数など) |
| Secret |
パスワードなど機密情報を管理 |
| Namespace |
リソースを論理的に分離する |
minikubeでローカルk8sを試す
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start
kubectl get nodes
kubectl get pods
kubectl apply -f deployment.yaml
Docker SwarmとKubernetesの比較
| 比較項目 |
Docker Swarm |
Kubernetes |
| 学習コスト |
低い |
高い |
| 機能の豊富さ |
基本的 |
非常に豊富 |
| 採用実績 |
中小規模 |
大規模・企業向け |
| エコシステム |
限定的 |
非常に充実 |
まとめ
- KubernetesはOCIコンテナ(Dockerイメージを含む)の大規模管理・自動化のデファクトスタンダード
- Pod・Deployment・Serviceの3リソースを理解することが入門の第一歩
- minikubeでローカル環境でk8sを学べる
- 補足:KubernetesはDockerエンジン自体をランタイムとして使う前提ではなく、v1.24以降はdockershimが削除されています。実行時には主に
containerd や CRI-O などのCRI(コンテナランタイムインターフェース)が使われます。
コメント