ウェブサイト検索

kubectlを使用してKubernetesクラスターを管理する方法


kubectl コマンドは、管理者が Linux システム上の Kubernetes クラスターと対話し、管理するための方法です。これは、Amazon Web Services、Google Cloud Platform、または自身のハードウェア(例:kubeadm)上のクラスターなど、すべての Kubernetes クラスター環境で機能する必須のコマンドラインツールです。スケールで Kubernetes クラスターを管理することは最初は挑戦かもしれませんが、kubectl コマンドを習得すれば、ずっと簡単になります。

このチュートリアルでは、kubectl コマンドを使用して Kubernetes クラスターを管理する方法を学びます。さまざまなコマンドオプションを探求し、kubectl を効果的に使用する方法、および kubectl の使用を容易にするためのいくつかのヒントやコツを見ていきます。

このチュートリアルでは、あなたは学びます:

  • Kubernetesクラスターに対してkubectlコマンドを使う方法

kubectlを使用してKubernetesクラスターを管理する

以下の例は、LinuxのKubernetesクラスターに対して使用される最も一般的で重要なkubectlコマンドのいくつかを示しています。

注
すでに持っていない場合は、Kubernetesとは別にkubectlをインストールする必要があります。kubectlコマンドは、その後、kubeadmやminikubeなど、実行中の任意のKubernetesと連携して動作します。

  1. マニフェストファイルを適用するには、Kubernetesでアプリケーションをデプロイすることもできるので、以下の構文を使用できます。

    
    kubectl apply -f ./application.yaml 
    

    これにより、私たちのカスタムDockerコンテナ化アプリケーションを展開することができるか、Docker Hubのような中央リポジトリから取得したアプリケーションを展開することができます。

  2. 私たちはdeleteパラメータを使用してデプロイメントを削除することもできます。以下はいくつかの例です:

    
    kubectl delete deployment my-application
    

    またはファイルを指定してください:

    
    kubectl delete -f application.yaml
    
  3. ネットワーク内のすべてのKubernetesポッドに関する情報を取得するには:

    
    kubectl get pods
    

    または、すべての名前空間のポッドを表示する詳細なバージョン:

    
    kubectl get pods --all-namespaces
    

    コマンドオプション --all-namespaces は -A に短縮することもできます:

    
    kubectl get pods -A
    
  4. Kubernetesクラスタ内のすべての構成されたノードに関する情報を表示してください:

    
    kubectl get nodes
    
  5. クラスター内で実行中のすべての利用可能なサービスのリストを、Kubernetesマスターノードから発行される次のコマンドで確認できます:

    
    kubectl get svc
    
  6. デプロイされた特定のポッドの詳細を取得します(この例では、名前が「apache」のポッド):

    
    kubectl get pods/apache
    

    describe 引数に関するより詳細な情報:

    
    kubectl describe pods/apache
    
  7. 特定のポッドのログを確認します:

    
    kubectl logs my-pod
    
  8. runパラメータを使用して、イメージの実行を開始できます。例えば、Nginxを使用してみましょう。

    
    kubectl run --image=nginx nginx-server --port=80 --env="DOMAIN=cluster"
    

    次にポート80を公開することができます。

    
    kubectl expose deployment nginx-deployment --port=80 --name=nginx-http
    
  9. リソースをスケールする際にも kubectl コマンドは不可欠です。デプロイメント「mysql」を5つのレプリカにスケールするには:

    
    kubectl scale --replicas=5 deployment/mysql  
    

    または、YAMLファイルに指定されたリソースをスケールするために:

    
    kubectl scale --replicas=5 -f mysql.yaml
    
  10. ノードからすべてのポッドを排出するため(例:Kubernetes クラスターに中断を引き起こすことなくノードのメンテナンスを実施するため):

    
    kubectl drain worker-node
    
  11. Kubernetesクラスタに関するすべての情報を見るには:

    
    kubectl cluster-info
    

締めくくりの考え

このチュートリアルでは、Linuxシステム上のKubernetesクラスターを管理するためのkubectlコマンドの使い方を見ました。kubectlの使い方を学ぶことは、管理者が新しいデプロイメントやポッドを作成し、コマンドラインからノードを管理するために不可欠です。また、ログを検査し、クラスターとその個々のコンポーネントがどのように動作しているかをいつでも確認することができます。

関連記事: