この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

Kubectlとkubeconfigを使用してクラスターにアクセスする

このセクションでは、Rancher UIまたはワークステーションからkubectlを使用して、ダウンストリームのKubernetesクラスターを操作する方法について説明します。

kubectlの使用に関する詳細は、 Kubernetesドキュメント:kubectlの概要を参照してください。

Rancher UIのkubectl Shellを使用してクラスターにアクセスする

Rancherにログインし、UIでkubectlシェルを開くことで、クラスターにアクセスし管理できます。追加の構成は必要ありません。

  1. *☰ > クラスター管理*をクリックします。

  2. kubectlでアクセスしたいクラスターに移動し、*探索*をクリックします。

  3. 上部のナビゲーションメニューで、*Kubectl Shell*ボタンをクリックします。開いたウィンドウを使用して、Kubernetesクラスターと対話します。

ワークステーションからkubectlを使用してクラスターにアクセスする

このセクションでは、クラスターのkubeconfigファイルをダウンロードし、ワークステーションからkubectlを起動して、ダウンストリームのクラスターにアクセスする方法について説明します。

この代替方法では、Rancherで認証し、Rancher UIを使用せずにクラスターを管理できます。

前提条件:

これらの手順は、すでにKubernetesクラスターを作成しており、ワークステーションにkubectlがインストールされていることを前提としています。kubectlのインストールに関するヘルプは、公式の Kubernetesドキュメントを参照してください。

  1. 左上隅の*☰*をクリックします。

  2. *クラスター管理*を選択します。

  3. ダウンロードしたいkubeconfigを持つクラスターを見つけ、行の最後にある*⁝*を選択します。

  4. サブメニューから*Download KubeConfig*を選択します。

  5. YAMLファイルをローカルコンピュータに保存してください。ファイルを`/.kube/config`に移動してください。注意:kubectlがkubeconfigファイルに使用するデフォルトの場所は`/.kube/config`ですが、任意のディレクトリを使用し、`--kubeconfig`フラグを使用して指定することができます。このコマンドのように:

      kubectl --kubeconfig /custom/path/kube.config get pods
  6. ワークステーションからkubectlを起動してください。それを使用して、Kubernetesクラスターと対話してください。

kubectlを使用して作成されたリソースに関する注意事項

Rancherは`kubectl`によって作成されたリソースを検出し、表示します。ただし、これらのリソースは、検出時に必要なすべてのアノテーションを持っていない可能性があります。Rancher UI/APIを使用してリソースに対して操作(たとえば、ワークロードのスケーリング)が行われると、欠落しているアノテーションのためにリソースの再作成がトリガーされる可能性があります。これは、検出されたリソースに対して操作が行われる最初の時にのみ発生するはずです。

ダウンストリームクラスターへの直接認証

このセクションは、Rancher起動クラスターにアクセスするための代替方法を設定するのに役立つことを目的としています。

この方法は、認可されたクラスターエンドポイントが有効になっているRKE2およびK3sクラスターでのみ利用可能です。Rancherがクラスターを作成すると、クラスターにアクセスするための追加のkubectlコンテキストを含むkubeconfigファイルが生成されます。この追加のコンテキストにより、Rancherを介さずにダウンストリームクラスターに認証するためにkubectlを使用できます。認可されたクラスターエンドポイントの動作についての詳細な説明については、このページを参照してください。

RKE2およびK3sクラスターでは、手動で認可されたクラスターエンドポイントを有効にする必要があります。

ベストプラクティスとして、この方法を設定してRKE2およびK3sクラスターにアクセスすることをお勧めします。そうすれば、Rancherに接続できない場合でも、クラスターにアクセスできます。

前提条件:

以下の手順は、Kubernetesクラスターを作成し、ワークステーションからkubectlでクラスターに接続するための手順を実行したことを前提としています。

ダウンロードしたkubeconfigファイル内のコンテキスト名を見つけるには、次のコマンドを実行してください:

kubectl config get-contexts --kubeconfig /custom/path/kube.config
CURRENT   NAME                        CLUSTER                     AUTHINFO     NAMESPACE
*         my-cluster                  my-cluster                  user-46tmn
          my-cluster-controlplane-1   my-cluster-controlplane-1   user-46tmn

この例では、最初のコンテキストである`kubectl`を使用すると、`my-cluster`を通じてRancherサーバーで認証されます。

2番目のコンテキストである`my-cluster-controlplane-1`を使用すると、認可されたクラスターエンドポイントで認証し、ダウンストリームのRKE2およびK3sクラスターと直接通信します。

認可されたクラスターエンドポイントにはロードバランサーの使用を推奨します。詳細については、推奨アーキテクチャセクションを参照してください。

クラスターに直接認証するために必要なコンテキストの名前がわかったので、kubectlコマンドを実行する際にオプションとしてコンテキストの名前を渡すことができます。コマンドは、クラスターにFQDNが定義されているかどうかによって異なります。以下のセクションに例が示されています。

`kubectl`が正常に動作する場合、Rancherの認証プロキシをバイパスしてクラスターにアクセスできることが確認されます。

FQDNが定義されたクラスターへの直接接続

クラスターにFQDNが定義されている場合、FQDNを参照する単一のコンテキストが作成されます。そのコンテキストは`<CLUSTER_NAME>-fqdn`という名前になります。Rancherを使用せずにこのクラスターにアクセスするために`kubectl`を使用したい場合は、このコンテキストを使用する必要があります。

kubeconfigファイルが`~/.kube/config`にあると仮定します。

kubectl --context <CLUSTER_NAME>-fqdn get nodes

kubeconfigファイルの場所を直接参照する:

kubectl --kubeconfig /custom/path/kube.config --context <CLUSTER_NAME>-fqdn get pods

FQDNが定義されていないクラスターへの直接接続

クラスターにFQDNが定義されていない場合、コントロールプレーンの各ノードのIPアドレスを参照する追加のコンテキストが作成されます。各コンテキストは`<CLUSTER_NAME>-<NODE_NAME>`という名前になります。Rancherを使用せずにこのクラスターにアクセスするために`kubectl`を使用したい場合は、このコンテキストを使用する必要があります。

kubeconfigファイルが`~/.kube/config`にあると仮定します。

kubectl --context <CLUSTER_NAME>-<NODE_NAME> get nodes

kubeconfigファイルの場所を直接参照する:

kubectl --kubeconfig /custom/path/kube.config --context <CLUSTER_NAME>-<NODE_NAME> get pods