kubernetes(k8s) 覚書
用語
項目名 | 内容 |
---|---|
Pod | コンテナの管理やネットワーキングの目的でまとめられた、1 つ以上のコンテナのグループ |
Service | Pod を外部に公開する |
Deployment | Pod の作成。スケーリング管理。アプリケーション管理 |
Job | 使い捨ての Pod を作成して任意のイメージでコマンドを実行 |
Operator | 独自のリソースを追加して k8s を拡張する |
Resource | k8s の文脈では、Pod、Deployment など |
CRD(Custom Resource Definitions) | カスタムリソース定義 |
Custom Controller | Custom Resource の制御を行う |
ソリューション・ケーススタディ
- 開発などの用途でローカルに k8s 環境を作る
- 使い捨ての Pod で処理を実行する
- ロールアウト(自動的に、段階的にデプロイ)、ロールバックの管理をする
- ローカルストレージや ネットワークストレージ、クラウドストレージなどをマウントする
- 環境変数やコマンドライン引数を管理する
- パスワードなどの機密データを管理する
Tool
名称 | 内容 |
---|---|
kubeflow | ワークフローの自動化 |
krew | プラグインマネージャ |
k9s | CUI |
Lens | Desktop IDE |
Helm | パッケージ管理 |
kompose | k8s 上で docker-compose を実行 |
kube-ops-view | モニタリングツール |
プラグイン
名称 | 内容 |
---|---|
stern | Pod の tail 出力を簡単に行う |
kubectl-iexec | 実行中の Pod を一覧して Shell 接続する |
kubectl-view-allocations | リソース割当の一覧表示 |
kubectl-images | Pod が使用している Image を一覧表示 |
ksniff | tcpdump と Wireshark を利用して、任意の Pod のリモートキャプチャを開始する |
kubie | 複数のシェルで異なるコンテキストを扱える。多くのクラスタの操作が必要な場合に重宝する |
kubectl-tree | ownerReferences を通して、オブジェクト間の所有関係を調べる。 |
kube-capacity | Kubernetes クラスタのリソース要求、制限、および利用の概要を提供する |
Link
CLI
-
kubectl
- create : 作成
- deployment
- delete : 削除
- deployment
- pod
- service
- get : 一覧取得
- deployment
- pods
- events
- services
- describe : 内容記述
- deployment/
- pods/
- set : 指定した機能をオブジェクトに設定
- image: コンテナイメージをセット。
- deployments/
- image: コンテナイメージをセット。
- rolloout : ローリングアップデート
- undo : ロールバック
- deployments/
- undo : ロールバック
- scale
- deployment/ : スケールする(Pod を増減させる)
-
--replicas
: Pod 数
-
- deployment/ : スケールする(Pod を増減させる)
- config
- view : 設定を閲覧
- set : 設定変更
- memory
- expose : Service の作成
- deployment
-
--type
- ClusterIP :プライベート IP でクラスタ内部にのみ公開
- NodePort : NAT で公開
- LoadBalancer : ロードバランサで公開
- ExternalName : FQDN と Kube-DNS で公開
--port
-
- deployment
- cluster-info : クラスタ情報
- port-forward : ポートフォワーディング
- service/
- --address
- service/
- proxy : API アクセス用プロキシ
- attach : コンテナにアタッチ
- exec : Pod にシェル接続
- label : Pod に名称をつける
- annotate : リソースのアノテーションを設定
- run : 指定したイメージをクラスターで実行
- explain : リソースに関するドキュメントを表示
- edit : リソースを編集
- autoscale : オートスケール
- certificate : 証明書を管理
- top : リソースの利用状況(上位)を表示
- cordon : ノードをスケジュール不可状態にする
- uncordon : ノードをスケジュール可能状態にする
- drain : ノードをメンテナンスモードにする
- taint : ノードにスケジュール制御のための Taint を設定/設定解除
- logs : Pod のログを表示
- cp : コンテナとのファイルコピー
- auth : 認可検査
- debug : でバッギングセッションを作成
- diff : 現バージョンと新バージョンの差異を表示
- apply : コンフィグレーション情報をリソースに設定
- patch : リソースの一部を変更
- replace : リソースを置換
- wait : リソースの状態待ち
- kustomize : カスタマイズターゲットを生成
- completion : シェル補完用コードを生成
- alpha : アルファバージョンのコマンドを表示
- api-resources : リソース種別の一覧を表示
- api-versions : API バージョンを表示
- plugin : プラグインを管理
- version : kubectl のバージョンを表示
- create : 作成
-
minikube
- start : クラスタ始動
- dashboard : GUI ダッシュボードにアクセス
- status : 状態取得
- service : サービスに接続するための URL を表示
- tunnel : LoadBarancer サービスに接続
- addons : アドオン一覧、追加、削除
- list
- enable
- disable
- logs : デバッグログを表示
- stop : クラスタ停止
- delete : 削除
- pause : 一時停止
- unpause : 再開
- image
- ls : イメージ一覧
- cache: イメージキャッシュの操作
- config : コンフィグ値を管理
- profile : プロファイルを表示
- update-context : IP アドレス・ポート番号変更時に Kubernetes を更新
- mount : minikube にディレクトリをマウント
- ssh : minikube に SSH ログイン
- node : ノードを管理
- cp : minikube にファイルをコピー
- ssh-key : 指定ノードの SSH 鍵パスを表示
- ssh-host : 指定ノードの SSH ホスト鍵を取得
- ip : 指定ノードの IP アドレスを表示
- update-check : minikube の最新バージョンを表示
- version : minikube のバージョンを表示
- options : minikube のオプションを管理
- license : ライセンスを表示
- completion : シェル補完用コードを生成