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 wide | IPやノード情報を含む詳細な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/sh | Pod内でインタラクティブなシェルを起動します。 |
| 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 yaml | PodのYAMLマニフェストを表示します。 |
Deployment
| コマンド | 説明 |
|---|---|
| kubectl apply -f deployment.yaml | YAMLファイルからDeploymentを作成します。 |
| kubectl get deployments | Deployment一覧を表示します。 |
| 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 services | Service一覧を表示します。 |
| 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 configmaps | ConfigMap一覧を表示します。 |
| 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 secrets | Secret一覧を表示します。 |
| kubectl describe secret [name] | Secretの詳細情報を表示します。 |
Namespace
| コマンド | 説明 |
|---|---|
| kubectl create namespace [name] | 新しいNamespaceを作成します。 |
| kubectl get namespaces | Namespace一覧を表示します。 |
| kubectl config set-context --current --namespace=[name] | デフォルトのNamespaceを切り替えます。 |
| kubectl get all -n [namespace] | 指定したNamespace内のリソースを表示します。 |
| kubectl delete namespace [name] | Namespaceを削除します(内部のリソースも全て削除されます)。 |
YAMLマニフェスト
Pod定義
Deployment定義
Service定義
| コマンド | 説明 |
|---|---|
| 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 pods | Podの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 Cheatsheets
- Docker-Dockerとはコンテナと呼ばれるOSレベルの仮想化環境を提供するソフトウェアです。近年、コンテナ化したアプリケーションのデプロイ、スケーリング、管理を行うためのコンテナオーケストレーションシステムであるKubernetesの採用事例も増え、ますますコンテナ仮想化技術は注目されています。 Dockerコマンドをチートシートにまとめました。
- GCP(Google Cloud Platform)-Google Cloud Platform(GCP)とは、Googleが提供しているクラウドコンピューティングサービスです。Google検索やYouTubeなどのサービスでも利用されています。GCPが提供するCLIツールのコマンドをチートシートにまとめてみました。
- HTTPステータスコード-HTTPステータスコードは、HTTPリクエストに対するサーバーの応答状態を示す3桁の数値コードです。 1xx〜5xxの各カテゴリと、よく使われるステータスコードをチートシートにまとめました。
Related Goods
WebTerm - Recommended tools
WebTermは、ブラウザでLinuxコマンド・Gitコマンドを安全に実行でき、チュートリアル式で学べるターミナルサンドボックスです。
AIコーディングツールの普及に伴い、CLIの基礎知識を身につける重要性は増しています。実際のターミナルを操作するのに抵抗がある方でも、WebTermはローカル環境を壊す心配がありません。「会員登録不要・無料」で利用でき、学習環境として最適です。

WebTerm
Browser Terminal Sandbox for Learning CLI
開く
All Cheatsheets
エンジニア・プログラマー向けの便利なチートシートを多数まとめています(SP/Tablet/PC対応)
すべてのチートシートを見る


