Oracle Cloud Infrastructureドキュメント

クラスタ・アクセスを有効にするためのkubeconfigファイルのダウンロード

クラスタを作成するときは、クラスタ用のKubernetes構成ファイル(一般にはkubeconfigファイルと呼ばれます)をダウンロードする必要があります。 kubeconfigファイル(デフォルトではconfigという名前で$HOME/.kubeディレクトリに保存されています)は、kubectlとKubernetes Dashboardを使用してクラスタにアクセスするために必要な詳細を提供します。

kubeconfigファイルをダウンロードするには、いくつかのステップに従わなければなりません。 ステップを完了したら、kubectlとKubernetes Dashboardを使用してクラスタを管理できます。

kubeconfigファイルをダウンロードするには:

ステップ1: API署名キーのペアを生成
ステップ2: API署名キー・ペアの公開キーをアップロード
ステップ3: Oracle Cloud Infrastructure CLIを取り付けて構成する
ステップ4: kubeconfigファイルをダウンロード
ステップ5: kubectlが使用可能であることを確認

kubeconfigファイルに関する注意

kubeconfigファイルについては、次の点に注意してください:

  • 1つのkubeconfigファイルには、複数コンテキストとして複数のクラスタの詳細を含めることができます。 操作が実行されるクラスタは、kubeconfigファイルのcurrent-context:要素によって指定されます。
  • kubeconfigファイルには、認証トークンを動的に生成し、kubectlコマンドを実行するときに挿入するOracle Cloud Infrastructure CLIコマンドが含まれています。 Oracle Cloud Infrastructure CLIは、シェルの実行可能ファイル・パス(たとえば、Linuxの$PATH)で使用できる必要があります。
  • kubeconfigファイルのOracle Cloud Infrastructure CLIコマンドで生成されるトークンは、存続期間が短く、クラスタの有効範囲が短く、個別のユーザーに固有です。 そのため、Kubernetesクラスタにアクセスするユーザー間でkubeconfigファイルを共有することはできません。
  • kubeconfigファイルのOracle Cloud Infrastructure CLIコマンドは、認証トークンを生成するときに、現在のCLIプロファイルを使用します。 CLI構成ファイルに、異なるテナンシで複数のプロファイルを定義した場合(たとえば、~/.oci/config)で、次のように認証トークンを生成するときに使用するプロファイルを指定します。 どちらの場合も、<profile-name>はCLI構成ファイルで定義されたプロファイルの名前です:

    • 次のようにして、--profileをkubeconfigファイルのargs:セクションに追加します:

      user:
        exec:
          apiVersion: client.authentication.k8s.io/v1beta1
          args:
          - ce
          - cluster
          - generate-token
          - --cluster-id
          - <cluster ocid>
          - --profile
          - <profile-name>
          command: oci
          env: []
    • kubectlコマンドを実行する前に、OCI_CLI_PROFILE環境変数をCLI構成ファイルで定義されたプロファイルの名前に設定します。 例えば:

      $ export OCI_CLI_PROFILE=<profile-name>
      $ kubectl get nodes
      

バージョン1.0.0からバージョン2.0.0へのkubeconfigファイルのアップグレード

現在の「Kubernetesのコンテナ・エンジン」では、次の2つのバージョンのkubeconfigファイルがサポートされています:
  • version 1.0.0
  • version 2.0.0

kubeconfigバージョンの2.0.0ファイルの拡張により、Kubernetes環境のセキュリティが向上します。これには、自動リフレッシュを行う短期間のクラスタ・スコープのトークンや、Kubernetesクラスタにアクセスするためのインスタンス・プリンシパルのサポートなどがあります。 さらに、認証トークンは、クラスタごとにオンデマンドで生成されるため、kubeconfigバージョンの2.0.0ファイルは、Kubernetesクラスタ(kubeconfigバージョン1.0.0ファイルとは異なります)にアクセスするユーザー間で共有できません。

kubeconfigバージョンの1.0.0ファイルのサポートは2019年11月15日に中断されることに注意してください。 その日付より前に、kubeconfigバージョンの1.0.0ファイルを2.0.0.にアップグレードする必要があります。 次の手順に従って、現在のバージョンのkubeconfigファイルを確認し、それらをバージョン2.0.0.にアップグレードする方法を確認します。

kubeconfigファイルのバージョンを確認

クラスタkubeconfigファイルのバージョンを確認するには:

1.ターミナル・ウィンドウで次のコマンドを入力し、KUBECONFIG環境変数によって現在指定されているkubeconfigファイルの形式を確認します:

$ kubectl config view

2. kubeconfigファイルがバージョン1.0.0の場合、次の形式でレスポンスが表示されます:

users:
- name: <username>
  user:
    token: <token-value>

前述の形式でレスポンスが表示された場合、kubeconfigファイルをアップグレードする必要があります。 「kubeconfigバージョンの1.0.0ファイルを2.0.0バージョンにアップグレード」も参照してください。

3. kubeconfigファイルがバージョン2.0.0の場合、次の形式でレスポンスが表示されます:

user:
  exec:
    apiVersion: client.authentication.k8s.io/v1beta1
    args:
    - ce
    - cluster
    - generate-token
    - --cluster-id
    - <cluster ocid>
    command: oci
    env: []

前述の形式でレスポンスがあった場合、それ以上の処理は必要ありません。

kubeconfigバージョンの1.0.0ファイルを2.0.0バージョンにアップグレード

kubeconfigバージョンの1.0.0ファイルをアップグレードするには:

  1. 次の情報を入力して、Oracle Cloud Infrastructure CLIバージョン2.6.4 (以降)がインストールされていることを確認します:

    oci -version
  2. Oracle Cloud Infrastructure CLIバージョンがバージョン2.6.4より前の場合は、CLIを新しいバージョンにアップグレードします。 「CLIのアップグレード」も参照してください。

  3. kubeconfigファイルのダウンロード手順に従います(「ステップ4: kubeconfigファイルをダウンロード」を参照)。 「Kubeconfigへのアクセス方法」ダイアログ・ボックスに表示されているoci ce cluster create-kubeconfigコマンドを実行すると、既存のkubeconfigバージョン1.0.0ファイルがアップグレードされます。 kubeconfigファイルの名前またはロケーションを変更する場合は、ファイルの新しい名前とロケーションを指すようにKUBECONFIG環境変数を設定します。

  4. kubeconfigファイルが現在バージョン2.0.0であることを確認します:
    1. 端末ウィンドウで、次のように入力します:

      $ kubectl config view
    2. レスポンスが次の形式であることを確認します:

      user:
        exec:
          apiVersion: client.authentication.k8s.io/v1beta1
          args:
          - ce
          - cluster
          - generate-token
          - --cluster-id
          - <cluster ocid>
          command: oci
          env: []