🐷
Kubernetesでよく使うコマンドと設定ガイド
Kubernetes(K8s)は、コンテナ化されたアプリケーションを効率的に管理・運用できるプラットフォームです。本記事では、Kubernetesのよく使うコマンドや設定について詳しく解説します。
1. Kubernetesの基本コマンド
🔹 クラスタ情報を確認
kubectl cluster-info # クラスタの情報を表示
kubectl get nodes # ノード一覧を表示
kubectl get pods -A # すべての名前空間のPod一覧を取得
🔹 Podの操作
kubectl get pods # Pod一覧を取得
kubectl describe pod <pod名> # Podの詳細情報を表示
kubectl logs <pod名> # Podのログを表示
kubectl delete pod <pod名> # Podを削除
🔹 デプロイメントの操作
kubectl get deployments # デプロイメント一覧を取得
kubectl describe deployment <名称> # デプロイメントの詳細を表示
kubectl scale deployment <名称> --replicas=3 # レプリカ数を変更
kubectl delete deployment <名称> # デプロイメント削除
2. Kubernetesの設定ファイル(YAML)
🔹 基本的なPodの定義ファイル
apiVersion: v1
kind: Pod
metadata:
name: my-app
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: nginx:latest
ports:
- containerPort: 80
適用方法:
kubectl apply -f pod.yaml # YAMLを適用
🔹 Deployment(デプロイメント)定義ファイル
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: nginx:latest
ports:
- containerPort: 80
適用:
kubectl apply -f deployment.yaml
3. Kubernetesネットワークの設定
🔹 Service(サービス)の作成
Podを外部公開するための設定:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
適用:
kubectl apply -f service.yaml
kubectl get services # サービスの一覧を表示
🔹 Ingress(外部アクセス用)設定
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
適用:
kubectl apply -f ingress.yaml
kubectl get ingress # Ingress一覧を取得
4. スケーリングとローリングアップデート
🔹 Podのスケール(水平スケール)
kubectl scale deployment my-deployment --replicas=5
🔹 ローリングアップデート(アプリの更新)
kubectl set image deployment/my-deployment my-app-container=nginx:latest
kubectl rollout status deployment/my-deployment
5. Kubernetesの監視・デバッグ
🔹 リソースの状態を確認
kubectl top pods # PodのCPU/メモリ使用量を確認
kubectl top nodes # ノードのCPU/メモリ使用量を確認
🔹 トラブルシューティング
kubectl describe pod <pod名> # 詳細情報を取得
kubectl logs <pod名> # ログを取得
kubectl exec -it <pod名> -- /bin/sh # Podの中に入る
6. まとめ
-
kubectl get
でリソースの確認 -
kubectl apply -f
で設定ファイルを適用 -
kubectl scale
でスケール調整 -
kubectl rollout
でローリングアップデート
これらのコマンドを活用することで、Kubernetesクラスタの管理がスムーズに行えます!
Discussion