mcpField
K
kubernetes-operations

kubernetes-operations

github.com/laurigatesクラウド・DevOps5976 回インストール今日更新
リポジトリ

kubernetes-operations について

kubectl を使った Kubernetes クラスターの管理とトラブルシューティングを支援し、ワークロード、ネットワーク、設定、ストレージ、稼働状況を扱います。宣言的マニフェストとコンテキストの明示指定を重視し、誤ったクラスターへの操作を避けます。

主な機能

  1. 01Kubernetes ワークロードの管理
  2. 02サービスとネットワークの確認
  3. 03ConfigMaps、Secrets、ストレージの管理
  4. 04Pod、ログ、イベントの調査
  5. 05dry-run によるマニフェスト検証
  6. 06クラスターコンテキストの明示指定

活用シーン

  1. 01Kubernetes リソースのデプロイと確認
  2. 02Pod の状態とアプリケーションログの診断
  3. 03サービス接続のトラブルシューティング
  4. 04クラスター設定とストレージの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/laurigates/claude-plugins --skill kubernetes-operations

インストール後、Claude Code で/kubernetes-operationsを入力して読み込まれたか確認します。

同梱ファイルREFERENCE.md

詳細

Kubernetes の運用

kubectl とクラウドネイティブのパターンに精通し、Kubernetes クラスターの管理、デプロイ、トラブルシューティングに関する専門知識を提供します。

このスキルを使用する場面

次の場合はこのスキルを使用してください…次の場合は代わりに を使用してください…
kubectl を使用して、Pod、Deployment、Service、Ingress、ConfigMap、または Secret を操作する場合kubectl debug のエフェメラルコンテナーまたはノードセッションが必要な場合は、kubectl-debugging を使用してください
Kubernetes のマニフェストや kustomize オーバーレイを直接適用または確認する場合ワークロードが Helm チャートとして配信される場合は、helm-release-management を使用してください
クラスター全体のネットワーク、ストレージ、またはワークロードの健全性を診断する場合クラスター操作の前に ArgoCD の認証が必要な場合は、argocd-login を使用してください

主な専門知識

Kubernetes の運用

  • ワークロード管理:Deployment、StatefulSet、DaemonSet、Job、CronJob
  • ネットワーク:Service、Ingress、NetworkPolicy、DNS 設定
  • 設定とストレージ:ConfigMap、Secret、PersistentVolume、PersistentVolumeClaim
  • トラブルシューティング:Pod のデバッグ、ログの分析、クラスターイベントの確認

クラスター運用の手順

  1. マニフェストを優先:リソース管理には常に宣言型 YAML マニフェストを優先してください
  2. 検証とドライラン:kubectl apply --dry-run=client を使用して変更を検証してください
  3. 確認と検証:変更の適用後、kubectl get、kubectl describe、kubectl logs で確認してください
  4. 健全性の監視:ノード、Pod、Service のステータスを継続的に確認してください
  5. クリーンアップ:古いリソースや未使用のリソースが適切にガベージコレクションされるようにしてください

基本的なコマンド

# Resource management
kubectl apply -f manifest.yaml
kubectl get pods -A
kubectl describe pod <pod-name>
kubectl logs -f <pod-name>
kubectl exec -it <pod-name> -- /bin/bash

# Debugging
kubectl get events --sort-by='.lastTimestamp'
kubectl top nodes
kubectl top pods --containers
kubectl port-forward <pod-name> 8080:80

# Deployment management
kubectl rollout status deployment/<name>
kubectl rollout history deployment/<name>
kubectl rollout undo deployment/<name>

# Cluster inspection
kubectl cluster-info
kubectl get nodes -o wide
kubectl api-resources

主なデバッグパターン

Pod のデバッグ

# Pod inspection
kubectl describe pod <pod-name>
kubectl get pod <pod-name> -o yaml
kubectl logs <pod-name> --previous

# Interactive debugging
kubectl exec -it <pod-name> -- /bin/bash
kubectl debug <pod-name> -it --image=busybox
kubectl port-forward <pod-name> 8080:80

ネットワークのトラブルシューティング

# Service debugging
kubectl get svc -o wide
kubectl get endpoints
kubectl describe svc <service>

# Network connectivity
kubectl run test-pod --image=busybox -it --rm -- sh
# Inside pod: nslookup, wget, nc commands

一般的な問題

# CrashLoopBackOff debugging
kubectl logs <pod> --previous
kubectl describe pod <pod>
kubectl get events --field-selector involvedObject.name=<pod>

# Resource constraints
kubectl top pod <pod>
kubectl describe pod <pod> | grep -A 5 Limits

# State management
kubectl state list
kubectl state show <resource>

ベストプラクティス

コンテキストの安全性(重要)

  • すべての kubectl コマンドで、必ず --context を明示的に指定してください
  • 現在のコンテキストに依存しないでください。別のプロセスによって変更されている可能性があります
  • すべての操作で kubectl --context=<context-name> get pods の形式を使用してください
  • これにより、誤ったクラスターに対する操作(例:staging に対して production 用のコマンドを実行すること)を防げます
# CORRECT: Explicit context
kubectl --context=gke_myproject_us-central1_prod get pods
kubectl --context=staging-cluster apply -f deployment.yaml

# WRONG: Relying on current context
kubectl get pods  # Which cluster is this targeting?

リソース定義

  • 宣言型 YAML マニフェストを使用する
  • 適切なラベルとセレクターを設定する
  • リソースのリクエストと制限を定義する
  • ヘルスチェック(liveness/readiness プローブ)を設定する

セキュリティ

  • NetworkPolicy を使用してトラフィックを制限する
  • アクセス制御に RBAC を導入する
  • 機密データを Secret に保存する
  • コンテナーを非 root ユーザーとして実行する

監視

  • 適切なログとメトリクスを設定する
  • 重大な状態に対するアラートを設定する
  • ヘルスチェックと readiness プローブを使用する
  • リソース使用量とクォータを監視する

エージェント向けの最適化

コンテキストコマンド
Pod のステータス(構造化)kubectl get pods -n <ns> -o json | jq '.items[] | {name:.metadata.name, status:.status.phase}'
概要の確認kubectl get pods -n <ns> -o wide
イベント(簡潔)kubectl get events -n <ns> --sort-by='.lastTimestamp' -o json
リソースの詳細kubectl get <resource> -o json
ログ(件数制限)kubectl logs <pod> -n <ns> --tail=50

詳細なデバッグコマンド、トラブルシューティングのパターン、Helm のワークフロー、高度な K8s 操作については、REFERENCE.md を参照してください。

コメント