|
[[333142]] [51CTO.comからのオリジナル記事] K9sは、Kubernetesクラスターとの対話を可能にするターミナルベースのUIです。K9sは、デプロイされたアプリケーションのナビゲーション、監視、管理のプロセスを簡素化することを目的としています。K9sはKubernetesへの変更を継続的に監視し、監視対象のリソースと対話するための後続コマンドを提供します。 特徴 - Kubernetes クラスターで実行されているリソースのリアルタイム アクティビティを追跡します。
- Kubernetes の標準リソースとカスタム リソース定義を処理します。
- ポッド、コンテナ、ノードなどのリソースに関連するリアルタイムのメトリックを追跡します。
- ログ、スケーリング、ポート転送、再起動などの標準的なクラスター管理コマンドを提供します。
- エイリアスとホットキーを使用してコマンドのショートカットをカスタマイズします。
- 独自のクラスター コマンドを作成するために K9s プラグインを拡張することをサポートします。
- 強力なフィルタリング モード: ユーザーが自分のワークロードに関連するリソースをドリルダウンして表示できるようにします。
- エラー増幅: クラスター リソースの問題を直接詳細に把握します。
- カスタマイズ可能な外観
- K9s スキンを使用してターミナルの外観を定義します。
- リソースごとに表示される列をカスタマイズ/配置します。
- 最小または完全なリソース定義を表示するための切り替えを提供します。
- Pulse および XRay ビューを通じてクラスター リソースの概要を提供します。
- RBAC
- クラスター/ロールやそれらに関連付けられたバインディングなどの RBAC ルールの表示をサポートします。
- 逆引き参照は、ユーザー/グループまたは ServiceAccount がクラスター上で何ができるかをアサートします。
- K9s に組み込まれているベンチマークから HTTP サービス/ポッドを直接ベンチマークして、アプリケーションのパフォーマンスを確認し、それに応じてリソース要求/制限を調整できます。
- K9s は、Kubernetes リソースとその関連リソースを走査するための便利な方法を提供します。
インストール K9sはLinux、macOS、Windowsプラットフォームで使用できます。K9sの公式ドキュメントは非常にシンプルなので、ここでは詳しく説明しませんので、直接参照してください。 注文 K9sはKubernetesクラスターの表示と管理のためのCLIです。一緒に使い方を学び、その便利さとパワーを体験してみましょう。 ヘルプコマンド k9sヘルプ: 利用可能なすべてのCLIオプションを一覧表示します - # k9s ヘルプ
- K9s は、Kubernetes クラスターを表示および管理するためのCLIです。
- 使用法:
- k9s [フラグ]
- k9s [コマンド]
- 使用可能なコマンド:
- ヘルプコマンドに関するヘルプ
- info設定情報を印刷
- バージョン バージョン/ビルド情報を印刷
- フラグ:
- -A,
- -c,
- -h,
- -l,
- -n,
- -r,
-
- コマンドの詳細については、 「k9s [command] --help」を使用してください。
k9s info: K9s ランタイムに関する情報 (ログ、構成など) を取得します。 - # k9s 情報
- ____ __.________
- | |/ _/ __ _______
- | < \____ / ___/
- | | \ / /\___ \
- |____|__ \ /____//____ >
- \/ \/
- 設定: /root/.k9s/config.yml
- ログ: /tmp/k9s-root.log
- スクリーンダンプ: /tmp/k9s-screens-root
k9sバージョン: インストールされているK9sバージョンを確認します - # k9s バージョン
- ____ __.________
- | |/ _/ __ _______
- | < \____ / ___/
- | | \ / /\___ \
- |____|__ \ /____//____ >
- \/ \/
- バージョン: 0.19.7
- コミット: 46c2f31249b3b67a16659614bde179c481a547de
- 日付: 2020-05-23T17:18:49Z
起動コマンド k9s: k9sを開始 - # k9s を開始
- k9s
- # 指定された名前空間で K9s を実行する
- k9s -n マイクールンズ
- # K9s を実行し、ポッドビューの `pod command` で起動します
- k9s -c ポッド
- # デフォルト以外の KubeConfig コンテキストで K9s を起動する
- k9s
- # K9s を読み取り専用モードで起動します - すべての変更コマンド (削除、作成など) を無効にします
- k9s
ショートカットキー K9sは、ほとんどのK8sリソースを見つけるためにエイリアスを使用します。こちらがK9sの公式キーバインディングです。 ほとんどすべてはこの写真に載っています。でも、使い方がわからない場合はどうすればいいですか?ご安心ください。以下で一つずつ使い方を解説します。 Ctrl+a: 使用可能なすべてのリソースのエイリアスを表示します。 前述のk9sの機能紹介で述べたように、k9sには多くのショートカットキーとエイリアスが用意されています。これらのショートカットキーを使えば、k8sリソースのエイリアス(略称)を素早く確認でき、リソースへのアクセスが容易になり、作業効率が向上します。 最初の列は Kubernetes リソース名、2 番目の列は Kubernetes コンソールでのリソースの略語 (エイリアス)、3 番目の列はリソースが属するグループです。 ?: K9s が提供するコマンド コンソールのショートカット キーを表示します。 Esc: 戻る/終了。 初期のポッド インターフェースに戻ると、デフォルトの名前空間に 2 つのポッド リソースがあることがわかります。 /: フィルターモードに入る `/custom` と入力すると、現在のビュー内のリソースがフィルタリングされ、名前に文字列「custom」が含まれるすべてのポッドが検索されます。 :: コマンドラインモードに入る 表示したいリソース/リソースエイリアスを自由に入力できます。例: :deploy、:svc... 現在のクラスター内のすべての名前空間を表示するには、:ns と入力します。 結果ビュー: Kubernetes と同様に、:cm 名前空間、:cj 名前空間などの指定された名前空間内のリソースを表示できます。 cm zhangsan と入力すると、zhangsan 名前空間の下に次の configmap リソースが表示されます。 dyle: それぞれ yaml ログの編集を記述する これには、リソースの説明情報、YAMLファイル、ログの参照、そしてリソース情報の変更が含まれます。Kubernetesに精通している人なら誰でもこの作業はよく知っているので、ここで詳しく説明する必要はありません。 Ctrl+Z: リソースのエラーメッセージを素早く見つける
Ctrl+D: 選択した Kubernetes リソースを削除します。削除前にメッセージが表示されます。
Ctrl+K: プロンプトなしでリソースを直接削除します。
:q Ctrl c: K9sを終了 これは本当にすごい!ほんの少しの学習で(K9sは私がまとめたこの記事を1つ読むだけで十分です)、仕事の効率を一気に飛躍的に向上させることができます。 設定ファイル K9sは、ホームディレクトリの.k9sディレクトリ($HOME/.k9s/config.yml)に設定ファイルを保存します。このファイル内のフィールドを変更することで、K9sの現在のデフォルトのブートビューと名前空間情報を保存できます。以下に、設定ファイルの内容と各項目の意味と機能を示します。これらの値は、必要に応じて後で変更できます。 - # $HOME/.k9s/config.yml
- k9s:
- # UIのポーリング間隔を示します。デフォルト値は2秒です。
- リフレッシュレート: 2
- # K9sヘッダーを非表示にするにはtrueに設定します。デフォルトはfalseです。
- ヘッドレス: false
- # delete 、kill、editなどの変更コマンドを無効にするかどうかを示します。デフォルト値はfalseです。
- 読み取り専用: false
- # すべての端末がこれらの文字をサポートしているわけではないので、アイコンの表示を切り替えます。
- アイコンなし:偽
- # ログ設定
- ロガー:
- # 返される行数を定義します。デフォルトは100です。
- 尾: 200
- # ビューに表示できるログ行の総数を定義します。デフォルト値: 1000
- バッファ: 500
- # ログタイムラインを返す間隔を秒単位で指定します。デフォルト値は5分(秒)です。
- 秒数: 300
- # ログを表示するときに全画面モードに入ります。デフォルト値: false
- フルスクリーンログ: false
- # ログの改行を切り替えます。デフォルト値: false
- テキストラップ:偽
- # ログ行のタイムスタンプ情報を切り替えます。デフォルト値: false
- 表示時間:偽
- # 現在のkubeコンテキストを示します。デフォルトは現在のコンテキストです。
- 現在のコンテキスト: minikube
- # 現在のkubeクラスターを表します。デフォルトは現在のコンテキストクラスターです。
- 現在のクラスター: minikube
- # 各クラスターの名前空間とビューの設定に基づいた永続ストレージ。
- クラスター:
- クラスター1:
- 名前空間:
- アクティブ: クールリオ
- お気に入り:
- - カサンドラ
- -デフォルト
- ビュー:
- アクティブ: po
- 機能ゲート:
- # ノードシェルのサポートを切り替えます。必要に応じてK9sをノードにラップできるようにします。デフォルトはfalseです。
- ノードシェル: false
- # シェルポッドにカスタムゲート機能を有効にする機能を提供します
- シェルポッド:
- # 使用する Shell Pod イメージ。
- 画像: killerAdmin
- # Shell Pod の名前空間で開始します。
- 名前空間: fred
- # シェル コンテナーに設定されたリソース制限。
- 制限:
- CPU: 100m
- メモリ: 100Mi
- # ポート転送を開始するときに使用する IP アドレス。
- ポート転送アドレス: 1.2.3.4
- クラスター2:
- 名前空間:
- アクティブ:すべて
- お気に入り:
- -全て
- - kubeシステム
- -デフォルト
- ビュー:
- アクティブ: dp
カスタムコマンドエイリアス ここまで来たら、K9のすごいところをいくつか紹介しましょう。K9の基本をマスターしたら、次は自分だけのK9コマンドをカスタマイズしてみましょう!一緒に作ってみましょう。 設定ファイル config.yml と同じディレクトリ ($HOME/.k9s の下) に alias.yml という名前のファイルを作成します。 - # $HOME/.k9s/alias.yml
- エイリアス:
- # Podのエイリアスとしてppを使用する
- pp: v1/ポッド
- # ClusterRoleBindingの略語としてcrbを使用します
- crb: rbac. authorization .k8s.io/v1/clusterrolebindings
- # ClusterRoleの略語としてCRを使用する
- cr: rbac.認証.k8s.io/v1/clusterroles
- # デプロイメントのエイリアスとして dep を使用する
- dep: アプリ/v1/デプロイメント
- # カスタムリソースCRD Frederickの別名としてfredを使用する
- フレッド: acme.io/v1alpha1/fredericks
エイリアス/略語/短縮名は同じ意味を持ちますが、ここでは単に理解を容易にするために使用されています。 ショートカットキーをカスタマイズする 頻繁にアクセスするリソースを閲覧する場合、コマンドモードに入ってリソース名やエイリアスを入力するのは面倒です。ホットキーを利用することで、K9s から K8s リソースに素早くアクセスできるように設定できます。 同様に、$HOME/.k9s ディレクトリに /hotkey.yml という名前のファイルを作成して、独自のキーボード ショートカットをカスタマイズすることもできます。 - # $HOME/.k9s/hotkey.yml
- ホットキー:
- # Shift + 0 を押してポッドビューに移動します
- シフト0:
- ショートカット: Shift-0
- 説明: ポッドの表示
- コマンド: ポッド
- # Shift + 0 を押してデプロイメントビューに移動します
- シフト1:
- ショートカット: Shift + 1
- 説明: デプロイメントを表示
- コマンド: dp
- # Shift + 0 を押して Xray デプロイメント ビューに移動します
- シフト2:
- ショートカット: Shift + 2
- 説明: XRayデプロイメント
- コマンド: xray deploy
同様に、この方法でプラグインをカスタマイズしてK9sを拡張することもできます。$HOME/.k9sディレクトリにplugin.ymlというファイルを作成することで実現できます。魚を与えるよりも、魚の釣り方を教える方が効果的です。公式ドキュメントを参考に、ぜひご自身で試してみてください。私が方法をお伝えしたので、賢い人は「魚の釣り方」を学ぶべきです。 一生懸命働くのではなく、賢く働くことが大切です。 著者: 張源輝 自己紹介:私は中科星図有限公司(北京)の研究開発部門バックエンド技術グループに勤務しています。Python/Java開発に精通し、フロントエンド開発の基礎知識を有しています。MySQLとMongoDBのスキルがあり、Redisについてもある程度の知識を持っています。Linux開発環境に精通し、Shellプログラミングに精通し、Gitソースコード管理の習慣も身についています。Nginx、Flask、Swagger開発フレームワークに精通しており、Docker+Kubernetesクラウドサービス開発の経験があります。人工知能とクラウドネイティブ技術に強い関心を持っています。 [これは51CTOからのオリジナル記事です。提携サイトへの転載の際は、原著者と出典を51CTO.comと明記してください。] |