CheatSheet
日本語 icon日本語English iconEnglish
チートシートとはカンニングペーパーのことです。それが転じて、本来覚えることをまとめておいたものです。
要点をすぐに参照できるようにまとめてみました。

Kubernetes

エンジニアのためのWebチートシート

Kubernetes(K8s)は、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するためのオーケストレーションシステムです。 kubectlコマンドやYAMLマニフェストの基本をチートシートにまとめました。

クラスタ情報

コマンド説明
kubectl cluster-infoクラスタのエンドポイントとサービス情報を表示します。
kubectl get nodesクラスタ内のノード一覧を表示します。
kubectl versionクライアントとサーバーのKubernetesバージョンを表示します。
kubectl api-resources利用可能なAPIリソースの一覧を表示します。
kubectl config get-contexts設定されたコンテキストの一覧を表示します。
kubectl config current-context現在のコンテキストを表示します。

Pod

コマンド説明
kubectl get pods現在のNamespace内のPod一覧を表示します。
kubectl get pods --all-namespaces全NamespaceのPod一覧を表示します。
kubectl get pods -o wideIPやノード情報を含む詳細なPod一覧を表示します。
kubectl describe pod [pod-name]指定したPodの詳細情報を表示します。
kubectl logs [pod-name]指定したPodのログを表示します。
kubectl logs -f [pod-name]ログをリアルタイムで追跡します。
kubectl logs [pod-name] --previous前回のコンテナのログを表示します(クラッシュ時に有用)。
kubectl exec -it [pod-name] -- /bin/shPod内でインタラクティブなシェルを起動します。
kubectl delete pod [pod-name]指定したPodを削除します。
kubectl port-forward [pod-name] 8080:80ローカルポートをPodのポートに転送します。
kubectl run [name] --image=[image]一時的なPodを作成して実行します。
kubectl get pod [pod-name] -o yamlPodのYAMLマニフェストを表示します。

Deployment

コマンド説明
kubectl apply -f deployment.yamlYAMLファイルからDeploymentを作成します。
kubectl get deploymentsDeployment一覧を表示します。
kubectl describe deployment [name]Deploymentの詳細情報を表示します。
kubectl scale deployment [name] --replicas=3レプリカ数を変更してスケーリングします。
kubectl set image deployment/[name] [container]=[image]:[tag]コンテナイメージを更新します。
kubectl rollout status deployment/[name]ロールアウトのステータスを確認します。
kubectl rollout history deployment/[name]ロールアウトの履歴を表示します。
kubectl rollout undo deployment/[name]前のリビジョンにロールバックします。
kubectl delete deployment [name]Deploymentを削除します。

Service

Serviceタイプ

Type説明
ClusterIPクラスタ内部のみからアクセス可能な仮想IPを割り当てます(デフォルト)。
NodePort各ノードの固定ポートでServiceを外部に公開します(30000-32767)。
LoadBalancerクラウドプロバイダのロードバランサーを使って外部に公開します。

コマンド

コマンド説明
kubectl expose deployment [name] --port=80 --type=LoadBalancerリソースをServiceとして公開します。
kubectl get servicesService一覧を表示します。
kubectl describe service [name]Serviceの詳細情報を表示します。
kubectl delete service [name]Serviceを削除します。

ConfigMap & Secret

ConfigMap

コマンド説明
kubectl create configmap [name] --from-literal=key=valueリテラル値からConfigMapを作成します。
kubectl create configmap [name] --from-file=path/to/fileファイルからConfigMapを作成します。
kubectl get configmapsConfigMap一覧を表示します。
kubectl describe configmap [name]ConfigMapの詳細情報を表示します。

Secret

コマンド説明
kubectl create secret generic [name] --from-literal=key=valueリテラル値からSecretを作成します。
kubectl create secret generic [name] --from-file=path/to/fileファイルからSecretを作成します。
kubectl get secretsSecret一覧を表示します。
kubectl describe secret [name]Secretの詳細情報を表示します。

Namespace

コマンド説明
kubectl create namespace [name]新しいNamespaceを作成します。
kubectl get namespacesNamespace一覧を表示します。
kubectl config set-context --current --namespace=[name]デフォルトのNamespaceを切り替えます。
kubectl get all -n [namespace]指定したNamespace内のリソースを表示します。
kubectl delete namespace [name]Namespaceを削除します(内部のリソースも全て削除されます)。

YAMLマニフェスト

Pod定義

  • apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
      labels:
        app: my-app
    spec:
      containers:
        - name: my-container
          image: nginx:1.25
          ports:
            - containerPort: 80
          resources:
            requests:
              memory: "64Mi"
              cpu: "250m"
            limits:
              memory: "128Mi"
              cpu: "500m"

Deployment定義

  • apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-app
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
        spec:
          containers:
            - name: my-app
              image: my-app:1.0.0
              ports:
                - containerPort: 8080
              env:
                - name: DB_HOST
                  valueFrom:
                    configMapKeyRef:
                      name: app-config
                      key: db-host
                - name: DB_PASSWORD
                  valueFrom:
                    secretKeyRef:
                      name: app-secret
                      key: db-password

Service定義

  • apiVersion: v1
    kind: Service
    metadata:
      name: my-app-service
    spec:
      type: LoadBalancer
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8080
コマンド説明
kubectl apply -f [file.yaml]YAMLファイルを適用してリソースを作成・更新します。
kubectl delete -f [file.yaml]YAMLファイルで定義されたリソースを削除します。
kubectl apply -f [file.yaml] --dry-run=client実際に適用せず、マニフェストの検証のみ行います。

トラブルシューティング

コマンド説明
kubectl logs [pod-name] -c [container-name]Podのログを確認します(複数コンテナの場合は-cでコンテナ名を指定)。
kubectl describe [resource] [name]リソースの詳細情報とイベントを確認します。
kubectl get events --sort-by=.metadata.creationTimestampクラスタ内の最近のイベントを時系列で表示します。
kubectl top nodesノードのCPU・メモリ使用量を表示します。
kubectl top podsPodのCPU・メモリ使用量を表示します。
kubectl debug [pod-name] -it --image=busyboxデバッグ用の一時的なコンテナをPodにアタッチします。
kubectl get events -n [namespace]名前空間内のイベントを時系列で表示します。
kubectl exec -it [pod-name] -- nslookup [service-name]実行中のPod内でコマンドを実行してネットワークやDNSを確認します。

引用・参考リンク

Related Goods

  • Dockerでつまづいてしまった人も、この一冊を読み込めば理解できる!
初心者向けに基礎からわかりやすく解説しています。
    Dockerでつまづいてしまった人も、この一冊を読み込めば理解できる! 初心者向けに基礎からわかりやすく解説しています。
    詳細をみる
  • Docker/Kubernetesの基礎から実際にアプリケーションを作るまでを解説した入門書。
実践的な運用ノウハウまでカバー。
    Docker/Kubernetesの基礎から実際にアプリケーションを作るまでを解説した入門書。 実践的な運用ノウハウまでカバー。
    詳細をみる
  • ケーブルに取り付け可能なTypeCとLightningの変換アダプタです。
スタイリッシュなデザインで、Apple製品との相性抜群です。
    ケーブルに取り付け可能なTypeCとLightningの変換アダプタです。 スタイリッシュなデザインで、Apple製品との相性抜群です。
    詳細をみる
  • お気に入りのサウンドデバイスをすぐ取り出せる位置にディスプレイさせておくことができます。
    お気に入りのサウンドデバイスをすぐ取り出せる位置にディスプレイさせておくことができます。
    詳細をみる

WebTerm - Recommended tools

WebTermは、ブラウザでLinuxコマンド・Gitコマンドを安全に実行でき、チュートリアル式で学べるターミナルサンドボックスです。
AIコーディングツールの普及に伴い、CLIの基礎知識を身につける重要性は増しています。実際のターミナルを操作するのに抵抗がある方でも、WebTermはローカル環境を壊す心配がありません。「会員登録不要・無料」で利用でき、学習環境として最適です。

WebTerm Logo

WebTerm

Browser Terminal Sandbox for Learning CLI

開く

All Cheatsheets

エンジニア・プログラマー向けの便利なチートシートを多数まとめています(SP/Tablet/PC対応)
すべてのチートシートを見る