ステップ 1: Kubernetes サーバーを起動する
このステップでは、コンテナー内にポッドを含む minikube である Kubernetes サーバーを実行します。次のコマンドを実行して、minikube クラスターを実行できます。
~$ ミニキューブを起動するコマンドが実行されると、minikube ローカル クラスターがアプリケーションで実行されます。
Minikube は、VirtualBox を利用して、ローカルにアクセス可能な仮想マシンを構築します。コマンドやサービスを Kubernetes クラスターに迅速にデプロイできます。その後、minikube Kubernetes クラスターを使用してローカルでテストします。
ステップ 2: クラスター内のすべてのポッドとイメージのリストを表示する
これらすべてのコマンドを実行するには、Kubectl がローカル システムにインストールされている必要があります。このステップでは、クラスター内のポッドによって使用され、コンテナーに保存されているイメージのリストを表示する方法を学習します。 Kubectl コマンドライン ツールで次のコマンドを実行して、保存されているイメージのリストを取得できます。
~$ kubectl ポッドを取得する --all-namespaces -O jsonpath = '{range .items[]}{'\n'}{.metadata.name}{':\t'}{range .spec.containers[]}{.image}{', '}{end}{end }' | \> 選別
コマンドを実行すると、出力は次のスクリーンショットのように表示されます。
このコマンドは、クラスター内に存在するポッドのリストを取得し、このパスで見つかったすべてのイメージを取得します。画像が見つかった後、コマンドはこれらの画像をアルファベット順に並べ替えます。最後に、クラスター内に存在するイメージの数をカウントします。このコマンドは、JSON パス形式で出力を返します。コマンドの各部分について 1 つずつ説明していきます。
– -all-namespaces: Kubernetes クラスター内のすべての名前空間にあるポッドのリストを簡単に取得できます。ここでは、Pod のすべてのイメージが宣言されています。
– o jsonpath=’: このパラメータは出力の形式を指定します。 JSON パス形式は指定されたコマンドに従っており、ポッド名とコンテナー イメージ、および出力形式が表示されます。リストはタブで区切られており、各ポッドは新しい行を挿入して区切られます。
|: ご覧のとおり、コマンドでは「|」が使用されています。キャラクター。これは、出力を渡すコマンドに転送するために使用されます。
選別: このパラメータは、画像を特定の順序で並べ替えます。
これがコマンドの完全な説明です。このコマンドの目的を理解していただければ幸いです。スクリーンショットでわかるように、ポッドとイメージのリストがカンマで区切られて表示されます。
ステップ 3: 特定のポッドのイメージのリストを取得する
このステップでは、特定のポッド イメージの取得についてのみ学習します。この目的のために、JSON パス内のポッドの名前を指定するコマンドを再度実行します。次のコマンドを実行して、特定のポッドのイメージを取得します。
~$ kubectl ポッドを取得する --all-namespaces -O jsonpath = 「{.items[].spec.containers[].image}」 -l アプリ =nginxこのコマンドでは、「app=ngnix」という名前のポッドを使用します。
コマンドを実行すると、「app-ngnix」という名前のポッドで使用されるすべてのコンテナー イメージのリストが JSON パス出力形式で表示されます。
このようにして、Kubernetes アプリケーションのすべての名前空間にわたって特定のポッドによって使用されるイメージのリストを取得できます。
ステップ 4: クラスター内の特定の名前空間にあるイメージのリストを取得する
これは記事の 4 番目のステップであり、Kubernetes クラスター内の特定の名前空間に対するイメージのリストを取得する方法について学びます。 Kubectl コマンドライン ツールで次のコマンドを実行します。
~$ kubectl ポッドを取得する --名前空間 システムになる -O jsonpath = 「{.items[].spec.containers[].image}」このコマンドでは、Kubernetes クラスター内のポッドによって使用される名前が「kube-system」という名前空間のイメージを取得します。
コマンドの実行時に生成される出力には、イメージのリストが表示されます。スクリーンショットは次のとおりです。
出力の JSON パス形式は、コマンドを実行すると簡単に取得できます。出力の各行は、「kube-system」名前空間のポッドによって使用されるコンテナー イメージに近づきます。出力の形式は、コマンドで使用される JSON パス テンプレートによって示されます。この例では、「.items[].spec.containers [].image」テンプレートは、名前空間内の各ポッドによって使用されるコンテナー イメージを返します。
ステップ 5: Go テンプレートのすべての名前空間のイメージのリストを取得する
このステップでは、Kubernetes クラスター内の「go テンプレート」出力形式を使用するポッドによって使用されるすべての名前空間のイメージのリストを取得するプロセスを学習します。このために、次のコマンドを使用します。
~$ kubectl ポッドを取得する --all-namespaces -O ゴーテンプレート - レンプレート = 「{{range .ite ms}}{{range .spec.containers}}{{.image}} {{end}}{{end}}」出力に進む前に、コマンドのさまざまなパラメーターをどのように使用できるかを理解できるように、まずコマンドのパラメーターについて説明します。これまで説明したことのない新しいパラメータから始めることができます。
-o go-テンプレート: これは、出力形式が「go-template」表記に従っている必要があることを示しています。
– -template=”{{範囲。項目}} {{範囲。 spec.containers}}{{.image}} {{end}}{{end}}」: これにより、出力に使用されるテンプレートが提供されます。このテンプレートは、ポッドのリストを反復処理して、それぞれのコンテナー イメージを取得します。結果は、クラスター内のすべての名前空間のすべてのポッドで使用されるコンテナー イメージのスペース区切りのリストです。
前のコマンドを実行すると、次の出力が得られます。
これらは、Kubernetes コンテナ内のポッドによって使用されるイメージのリストを取得するためのすべての手順です。
結論
kubectl コマンド ライン ツールを使用すると、Kubernetes アプリケーションのコンテナーに保存されているイメージのリストを簡単に取得できることがわかりました。 Kubernetes では、さまざまな方法でイメージのリストを取得できます。すべての方法を所定の手順でわかりやすく説明します。 「-all namespace」オプションは、コンテナーに保存され、コマンドを実行することで簡単に取得できる、ポッドによって使用されるすべての名前空間のイメージを取得します。 kubectl コマンド ライン ツールでコマンドを実行することで、アプリケーションのすべての手順に従ってイメージのリストを取得できます。