はじめに
Kubernetes の set コマンドは、既存の Kubernetes リソースの構成を変更するための汎用的なツールです。このコマンドを使用すると、コンテナ イメージの更新やリソース要求と制限の設定などの調整が可能で、YAML ファイルを直接編集することなく行えます。これにより、リソース管理が簡素化され、運用効率が向上します。
この実験を終えると、以下のことができるようになります。
- Kubernetes クラスタを起動する。
- デプロイのコンテナ イメージを更新する。
- デプロイに対するリソース要求と制限を設定する。
- 関連コマンドを使用して、デプロイのラベルとアノテーションを変更する。
この実験は初心者向けに設計されており、Kubernetes ツールがインストールされた Ubuntu Linux システムで作業していることを前提としています。Kubernetes の事前経験は必要ありません。
Kubernetes クラスタを起動する
Kubernetes リソースとやり取りする前に、Kubernetes クラスタが実行されていることを確認します。この実験では、単一ノードの Kubernetes クラスタを設定するために Minikube を使用します。
ターミナルを開き、Minikube を起動します。
minikube startこれにより、ローカルの Kubernetes クラスタが初期化されます。Minikube は自動的に適切なリソースを割り当てますが、必要に応じて
--cpusや--memoryなどのフラグを使用してカスタマイズすることもできます。Minikube が実行されていることを確認します。
kubectl cluster-infoクラスタが稼働していることが出力に確認できることを確認してください。
デプロイを作成する
クラスタが稼働したら、nginx イメージを使用して hello-world という名前のシンプルな Kubernetes デプロイを作成します。
次のコマンドを実行してデプロイを作成します。
kubectl create deployment hello-world --image=nginxこのコマンドは、
nginxコンテナの 1 レプリカを持つhello-worldという名前のデプロイを作成します。デプロイが正常に作成されたことを確認します。
kubectl get deployments出力を確認して、
hello-worldがデプロイのリストに表示されていることを確認してください。
kubectl set コマンドを調べる
kubectl set コマンドは、アプリケーション リソースを構成および変更するための複数のサブコマンドを提供します。環境変数、コンテナ イメージ、リソース設定などの特定の側面を管理するのに役立ちます。
利用可能な
kubectl setサブコマンドを表示するには、次のコマンドを実行します。kubectl set -h次の出力が表示されます。
アプリケーション リソースを構成します。 これらのコマンドは、既存のアプリケーション リソースに変更を加えるのに役立ちます。 利用可能なコマンド: env ポッド テンプレートの環境変数を更新する image ポッド テンプレートのイメージを更新する resources ポッド テンプレートを持つオブジェクトのリソース要求/制限を更新する selector リソースのセレクタを設定する serviceaccount リソースのサービス アカウントを更新する subject ロール バインディングまたはクラスター ロール バインディングのユーザー、グループ、またはサービス アカウントを更新する 使い方: kubectl set SUBCOMMAND [オプション] 特定のコマンドに関する詳細は、「kubectl --help」を使用してください。グローバル コマンドライン オプションの一覧 (すべてのコマンドに適用) は、「kubectl options」を使用してください。利用可能なサブコマンドとその説明を確認して、
kubectl setをどのように使用できるかを理解します。必要に応じて、各サブコマンドの詳細を調べるために
kubectl set --helpを使用します。
コンテナイメージを更新する
次に、hello-world デプロイのコンテナ イメージを特定のバージョンに更新します。
kubectl setコマンドを使用して、コンテナ イメージをnginx:1.19.10に更新します。kubectl set image deployment/hello-world nginx=nginx:1.19.10このコマンドは、
hello-worldデプロイ内のnginxコンテナを更新します。コンテナ イメージを照会することでイメージの更新を確認します。
kubectl get deployment hello-world -o jsonpath='{.spec.template.spec.containers[0].image}'出力が
nginx:1.19.10であることを確認してください。
リソースの要求と制限を設定する
Kubernetes のデプロイにとって、リソース管理は不可欠です。hello-world デプロイに対してリソース要求と制限を設定します。
CPU とメモリの要求と制限を構成します。
kubectl set resources deployment/hello-world --limits=cpu=1,memory=512Mi --requests=cpu=500m,memory=256Miこのコマンドは、リソース要求を
500mCPU と256Miメモリに、制限を1CPU と512Miメモリに設定します。デプロイを記述することでリソース設定を確認します。
kubectl describe deployment hello-world出力の
制限と要求のセクションを確認して、構成が正しいことを確認してください。
デプロイメントのラベルを変更する
ラベルは、Kubernetes のリソースを分類および整理するのに役立ちます。kubectl label コマンドを使用して、デプロイのラベルを追加または変更します。
hello-worldデプロイにenvironment=developmentというラベルを追加します。kubectl label deployment hello-world environment=developmentこのコマンドは、デプロイに新しいラベルを追加します。
ラベルが適用されたことを確認します。
kubectl get deployment hello-world --show-labelsenvironment=developmentのラベルが表示されていることを確認するには、LABELS列を確認してください。
デプロイメントのアノテーションを更新する
アノテーションは、Kubernetes リソースにメタデータを提供します。kubectl annotate コマンドを使用して、デプロイのアノテーションを追加または更新します。
hello-worldデプロイにowner=team-alphaというアノテーションを追加します。kubectl annotate deployment hello-world owner=team-alphaこのコマンドは、デプロイにアノテーションを追加します。
アノテーションが適用されたことを確認します。
kubectl describe deployment hello-worldowner=team-alphaのアノテーションセクションを確認してください。
まとめ
この実験では、Kubernetes の set コマンドを使ってデプロイを効果的に管理する方法を学びました。具体的には、以下のことができました。
- Kubernetes クラスタを起動しました。
- デプロイを作成しました。
- コンテナ イメージを更新しました。
- リソース要求と制限を構成しました。
- 適切なコマンドを使ってラベルとアノテーションを変更しました。
これらのスキルは、Kubernetes アプリケーションを効率的に管理するために不可欠です。


