DevOps/CICD K8s/Lesson 03
CI/CD + Kubernetes — GitHub Actions · Pod · Deployment
60分·theory
CI/CD + Kubernetes — GitHub Actions · Pod · Deployment
🎯 このレッスンを読み終えたら
このレッスンを最後まで読み終えると、以下の3つを自信を持って実践できるようになります。
- ▸✅ GitHub Actions / GitLab CI ワークフロー
- ▸✅ Kubernetes Pod · Deployment · Service · Ingress
- ▸✅ Helm パッケージマネージャー + 環境別 values.yml
これらの目標をチェックリストとして手元に置き、すべてに答えられるようになったらレッスンを閉じてください。
CI/CD フロー + GitHub Actions
CI/CD = コード → 本番環境の自動化:
1. Continuous Integration: コードプッシュ → 自動ビルド・テスト・リント
2. Continuous Delivery: + 自動ステージングデプロイ
3. Continuous Deployment: + 自動本番デプロイ
GitHub Actions(最も一般的):
- ▸
.github/workflows/*.ymlファイル - ▸push・PR・スケジュール・手動トリガー
- ▸パブリックリポジトリは無料、プライベートは月2,000分無料
例:
セキュリティのベストプラクティス:
- ▸
secrets.GITHUB_TOKENを使用する(Personal Access Token の直書きは禁止) - ▸OIDC で AWS・GCP の一時的な認証情報を取得する(長期キーは使わない)
- ▸アクションはコミットハッシュに固定する(バージョンタグではなく)
- ▸Dependabot でアクションを自動アップデートする
その他の CI/CD ツール:
- ▸GitLab CI — GitLab に内蔵
- ▸Jenkins — セルフホスト型、強力だが複雑
- ▸CircleCI — 素早く始められる
- ▸ArgoCD — GitOps(Kubernetes 特化)
Kubernetes — Pod · Service · Deployment
一言で言うと: K8s = コンテナの自動運用ツール。Google の Borg が起源 → 2014年にオープンソース化 → 事実上の標準。
主要オブジェクト:
Deployment の例:
ローリングアップデート(デフォルト戦略):
- ▸新バージョンの Pod を段階的に追加 → 旧 Pod を段階的に削除
- ▸ゼロダウンタイムデプロイを保証
- ▸失敗時には自動ロールバックが可能
必須コマンド:
- ▸
kubectl apply -f deploy.yaml— デプロイ - ▸
kubectl get pods,svc,deploy— 状態確認 - ▸
kubectl logs -f <pod>— ログのストリーミング - ▸
kubectl exec -it <pod> -- bash— コンテナに入る - ▸
kubectl rollout undo deployment web— ロールバック
🤖 AI にこう頼んでみよう
このレッスンの概念を理解していれば、AI に具体的かつ的確な指示を出せます。漠然とした「直して」ではなく、語彙を持った依頼 — それがトークン節約の第一歩です。
- ▸「このプロジェクトの GitHub Actions ワークフロー(lint + test + deploy)を作って」
- ▸「このアプリを Kubernetes の deployment + service + ingress の YAML に変換して」
なぜこれがトークンを減らすのか
概念を知らないと、AI の回答をもらっても 「それって何ですか?」 と再度聞き直す羽目になります。その「聞き直し」がトークンを消費します。概念を一度しっかり覚えておけば、会話が一度で完結します。
先に読むとよい概念: Docker — コンテナ・イメージ・Dockerfile