Kubernetes の set コマンド

KubernetesKubernetesBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Kubernetes の set コマンドは、既存の Kubernetes リソースの構成を変更するための汎用的なツールです。このコマンドを使用すると、コンテナ イメージの更新やリソース要求と制限の設定などの調整が可能で、YAML ファイルを直接編集することなく行えます。これにより、リソース管理が簡素化され、運用効率が向上します。

この実験を終えると、以下のことができるようになります。

  • Kubernetes クラスタを起動する。
  • デプロイのコンテナ イメージを更新する。
  • デプロイに対するリソース要求と制限を設定する。
  • 関連コマンドを使用して、デプロイのラベルとアノテーションを変更する。

この実験は初心者向けに設計されており、Kubernetes ツールがインストールされた Ubuntu Linux システムで作業していることを前提としています。Kubernetes の事前経験は必要ありません。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/ClusterInformationGroup(["Cluster Information"]) kubernetes(("Kubernetes")) -.-> kubernetes/ConfigurationandVersioningGroup(["Configuration and Versioning"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/BasicCommandsGroup -.-> kubernetes/set("Set") kubernetes/BasicCommandsGroup -.-> kubernetes/run("Run") kubernetes/BasicCommandsGroup -.-> kubernetes/annotate("Annotate") kubernetes/ClusterInformationGroup -.-> kubernetes/cluster_info("Cluster Info") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") kubernetes/ConfigurationandVersioningGroup -.-> kubernetes/label("Label") subgraph Lab Skills kubernetes/initialization -.-> lab-8424{{"Kubernetes の set コマンド"}} kubernetes/get -.-> lab-8424{{"Kubernetes の set コマンド"}} kubernetes/create -.-> lab-8424{{"Kubernetes の set コマンド"}} kubernetes/set -.-> lab-8424{{"Kubernetes の set コマンド"}} kubernetes/run -.-> lab-8424{{"Kubernetes の set コマンド"}} kubernetes/annotate -.-> lab-8424{{"Kubernetes の set コマンド"}} kubernetes/cluster_info -.-> lab-8424{{"Kubernetes の set コマンド"}} kubernetes/describe -.-> lab-8424{{"Kubernetes の set コマンド"}} kubernetes/label -.-> lab-8424{{"Kubernetes の set コマンド"}} end

Kubernetes クラスタを起動する

Kubernetes リソースとやり取りする前に、Kubernetes クラスタが実行されていることを確認します。この実験では、単一ノードの Kubernetes クラスタを設定するために Minikube を使用します。

  1. ターミナルを開き、Minikube を起動します。

    minikube start

    これにより、ローカルの Kubernetes クラスタが初期化されます。Minikube は自動的に適切なリソースを割り当てますが、必要に応じて --cpus--memory などのフラグを使用してカスタマイズすることもできます。

  2. Minikube が実行されていることを確認します。

    kubectl cluster-info

    クラスタが稼働していることが出力に確認できることを確認してください。

デプロイを作成する

クラスタが稼働したら、nginx イメージを使用して hello-world という名前のシンプルな Kubernetes デプロイを作成します。

  1. 次のコマンドを実行してデプロイを作成します。

    kubectl create deployment hello-world --image=nginx

    このコマンドは、nginx コンテナの 1 レプリカを持つ hello-world という名前のデプロイを作成します。

  2. デプロイが正常に作成されたことを確認します。

    kubectl get deployments

    出力を確認して、hello-world がデプロイのリストに表示されていることを確認してください。

kubectl set コマンドを調べる

kubectl set コマンドは、アプリケーション リソースを構成および変更するための複数のサブコマンドを提供します。環境変数、コンテナ イメージ、リソース設定などの特定の側面を管理するのに役立ちます。

  1. 利用可能な kubectl set サブコマンドを表示するには、次のコマンドを実行します。

    kubectl set -h

    次の出力が表示されます。

    アプリケーション リソースを構成します。
    
    これらのコマンドは、既存のアプリケーション リソースに変更を加えるのに役立ちます。
    
    利用可能なコマンド:
      env              ポッド テンプレートの環境変数を更新する
      image            ポッド テンプレートのイメージを更新する
      resources        ポッド テンプレートを持つオブジェクトのリソース要求/制限を更新する
      selector         リソースのセレクタを設定する
      serviceaccount   リソースのサービス アカウントを更新する
      subject          ロール バインディングまたはクラスター ロール バインディングのユーザー、グループ、またはサービス アカウントを更新する
    
    使い方:
      kubectl set SUBCOMMAND [オプション]
    
    特定のコマンドに関する詳細は、「kubectl --help」を使用してください。グローバル コマンドライン オプションの一覧 (すべてのコマンドに適用) は、「kubectl options」を使用してください。

    利用可能なサブコマンドとその説明を確認して、kubectl set をどのように使用できるかを理解します。

  2. 必要に応じて、各サブコマンドの詳細を調べるために kubectl set --help を使用します。

コンテナ イメージを更新する

次に、hello-world デプロイのコンテナ イメージを特定のバージョンに更新します。

  1. kubectl set コマンドを使用して、コンテナ イメージを nginx:1.19.10 に更新します。

    kubectl set image deployment/hello-world nginx=nginx:1.19.10

    このコマンドは、hello-world デプロイ内の nginx コンテナを更新します。

  2. コンテナ イメージを照会することでイメージの更新を確認します。

    kubectl get deployment hello-world -o jsonpath='{.spec.template.spec.containers[0].image}'

    出力が nginx:1.19.10 であることを確認してください。

リソース要求と制限を構成する

Kubernetes のデプロイにとって、リソース管理は不可欠です。hello-world デプロイに対してリソース要求と制限を設定します。

  1. CPU とメモリの要求と制限を構成します。

    kubectl set resources deployment/hello-world --limits=cpu=1,memory=512Mi --requests=cpu=500m,memory=256Mi

    このコマンドは、リソース要求を 500m CPU と 256Mi メモリに、制限を 1 CPU と 512Mi メモリに設定します。

  2. デプロイを記述することでリソース設定を確認します。

    kubectl describe deployment hello-world

    出力の 制限要求 のセクションを確認して、構成が正しいことを確認してください。

デプロイのラベルを変更する

ラベルは、Kubernetes のリソースを分類および整理するのに役立ちます。kubectl label コマンドを使用して、デプロイのラベルを追加または変更します。

  1. hello-world デプロイに environment=development というラベルを追加します。

    kubectl label deployment hello-world environment=development

    このコマンドは、デプロイに新しいラベルを追加します。

  2. ラベルが適用されたことを確認します。

    kubectl get deployment hello-world --show-labels

    environment=development のラベルが表示されていることを確認するには、LABELS 列を確認してください。

デプロイのアノテーションを更新する

アノテーションは、Kubernetes リソースにメタデータを提供します。kubectl annotate コマンドを使用して、デプロイのアノテーションを追加または更新します。

  1. hello-world デプロイに owner=team-alpha というアノテーションを追加します。

    kubectl annotate deployment hello-world owner=team-alpha

    このコマンドは、デプロイにアノテーションを追加します。

  2. アノテーションが適用されたことを確認します。

    kubectl describe deployment hello-world

    owner=team-alphaアノテーション セクションを確認してください。

まとめ

この実験では、Kubernetes の set コマンドを使ってデプロイを効果的に管理する方法を学びました。具体的には、以下のことができました。

  • Kubernetes クラスタを起動しました。
  • デプロイを作成しました。
  • コンテナ イメージを更新しました。
  • リソース要求と制限を構成しました。
  • 適切なコマンドを使ってラベルとアノテーションを変更しました。

これらのスキルは、Kubernetes アプリケーションを効率的に管理するために不可欠です。