メインコンテンツまでスキップ

Cursor での Kubernetes と DevOps:決定的ガイド

Cursor での Kubernetes と DevOps

Kubernetes は、現代のクラウドネイティブインフラの基石です。YAML マニフェスト、Helm チャート、およびコンテナデプロイメントの管理には、精度と反復が求められます。Cursor は、スキーマ認識型 YAML 編集、AI マニフェスト生成、kubectl 統合、および DevOps ワークフローのインテリジェントなデバッグで、この体験を変革します。


Cursor での DevOps 環境のセットアップ​

適切に設定された環境は、Kubernetes リソースを効率的に管理するために不可欠です。Cursor は、YAML、シェルスクリプト、およびコンテナツーリングに必要なツールを提供します。

必要なツールのインストール​

以下のツールがインストールされ、Cursor のターミナルからアクセス可能であることを確認してください:

kubectl version --client
helm version
docker --version

ツールが欠けている場合は、パッケージマネージャーまたは公式インストーラーを介してインストールしてください。kubectl をクラスターに接続するように構成します:

kubectl config current-context
kubectl get nodes
ヒント

異なる環境(開発、ステージング、本番)用に複数の kubeconfig ファイルを使用してください。Cursor のターミナルで KUBECONFIG 環境変数を設定して、コンテキストを迅速に切り替えます。

DevOps 用の拡張機能のインストール​

これらの拡張機能で Cursor を強化します:

  • YAML:Kubernetes マニフェストのスキーマ検証、フォーマット、および自動補完
  • Kubernetes:サイドバーからクラスターリソースの表示、ログのストリーミング、ポートフォワーディング
  • Docker:イメージ、コンテナ、およびレジストリの管理
  • Helm:Helm テンプレートと値ファイルの IntelliSense
警告

Kubernetes 拡張機能には有効な kubeconfig が必要です。接続エラーが表示された場合は、拡張機能のトラブルシューティングを行う前に、ターミナルからコンテキストとクラスターアクセシビリティを確認してください。

YAML と Shell 向けの Cursor 設定​

最適な DevOps 編集のためにこれらの設定を追加します:

{
"yaml.schemas": {
"kubernetes": "*.yaml"
},
"yaml.format.enable": true,
"editor.tabSize": 2,
"editor.insertSpaces": true,
"files.associations": {
"*.tpl": "helm"
},
"terminal.integrated.defaultProfile.windows": "PowerShell"
}

これらの設定により、Kubernetes スキーマ検証、一貫したインデント、および Helm テンプレートの適切なシンタックスハイライトが有効になります。


YAML 編集と検証​

Kubernetes は YAML を話し、Cursor はそれを流暢に話します。スキーマ検証、インテリジェントな補完、および AI 生成により、エラーが減り、マニフェストの作成が加速します。

スキーマ認識型 YAML 補完​

Kubernetes リソースの入力を開始すると、Cursor は公式の OpenAPI スキーマに基づいて有効なフィールドを提案します:

apiVersion: apps/v1
kind: Deployment
metadata:
name: web-application
labels:
app: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.25-alpine
ports:
- containerPort: 80
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
ヒント

任意のフィールドにカーソルを合わせると、インラインで Kubernetes API ドキュメントが表示されます。これにより、公式ドキュメントへの頻繁なアクセスが不要になります。

デプロイ前のマニフェスト検証​

クラスターに到達する前にエラーを捕捉します。Cursor のターミナルを使用してマニフェストを検証します:

kubectl apply --dry-run=client -f deployment.yaml
kubectl apply --dry-run=server -f deployment.yaml

--dry-run=server フラグは、実際のクラスター API サーバーに対して検証を行い、クライアント側の検証では見逃す名前空間やクォータの問題を捕捉します。

警告

Dry-run は、実際のデプロイ中にマニフェストを拒否する可能性のある webhook やアドミッションコントローラーを検証しません。常に非本番環境で最初にテストしてください。

マルチリソース YAML ファイル​

ドキュメントセパレーターを使用して、関連するリソースを単一のファイルに整理します:

---
apiVersion: v1
kind: Namespace
metadata:
name: production
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: production
name: api-server
# ...
---
apiVersion: v1
kind: Service
metadata:
namespace: production
name: api-service
# ...

Cursor の YAML 拡張機能は、各ドキュメントを独立して検証し、関連セクションに対してのみエラーを表示します。


AI マニフェスト生成​

ゼロから Kubernetes マニフェストを書くのは面倒です。Cursor の AI は、自然言語の説明から完全で検証済みのリソースを生成します。

Deployment と Service の生成​

アプリケーションを記述し、Cursor にマニフェストを生成させます:

Node.js アプリの Deployment を作成し、2 つのレプリカ、
ポート 3000 で公開し、LoadBalancer Service を追加。
リソース制限と /health のライブネスプローブを含める。

Cursor が出力:

apiVersion: apps/v1
kind: Deployment
metadata:
name: nodejs-app
spec:
replicas: 2
selector:
matchLabels:
app: nodejs-app
template:
metadata:
labels:
app: nodejs-app
spec:
containers:
- name: app
image: nodejs-app:latest
ports:
- containerPort: 3000
resources:
limits:
memory: "512Mi"
cpu: "500m"
requests:
memory: "256Mi"
cpu: "250m"
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 10
periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: nodejs-service
spec:
type: LoadBalancer
selector:
app: nodejs-app
ports:
- protocol: TCP
port: 80
targetPort: 3000

ConfigMap と Secret の生成​

設定と機密データを管理します:

apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
database_url: "postgres://db:5432/myapp"
log_level: "info"
max_connections: "100"
---
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
stringData:
username: admin
password: supersecretpassword
ヒント

プレーンテキストの Secret をバージョン管理にコミットしないでください。sealed-secrets、external-secrets、またはシークレット管理ツールを使用してください。暗号化ワークフローを説明すると、Cursor は SealedSecret マニフェストを生成できます。

ネットワークポリシーと RBAC​

セキュリティ強化されたクラスターの場合、Cursor は NetworkPolicy と RBAC ルールを生成します:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: api-isolation
namespace: production
spec:
podSelector:
matchLabels:
app: api-server
policyTypes:
- Ingress
- Egress
ingress:
- from:
- namespaceSelector:
matchLabels:
name: frontend
ports:
- protocol: TCP
port: 8080
egress:
- to:
- podSelector:
matchLabels:
app: database
ports:
- protocol: TCP
port: 5432

Helm チャート開発​

Helm は Kubernetes のパッケージマネージャーです。Cursor のテンプレートサポートと AI 支援により、チャートの作成とメンテナンスが効率的になります。

チャート構造とテンプレート​

Helm チャートは次の構造に従います:

mychart/
Chart.yaml
values.yaml
templates/
_helpers.tpl
deployment.yaml
service.yaml
ingress.yaml
charts/

Cursor は、Helm テンプレート関数と値の参照に対して IntelliSense を提供します。{{ .Values. }} と入力すると、Cursor は values.yaml から利用可能なキーを提案します。

AI 生成の Helm テンプレート​

Cursor に、静的マニフェストを再利用可能な Helm テンプレートに変換させます:

この Deployment を、values.yaml からレプリカ数、
イメージタグ、およびリソース制限を受け取る Helm テンプレートに変換

Cursor が生成:

{{- define "mychart.deployment" -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "mychart.fullname" . }}
labels:
{{- include "mychart.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "mychart.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "mychart.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- end }}

Values ファイルの管理​

デフォルト値とドキュメントを備えたクリーンな values ファイルを維持します:

# mychart のデフォルト値
replicaCount: 1

image:
repository: nginx
pullPolicy: IfNotPresent
tag: ""

resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi

autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
警告

数値やブール値として解釈される可能性のある文字列値は常に引用符で囲んでください。引用符なしの yes、no、または 1.10 は、Helm テンプレートで予期しない型強制を引き起こす可能性があります。


kubectl 統合とクラスター操作​

Cursor のターミナルは、クラスターへのゲートウェイです。kubectl コマンドの実行、ログの表示、リソースの管理を、エディタを離れることなく行えます。

必須の kubectl ワークフロー​

ターミナルから直接マニフェストをデプロイします:

kubectl apply -f k8s/
kubectl rollout status deployment/web-application
kubectl get pods -l app=web -w

デバッグのためにログをストリーミングします:

kubectl logs -f deployment/web-application --all-containers=true
kubectl logs -f pod/web-app-7d9f4b8c5-x2z9a -c nginx
ヒント

kubectl get events --sort-by='.lastTimestamp' -w を使用して、クラスターイベントをリアルタイムで監視します。これは、多くの場合、Pod ログよりも迅速にスケジューリング、イメージプル、またはリソース制約の問題を明らかにします。

ポートフォワーディングとデバッグ​

開発用にローカルでクラスターサービスにアクセスします:

kubectl port-forward svc/database 5432:5432
kubectl port-forward pod/debug-pod 8080:8080

インタラクティブなデバッグのために、デバッグツールを備えた一時的な Pod を生成します:

kubectl run debug --rm -it --image=nicolaka/netshoot -- /bin/bash

コンテキストと名前空間の管理​

コンテキストを切り替え、デフォルトの名前空間を設定して、意図しない変更を回避します:

kubectl config use-context staging
kubectl config set-context --current --namespace=production

Cursor では、これらをシェルエイリアスやスクリプトとして追加し、ワンコマンドでコンテキストを切り替えます。


高度な DevOps ワークフロー​

基本的なマニフェスト編集を超えて、Cursor は Infrastructure as Code、CI/CD パイプライン、および GitOps ワークフローをサポートします。

Terraform と Infrastructure as Code​

Terraform でクラスターをプロビジョニングする場合、Cursor の HCL 拡張機能はシンタックスハイライトと検証を提供します。AI チャットを使用して Terraform モジュールを生成します:

resource "kubernetes_deployment" "app" {
metadata {
name = "web-application"
labels = {
app = "web"
}
}

spec {
replicas = 3

selector {
match_labels = {
app = "web"
}
}

template {
metadata {
labels = {
app = "web"
}
}

spec {
container {
image = "nginx:1.25"
name = "nginx"

port {
container_port = 80
}
}
}
}
}
}

CI/CD パイプラインの生成​

Cursor は、人気のあるプラットフォーム用の CI/CD 構成を生成します。Kubernetes デプロイメント用の GitHub Actions ワークフローは次のようになります:

name: Deploy to Kubernetes

on:
push:
branches: [main]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up kubectl
uses: azure/setup-kubectl@v3

- name: Configure kubeconfig
run: echo "${{ secrets.KUBECONFIG }}" | base64 -d > kubeconfig

- name: Deploy manifests
run: |
export KUBECONFIG=kubeconfig
kubectl apply -f k8s/
kubectl rollout status deployment/web-app
警告

生の kubeconfig ファイルをバージョン管理にコミットしないでください。CI/CD 認証にはシークレット管理と短期間のトークンを使用してください。

Argo CD による GitOps​

GitOps ワークフローの場合、Cursor は Argo CD Application マニフェストの記述を支援します:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: production-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/myorg/gitops-repo.git
targetRevision: HEAD
path: overlays/production
destination:
server: https://kubernetes.default.svc
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

まとめ​

Cursor は、Kubernetes および DevOps 実践者にとって強力なツールです。インテリジェントな YAML 編集、AI マニフェスト生成、Helm テンプレートサポート、およびシームレスな kubectl 統合を組み合わせることで、Cursor はクラウドネイティブインフラの管理における認知的負荷を軽減します。早期に dry-run で検証し、AI で安全なデフォルトを生成し、マニフェストは常にバージョン管理してください。シンプルな Web アプリをデプロイする場合でも、マルチクラスター GitOps プラットフォームを管理する場合でも、Cursor はコードから本番への道を加速します。