Kubernetes
https://raw.githubusercontent.com/kubernetes/kubernetes/master/logo/logo.svg
オブジェクト
k8s でのコンピューティングやストレージなどのリソースを制御するための単位。
ポッド (Pod)
スケジューリングの基本となる単位。1ポッドは1以上のコンテナから構成される。
おなじボリュームを共有して動作するポッドをサイドカーと呼ぶ ポッドをデプロイすると、クラスタ内で唯一のPod IPアドレスが割り振られるが、再起動すると再割当てがかかる。
特定のPodへのアクセスを永続化するにはサービスを利用する。
ConfigMap
設定の内容をコンテナからファイルシステム上で参照可能にする機能
Secrets
外部の秘匿すべきリソースに制限をかけた上でファイルシステム上から参照可能にする機能
サービス (Service)
いくつかのポッドの集まり
ボリューム (Volume)
コンテナ内のファイルシステムはデフォルトでは揮発性だが、永続化する手段を提供するのがボリューム
ポッドが生存する間はデータが削除されない特性を持つ
同じポッド内で複数のコンテナ同士で共有することも可能
ネームスペース (Namespace)
リソースのパーティショニング機能を提供する
開発環境、テスト環境、本番環境などの用途に応じてネットワークを完全に分離することもできる。
スクラッチでクラスタを構築する
コマンドライン
実行中の Pod を一覧にする
code:sh
kubectl get pods
Pod でコマンドを実行する
code:sh
kubectl exec -it 'pod-name' /bin/bash
インタラクティブシェルを実行する場合は -it をつける
Pod のログを確認する
基本形: ログを確認する
code:sh
kubectl logs 'pod-name'
サイドカーを使用している場合は確認したいコンテナを選択する
code:sh
kubectl logs 'pod-name' 'sidecar-name'
もしくはすべてのコンテナを確認することを明示する
code:sh
kubectl logs 'pod-name' --all-containers=true
tail -f のようにストリーミングさせたいときは -f を設定
code:sh
kubectl logs -f 'pod-name'
リソースの詳細を確認する
get よりも細かな情報を表示する
code:sh
kubectl describe 'resource-type' 'resource-name'
# Pod の詳細を確認する場合
kubectl describe pods 'pod-name'