kubernetes-specialist
Kubernetesのワークロード展開・管理が必要な場合に使用します。デプロイメントマニフェストの作成、Podセキュリティポリシーの設定、サービスアカウントのセットアップ、ネットワーク分離ルールの定義、Podクラッシュのデバッグ、リソースリミットの分析、コンテナログの検査、ワークロードのリサイジングなどができます。Helmチャート、RBACポリシー、NetworkPolicies、ストレージ設定、パフォーマンス最適化、GitOpsパイプライン、マルチクラスタ管理にも対応します。
description の原文を見る
Use when deploying or managing Kubernetes workloads. Invoke to create deployment manifests, configure pod security policies, set up service accounts, define network isolation rules, debug pod crashes, analyze resource limits, inspect container logs, or right-size workloads. Use for Helm charts, RBAC policies, NetworkPolicies, storage configuration, performance optimization, GitOps pipelines, and multi-cluster management.
SKILL.md 本文
Kubernetes スペシャリスト
このスキルの使用時機
- ワークロードのデプロイ(Deployments、StatefulSets、DaemonSets、Jobs)
- ネットワークの設定(Services、Ingress、NetworkPolicies)
- 設定の管理(ConfigMaps、Secrets、環境変数)
- 永続ストレージのセットアップ(PV、PVC、StorageClasses)
- アプリケーション パッケージング用の Helm チャートの作成
- クラスタとワークロードの問題のトラブルシューティング
- セキュリティのベストプラクティス実装
コアワークフロー
- 要件の分析 — ワークロード特性、スケーリングニーズ、セキュリティ要件を理解する
- アーキテクチャ設計 — ワークロードタイプ、ネットワークパターン、ストレージソリューションを選択する
- マニフェスト実装 — 適切なリソース制限とヘルスチェックを含む宣言的YAML を作成する
- セキュリティ適用 — RBAC、NetworkPolicies、Pod Security Standards、最小権限の原則を適用する
- 検証 —
kubectl rollout status、kubectl get pods -w、kubectl describe pod <name>を実行して健全性を確認し、必要に応じてkubectl rollout undoでロールバックする
リファレンスガイド
コンテキストに基づいて詳細なガイダンスを読み込みます:
| トピック | リファレンス | 読み込むタイミング |
|---|---|---|
| ワークロード | references/workloads.md | Deployments、StatefulSets、DaemonSets、Jobs、CronJobs |
| ネットワーキング | references/networking.md | Services、Ingress、NetworkPolicies、DNS |
| 設定 | references/configuration.md | ConfigMaps、Secrets、環境変数 |
| ストレージ | references/storage.md | PV、PVC、StorageClasses、CSI ドライバ |
| Helm チャート | references/helm-charts.md | チャート構造、値、テンプレート、フック、テスト、リポジトリ |
| トラブルシューティング | references/troubleshooting.md | kubectl debug、ログ、イベント、一般的な問題 |
| カスタムオペレータ | references/custom-operators.md | CRD、Operator SDK、controller-runtime、リコンシリエーション |
| サービスメッシュ | references/service-mesh.md | Istio、Linkerd、トラフィック管理、mTLS、カナリア |
| GitOps | references/gitops.md | ArgoCD、Flux、プログレッシブデリバリー、シール済みシークレット |
| コスト最適化 | references/cost-optimization.md | VPA、HPA チューニング、スポットインスタンス、クォータ、適切なサイジング |
| マルチクラスタ | references/multi-cluster.md | Cluster API、フェデレーション、クロスクラスタネットワーク、DR |
制約事項
必須項目
- 宣言的な YAML マニフェストを使用する(命令型 kubectl コマンドは避ける)
- すべてのコンテナにリソースリクエストと制限を設定する
- ライブネスプローブとレディネスプローブを含める
- 機密データにはシークレットを使用する(認証情報をハードコードしない)
- 最小権限の RBAC パーミッションを適用する
- ネットワークセグメンテーション用に NetworkPolicies を実装する
- 論理的な分離のために名前空間を使用する
- 組織化のためにリソースに一貫性のあるラベルを付ける
- 設定の決定をアノテーションで文書化する
禁止事項
- リソース制限なしで本番環境にデプロイしない
- ConfigMaps またはプレーンな環境変数にシークレットを格納しない
- アプリケーション Pod にデフォルト ServiceAccount を使用しない
- 制限なしのネットワークアクセスを許可しない(デフォルトですべて許可)
- 正当な理由がないかぎり root としてコンテナを実行しない
- ヘルスチェック(ライブネス/レディネスプローブ)をスキップしない
- 本番環境の画像に latest タグを使用しない
- 不要なポートやサービスを公開しない
一般的な YAML パターン
リソース制限、プローブ、セキュリティコンテキスト付き Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: my-namespace
labels:
app: my-app
version: "1.2.3"
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
version: "1.2.3"
spec:
serviceAccountName: my-app-sa # never use default SA
securityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 2000
containers:
- name: my-app
image: my-registry/my-app:1.2.3 # never use latest
ports:
- containerPort: 8080
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "512Mi"
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 15
periodSeconds: 20
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop: ["ALL"]
envFrom:
- secretRef:
name: my-app-secret # pull credentials from Secret, not ConfigMap
最小限の RBAC(最小権限)
apiVersion: v1
kind: ServiceAccount
metadata:
name: my-app-sa
namespace: my-namespace
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: my-app-role
namespace: my-namespace
rules:
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["get", "list"] # grant only what is needed
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: my-app-rolebinding
namespace: my-namespace
subjects:
- kind: ServiceAccount
name: my-app-sa
namespace: my-namespace
roleRef:
kind: Role
name: my-app-role
apiGroup: rbac.authorization.k8s.io
NetworkPolicy(デフォルト拒否 + 明示的な許可)
# デフォルトではすべてのイングレスとエグレスを拒否
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-all
namespace: my-namespace
spec:
podSelector: {}
policyTypes: ["Ingress", "Egress"]
---
# 特定のトラフィックのみを許可
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-my-app
namespace: my-namespace
spec:
podSelector:
matchLabels:
app: my-app
policyTypes: ["Ingress"]
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- protocol: TCP
port: 8080
検証コマンド
デプロイ後、健全性とセキュリティ体勢を確認します:
# ロールアウトの完了を監視
kubectl rollout status deployment/my-app -n my-namespace
# Pod イベントをストリーム配信してクラッシュループやイメージプル エラーをキャッチ
kubectl get pods -n my-namespace -w
# 特定の Pod を検査して障害を確認
kubectl describe pod <pod-name> -n my-namespace
# コンテナログを確認
kubectl logs <pod-name> -n my-namespace --previous # use --previous for crashed containers
# リソース使用状況を制限と照らし合わせて検証
kubectl top pods -n my-namespace
# サービスアカウントの RBAC パーミッションを監査
kubectl auth can-i --list --as=system:serviceaccount:my-namespace:my-app-sa
# 失敗したデプロイをロールバック
kubectl rollout undo deployment/my-app -n my-namespace
出力テンプレート
Kubernetes リソースを実装する場合は、以下を提供します:
- 適切な構造を備えた完全な YAML マニフェスト
- 必要に応じて RBAC 設定(ServiceAccount、Role、RoleBinding)
- ネットワーク分離用の NetworkPolicy
- 設計上の決定とセキュリティに関する考慮事項の簡潔な説明
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- lehieu2909
- ライセンス
- MIT
- 最終更新
- 2026/5/11
Source: https://github.com/lehieu2909/SCA_THESIS / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。