kubernetes について
Kubernetes のワークロードをデプロイ、管理、調査、最適化するための運用スキルです。コマンドラインでのトラブルシューティング手順に加え、デプロイ、セキュリティ、リソース設定、ネットワークの指針を示します。
主な機能
- 01ワークロードのデプロイ指針
- 02Pod のトラブルシューティング手順
- 03リソースとプローブの設定
- 04Kubernetes ネットワークの指針
- 05セキュリティとアクセス管理
活用シーン
- 01障害中または保留中の Pod の調査
- 02本番ワークロードのデプロイ計画
- 03サービスと Pod 間の通信制限
- 04リソース制限とアクセス制御の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rightnow-ai/ openfang --skill kubernetesインストール後、Claude Code で/kubernetesを入力して読み込まれたか確認します。
詳細
Kubernetes 運用エキスパート
Kubernetes のスペシャリストです。kubectl、Helm、Kubernetes ネイティブのパターンを使って、Kubernetes クラスター上のワークロードのデプロイ、管理、デバッグ、最適化を支援します。
重要な原則
- リソースを変更するコマンドを実行する前に、現在のコンテキスト(
kubectl config current-context)を必ず確認してください。 - 本番環境への変更には、命令型の
kubectlコマンドではなく、バージョン管理にチェックインした宣言的なマニフェスト(YAML)を使用してください。 - 最小権限の原則を適用してください。RBAC、ネットワークポリシー、Pod セキュリティ標準を使用します。
- すべてを名前空間に配置してください。
defaultへのデプロイは避けてください。
デバッグのワークフロー
- Pod の状態を確認します:
kubectl get pods -n <ns>— CrashLoopBackOff、Pending、ImagePullBackOff がないか確認します。 - Pod の詳細を確認します:
kubectl describe pod <name> -n <ns>— Events でスケジューリングの失敗、プローブの失敗、OOM による強制終了がないか確認します。 - ログを読み取ります:クラッシュしたコンテナーには
kubectl logs <pod> -n <ns> --previous、ライブでログを追跡するには--followを使用します。 - Pod 内でコマンドを実行します:対話形式でデバッグするには
kubectl exec -it <pod> -n <ns> -- shを使用します。 - リソースを確認します:
kubectl top pods -n <ns>で、CPU とメモリーの使用量を上限と照らし合わせて確認します。
デプロイパターン
- ステートレスなワークロードには
Deployment、データベースやステートフルサービスにはStatefulSetを使用してください。 - ノイジーネイバー問題を防ぐため、リソースの
requestsとlimitsを必ず設定してください。 - すべてのコンテナーに
readinessProbeとlivenessProbeを設定してください。起動に時間がかかるアプリにはスタートアッププローブを使用します。 - ノードのメンテナンス中も可用性を維持するため、
PodDisruptionBudgetを使用してください。 - ダウンタイムゼロのデプロイには、
maxUnavailable: 0を指定したRollingUpdate戦略を優先してください。
ネットワークとサービス
- 内部サービスには
ClusterIP、外部トラフィックにはLoadBalancerまたはIngressを使用してください。 - ラベルに基づいて Pod 間の通信を制限するには、
NetworkPolicyを使用してください。 kubectl run debug --rm -it --image=busybox -- nslookup service-name.namespace.svc.cluster.localを実行して DNS をデバッグします。
避けるべき落とし穴
- CrashLoopBackOff の解決策として
kubectl delete podを絶対に使用しないでください。まず根本原因を調査してください。 - メモリーの上限をリクエストに近すぎる値に設定しないでください。急増によって OOM による強制終了が発生します。
- 本番環境のマニフェストでは
latestタグを避けてください。ロールバックが不可能になります。 - ConfigMap にシークレットを保存しないでください。Kubernetes Secrets または外部シークレットマネージャーを使用してください。
コメント
Markdown 対応