もっと詳しく

K9s は、Kubernetes管理を簡素化することを目的としたターミナルベースのUIです。 マニフェストを編集および適用する機能と便利なコンテキストメニューを組み合わせることで、明示的なものを覚えておく必要はほとんどありません。 kubectl コマンド。

K9Sがどのように機能するか知りたいですか? Kubernetesクラスターを操作しながら読み進めてください スタイリッシュに このK9sKubernetesCLIチュートリアルでは。

前提条件

このチュートリアルは、実践的なデモンストレーションになります。 フォローしたい場合は、以下の要件が必要になります。

  • KubernetesクラスターをホストするにはLinuxマシンが必要です。 このチュートリアルでは、 Fedora 35
  • Linuxコンピュータには ミニクベ ローカルのKubernetes用にすでにインストールされています。 このチュートリアルでは、この記事の最新バージョンであるv1.25.2を使用します。

K9sKubernetesCLIのインストール

これで、すべての前提条件が整った状態でK9sKubernetesCLIをインストールします。 K9をインストールする方法はいくつかあります。たとえば、ソースから、バイナリをダウンロードする方法、Linuxディストリビューションのパッケージマネージャーを使用する方法などです。

最も便利で普遍的な方法は webi、この例で実行します。 これを行うには、次の手順に従います。

1.お好みのSSHクライアントを使用してLinuxサーバーにログインします。

2.次に、以下のコマンドを実行して、webiスクリプトをダウンロードし、それをBashにパイプしてK9をインストールします。

curl -sS https://webinstall.dev/k9s | bash

以下に示すように、スクリプトはk9sをにインストールしました /home//.local/bin フォルダ。

3.以下のコマンドを実行して、K9のバージョンを確認し、コマンドが機能するかどうかを確認します。

この記事の執筆時点での最新バージョンはv0.25.18です。

K9sKubernetesターミナルバージョンの表示
K9sKubernetesターミナルバージョンの表示

4. K9sが機能していることを確認したら、以下のコマンドを実行して、Linuxコンピューターでデフォルトのテキストエディターを設定します。 nanoやemacsなど、別のデフォルトエディタを設定する場合は、viを置き換えます。

この手順は、K9sがK9sターミナルUI内で構成ファイルを編集するときに使用するテキストエディターを知るために重要です。

クラスターの開始とデプロイメントの作成

K9s Kubernetesツールはすぐに使用できますが、管理するクラスターがない場合は役に立ちません。 このセクションでは、Kubernetesクラスターを起動し、Webサービスをデプロイします。

1.次のminikubeコマンドを実行して、次のようにMinikubeクラスターを起動します。

ターミナルウィンドウの応答は、以下のスクリーンショットのようになります。

Minikubeクラスターの開始
Minikubeクラスターの開始

2.次に、次のコマンドを実行して、ApacheWebサーバーをKubernetesクラスターにデプロイします。

# (deployment) Deployment name    = httpd
# (--image) Base image            = httpd:latest
# (--replicas) Number of replicas = 2
kubectl create deployment httpd --image=httpd:latest --replicas=2

以下のスクリーンショットのような出力が表示され、コマンドが成功したことを確認します。

デプロイメントの作成

3.最後に、以下のコマンドを実行して、metrics-serverアドオンを有効にします。 この手順により、クラスターとデプロイメントのメトリックが確実に収集されます。

minikube addons enable metrics-server
メトリックサーバーアドオンの有効化
メトリックサーバーアドオンの有効化

パルスによるクラスターの監視

テストデプロイメントを作成し、メトリック収集を有効にしたので、K9でそれらを監視する方法を学習します。

K9Sには、クラスター全体の便利なダッシュボード機能があります。 パルス、デプロイメント、イベント、ポッドなどのチャートと統計が表示されます。次の段落の手順に従って、Pulseを使用してクラスターを監視する方法を確認してください。

1.以下のコマンドを実行して、デフォルトモードでKubernetesクラスターに接続します。

すべての名前空間のデプロイメントのリストが表示されます。 デプロイメントリストは、以下に表示されているものとは異なります。 以前に作成したhttpdデプロイメントに注目してください。

K9SKubernetesCLIの起動
K9SKubernetesCLIの起動

2.:pulsesコマンドを入力し、Enterキーを押してPulsesビューをアクティブにします。

パルスビューのアクティブ化
パルスビューのアクティブ化

パルスビューには、クラスターとその中で実行されているリソースに関する関連統計が表示されます。 たとえば、次のスクリーンショットは、クラスターに5つのデプロイメント、5つのレプリカセット、および12のポッドがあることを示しています。

K9Kubernetesパルスダッシュボードの探索
K9Kubernetesパルスダッシュボードの探索

3.メトリックを選択するには、そのオブジェクトに対応する番号を押します。 たとえば、以下に示すように、4を押してポッドを選択し、Enterキーを押してポッドビューに切り替えます。

パルスからポッドへの切り替え
パルスからポッドへの切り替え

すべての名前空間で実行中のポッドのリストが表示されます。 このリストには、ポッドのステータスと、CPUやメモリの使用量などのリソース統計が含まれます。

すべての名前空間にポッドを一覧表示する
すべての名前空間にポッドを一覧表示する

4. Escapeを押して、Pulsesビューに戻ります。

ポッドの検出と管理

素晴らしい! これで、クラスターで実行されているすべてのポッドのリストが作成されました。 このセクションでは、のポッドの管理タスクを分離して実行します httpd 展開。

1.:podコマンドを入力して、ポッドビューに切り替えます。

ポッドビューに切り替える
ポッドビューに切り替える

画面にすべての名前空間のすべてのポッドのリストが表示されます。

ポッドリスト
ポッドリスト

2.デフォルトメニューの対応する番号を押してリストをフィルタリングし、デフォルトの名前空間の下にあるポッドのみを表示します。 名前空間番号を押すと、以下に示すように、ポッドのリストが効果的にフィルタリングされます。

名前空間によるポッドのフィルタリング
名前空間によるポッドのフィルタリング

3.ポッドを名前空間でフィルタリングしたので、各ポッドを管理して、ポッドがどの名前空間に属しているかを把握し、混乱を避けることができます。

たとえば、リストの最初のポッドを強調表示し、dを押してポッドの詳細を画面に表示します。 このアクションは、 kubectl describe 指図。

K9sKubernetesCLI内にポッドの情報を表示する
K9sKubernetesCLI内にポッドの情報を表示する

4.ポッドリストに戻るには、Escキーを押します。

展開のスケーリング

デプロイメント内のレプリカの数を増減する必要がある場合は、通常、 kubectl scale コマンドを実行するか、構成を手動で編集します。 K9s CLIは、メニュー方式のインターフェースを使用して、デプロイメントのスケーリングをより便利にします。

1. K9sで以下のコマンドを入力し、Enterキーを押して[デプロイメント]ビューに切り替えます。

2. httpdデプロイメントを強調表示し、sを押してスケール構成ボックスを表示します。

スケーリング操作の開始
スケーリング操作の開始

3.デプロイメント内のレプリカの数を2から4に変更します。次に、矢印キーを使用してカーソルを[OK]に移動し、Enterキーを押して変更を適用します。

レプリカ数の設定
レプリカ数の設定

スケーリングの変更を適用した後、httpdデプロイメントには4つのポッドが含まれるはずです。

レプリカ数の表示
レプリカ数の表示

外部アクセス用のデプロイメントの公開

Kubernetesデプロイメントを公開するための最も一貫した方法の1つは、サービスマニフェストファイルを適用することです。 次の手順は、K9sKubernetesCLI内でマニフェストファイルを適用する方法を示しています。

1.別のターミナルウィンドウを開き、お好みのエディターを使用して/tmp/httpd-np.ymlという名前のYAMLファイルを作成します。 この例では、viをエディターとして使用しています。 viエディターが開いたら、iを押してINSERTモードに入ります。

2.次のYAMLディレクティブをコピーしてファイルに貼り付けます。 このディレクティブは、サービスを31337外部ポートに公開します。

apiVersion: v1
kind: Service
metadata:
  # Set a name below to be used to refer to the service that will be created
  name: httpd
spec:
  type: NodePort
  selector:
    # Supply the name of the deployment below
    app: httpd
  ports:
      # By default and for convenience, the `targetPort` is set to the same value as the `port` field.
    - port: 80
      targetPort: 80
      # Optional field
      # If omitted the Kubernetes control plane will allocate a port from a range (default: 30000-32767)
      nodePort: 31337

この時点で、ファイルは以下のスクリーンショットのようになっているはずです。次の手順を実行する前に、Escapeキーを押してINSERTモードを終了します。

サービスマニフェストファイルの作成
サービスマニフェストファイルの作成

3.:wqコマンドを入力し、Enterキーを押して、エディターを保存して終了します。

4. K9Sターミナルに戻り、:dir /tmp/と入力します。 そうすることで、K9がディレクトリビューに切り替わります。 ご覧のとおり、作成したファイルhttpd-np.ymlがリストにあります。

K9sでディレクトリを一覧表示する
K9sでディレクトリを一覧表示する

5.カーソルをhttpd-np.ymlファイルに移動し、aを押してマニフェストを適用します。

K9sKubernetesにマニフェストを適用する
K9sKubernetesにマニフェストを適用する

6.最後に、ブラウザでWebアドレスhttp:// :external_portを開いてサービスをテストします。 この例では、Webアドレスは http://192.168.49.2:31337

Webブラウザを介したWebサービスへのアクセス
Webブラウザを介したWebサービスへのアクセス

別の方法として、別のターミナルウィンドウで以下のコマンドを実行します。

curl http://192.168.49.2:31337

下の画像と同様の結果が得られるはずです。

cURLを使用したWebサービスのテスト
cURLを使用したWebサービスのテスト

X線で深く掘り下げる

一度に1つのリソースクラスでクラスターを探索することをお勧めします。 ただし、K9SのXray機能を使用すると、単一のツリービューで別のリソースを構成するすべてのリソースを探索できます。

入力します :xray すべてのサービスを表示するコマンド(svc)とその構成リソース。

一目で、デフォルトの名前空間に2つのサービスがあることに気付くでしょう。 httpdkubernetes また、4つのhttpdベースのコンテナがに接続されていることもわかります。 httpd サービス。

X線によるサービスツリーの表示
X線によるサービスツリーの表示

タイプa ? X線の助けを得る。 少なくとも、初心者にとってすべてのアイコンが何を意味するのかを理解することができます。 また、 GENERALNAVIGATION キーバインディング。

ヘルプの表示
ヘルプの表示

クラスタリソースのログとイベントの表示

ログとイベントは、容量の計画またはトラブルシューティングのために、実行中のクラスターの状態を理解するための強力な方法です。 Xrayビューから始めて、このセクションでは、ログ、イベント、およびクラスターメトリックを表示するK9Sの機能について説明します。

1.カーソルをhttpdツリーノードの下の最初のポッドに移動します。

ポッドの選択
ポッドの選択

2.以下に示すように、lを押してコンテナのログを表示します。 直前に到着したログエントリが表示されます [1m]。

デフォルトモードでのポッドのログの表示
デフォルトモードでのポッドのログの表示

3. 0を押してテールモードに切り替え、最近のすべてのログエントリを表示します。

テールログモードへの切り替え
テールログモードへの切り替え

クラスターの現在の状態の説明

次の手順でクラスターの状態を説明することにより、クラスターの状態に関する詳細情報を見つけることもできます。

1.タイプ :node Enterキーを押してに切り替えます ノード 見る。

2. dを押して、リストで現在強調表示されているクラスターを説明します。

クラスターの説明
クラスターの説明

クラスタ固有のパラメータとその状態のリストが表示されます。

クラスターの詳細の表示
クラスターの詳細の表示

3.[条件]セクションまで下にスクロールして、ディスクやメモリの負荷などの重要なメトリックの状態を表示します。 以下のスクリーンショットでは、クラスターにアラーム状態がないことがわかります。

重要なリソースメトリックの状態の表示
重要なリソースメトリックの状態の表示

4.[イベント]までスクロールして、クラスター上のイベントの要約ログを表示します。 この例は、ポートバインディングに関する警告が1つあることを示しています。 クラスタリソースの問題をトラブルシューティングするときに、この機能がどのように優れたエントリポイントになるかを確認できます。

イベントの表示
イベントの表示

結論

このチュートリアルを終了することで、K9S Kubernetes CLIをインストール、構成、操作して、できるだけ少ないキーストロークでKubernetesクラスターを管理する方法を学びました。 他の新しいツールと同様に、K9にも当てはまる学習曲線が常にあります。

しかし、長期的には、K9sのメニュー方式のグラフィカルインターフェイスは、ターミナルで手動で実行されているコマンドよりも確実に優れています。 これで、PostgresをKubernetesクラスターにデプロイし、K9Sマッスルをフレックスしてそのデプロイを管理できるようになりました。

The post K9SKubernetesCLIを使用した簡単な管理 appeared first on Gamingsym Japan.