検索

第3章 CLI プロファイルの管理

download PDF

3.1. 概要

CLI 設定ファイルにより、「OpenShift CLI」で使用するさまざまなプロファイルまたは コンテキスト の設定が可能になります。コンテキストは、「ユーザー認証」および ニックネーム と関連付けられた OpenShift Container Platform サーバー情報から構成されます。

3.2. CLI プロファイル間の切り替え

CLI 実行操作を使用する場合に、コンテキストを使用すると、複数の OpenShift Container Platform サーバーまたは クラスター にわたる複数ユーザーの切り替えが簡単になります。ニックネームで、コンテキスト、ユーザーの認証情報およびクラスター情報の省略された参照情報を提供することで、CLI 設定の管理が簡単になります。

初回の「CLI でのログイン」後、OpenShift Container Platform は ~/.kube/config ファイルを作成します (すでに存在しない場合)。追加の認証および接続の詳細情報が oc login 操作時に自動的に、または「明示的な設定」によって CLI に提供されると、更新情報は設定ファイルに保存されます。

例3.1 CLI 設定ファイル

apiVersion: v1
clusters: 1
- cluster:
    insecure-skip-tls-verify: true
    server: https://openshift1.example.com:8443
  name: openshift1.example.com:8443
- cluster:
    insecure-skip-tls-verify: true
    server: https://openshift2.example.com:8443
  name: openshift2.example.com:8443
contexts: 2
- context:
    cluster: openshift1.example.com:8443
    namespace: alice-project
    user: alice/openshift1.example.com:8443
  name: alice-project/openshift1.example.com:8443/alice
- context:
    cluster: openshift1.example.com:8443
    namespace: joe-project
    user: alice/openshift1.example.com:8443
  name: joe-project/openshift1/alice
current-context: joe-project/openshift1.example.com:8443/alice 3
kind: Config
preferences: {}
users: 4
- name: alice/openshift1.example.com:8443
  user:
    token: xZHd2piv5_9vQrg-SKXRJ2Dsl9SceNJdhNTljEKTb8k
1
クラスター セクションは、マスターサーバーのアドレスを含む OpenShift Container Platform クラスターの接続の詳細について定義します。この例では、1 つのクラスターのニックネームは openshift1.example.com:8443 で、もう 1 つのクラスターのニックネームは openshift2.example.com:8443 となっています。
2
この コンテキスト セクションは、2 つのコンテキストを定義します。1 つは、ニックネームが alice-project/openshift1.example.com:8443/alice で、alice-project プロジェクト、openshift1.example.com:8443 クラスター、および alice ユーザーを使用します。もう 1 つはニックネームが joe-project/openshift1.example.com:8443/alice で、joe-project プロジェクト、openshift1.example.com:8443 クラスター、および alice ユーザーを使用します。
3
current-context のパラメーターは、joe-project/openshift1.example.com:8443/alice コンテキストが現在使用中であることを示しています。これにより、alice ユーザーは、openshift1.example.com:8443 クラスターの joe-project プロジェクトで作業することが可能になります。
4
ユーザー セクションは、ユーザーの認証情報を定義します。この例では、ユーザーニックネーム alice/openshift1.example.com:8443 が、「アクセストークン」を使用します。

CLI は複数の設定ファイルをサポートできます。これらの設定ファイルは、コマンドラインで指定した上書きオプションと共に、ランタイム時に読み込まれ、マージされます

ログイン後、oc status コマンドまたは oc project コマンドを使用して、現在稼働中の環境を確認できます。

例3.2 稼働中の環境の確認

$ oc status
oc status
In project Joe's Project (joe-project)

service database (172.30.43.12:5434 -> 3306)
  database deploys docker.io/openshift/mysql-55-centos7:latest
    #1 deployed 25 minutes ago - 1 pod

service frontend (172.30.159.137:5432 -> 8080)
  frontend deploys origin-ruby-sample:latest <-
    builds https://github.com/openshift/ruby-hello-world with joe-project/ruby-20-centos7:latest
    #1 deployed 22 minutes ago - 2 pods

To see more information about a service or deployment, use 'oc describe service <name>' or 'oc describe dc <name>'.
You can use 'oc get all' to see lists of each of the types described above.
$ oc project
Using project "joe-project" from context named "joe-project/openshift1.example.com:8443/alice" on server "https://openshift1.example.com:8443".

ユーザー認証情報およびクラスター詳細の組み合わせを使用してログインするには、oc login コマンドを再度実行し、対話プロセスで関連情報を指定します。コンテキストが存在しない場合は、コンテキストが指定される情報に基づいて作成されます。

すでにログインしている場合で現行ユーザーがアクセス可能な別のプロジェクトに切り替えたい場合は、oc project コマンドを使用してプロジェクト名を指定します。

$ oc project alice-project
Now using project "alice-project" on server "https://openshift1.example.com:8443".

oc config view コマンドを使用すると、出力に示されるような現在の CLI 設定全体をいつでも表示することができます。

「高度な使用方法」で利用できる CLI 設定コマンドが他にもあります。

注記

管理者の認証情報が利用できる状態であっても 「デフォルトシステムユーザー」system:admin としてログインしていない場合には、認証情報が「CLI 設定ファイル」にある限り、いつでもこのユーザーとしてログインし直すことができます。以下のコマンドはログインを実行し、デフォルト のプロジェクトに切り替えます。

$ oc login -u system:admin -n default

3.3. CLI プロファイルの手動設定

注記

このセクションでは、CLI 設定の高度な使用方法について説明します。ほとんどの場合、oc login コマンドと oc project コマンドを使用するだけで、ログインやコンテキスト間およびプロジェクト間の切り替えを実行できます。

CLI 設定ファイルを手動で設定する場合に、ファイル自体を変更する代わりに oc config コマンドを使用できます。oc config コマンドには、この手動設定に役立つ多数のサブコマンドが含まれています。

表3.1 CLI 設定サブコマンド
サブコマンド使用方法

set-credentials

CLI 設定ファイルにユーザーエントリーを設定します。参照されるユーザーニックネームがすでに存在する場合、指定情報はマージされます。

$ oc config set-credentials <user_nickname>
[--client-certificate=<path/to/certfile>] [--client-key=<path/to/keyfile>]
[--token=<bearer_token>] [--username=<basic_user>] [--password=<basic_password>]

set-cluster

CLI 設定ファイルにクラスターエントリーを設定します。参照されるクラスターのニックネームがすでに存在する場合、指定情報はマージされます。

$ oc config set-cluster <cluster_nickname> [--server=<master_ip_or_fqdn>]
[--certificate-authority=<path/to/certificate/authority>]
[--api-version=<apiversion>] [--insecure-skip-tls-verify=true]

set-context

CLI 設定ファイルにコンテキストエントリーを設定します。参照されるコンテキストのニックネームがすでに存在する場合、指定情報はマージされます。

$ oc config set-context <context_nickname> [--cluster=<cluster_nickname>]
[--user=<user_nickname>] [--namespace=<namespace>]

use-context

指定されたコンテキストのニックネームを使用して、現在のコンテキストを設定します。

$ oc config use-context <context_nickname>

set

CLI 設定ファイルに個別の値を設定します。

$ oc config set <property_name> <property_value>

<property_name> はドットで区切られた名前です。ここで、各トークンは属性名またはマップキーのいずれかを表します。<property_value> は設定される新しい値です。

unset

CLI 設定ファイルの個別の値の設定を解除します。

$ oc config unset <property_name>

<property_name> はドットで区切られた名前でする。ここで、各トークンは属性名またはマップキーのいずれかを表します。

view

現在使用中のマージされた CLI 設定を表示します。

$ oc config view

指定された CLI 設定ファイルの結果を表示します。

$ oc config view --config=<specific_filename>

使用例

以下の設定ワークフローを見てみましょう。まず、「アクセストークン」を使用するユーザーニックネーム alice の認証情報を設定します。

$ oc config set-credentials alice --token=NDM2N2MwODgtNjI1Yy10N3VhLTg1YmItYzI4NDEzZDUyYzVi

openshift1 という名前のクラスターエントリーを設定します。

$ oc config set-cluster openshift1 --server=https://openshift1.example.com

alice ユーザーおよび openshift1 クラスターを使用する、alice という名前のコンテキストを設定します。

$ oc config set-context alice --cluster=openshift1 --user=alice

alice コンテキストが作成されたので、そのコンテキストに切り替えます。

$ oc config use-context alice

alice コンテキストの aliceproject namespace を設定します。

$ oc config set contexts.alice.namespace aliceproject

ここで、作成された設定を表示することができます。

$ oc config view
apiVersion: v1
clusters:
- cluster:
    server: https://openshift1.example.com
  name: openshift1
contexts:
- context:
    cluster: openshift1
    namespace: aliceproject
    user: alice
  name: alice
current-context: alice 1
kind: Config
preferences: {}
users:
- name: alice
  user:
    token: NDM2N2MwODgtNjI1Yy10N3VhLTg1YmItYzI4NDEzZDUyYzVi
1
現在のコンテキストは、alice に設定されています。

上書きする CLI オプションで指定されるか、またはコンテキストが切り替えられない限り、後続のすべての CLI 操作は alice コンテキストを使用します。

3.4. 読み込みおよびマージのルール

CLI 操作を実行する際、CLI 設定の読み込みおよびマージの順序は、以下のルールに従います。

  1. CLI 設定ファイルは、以下の階層およびマージルールを使用してワークステーションから取得されます。

    • --config オプションが設定されている場合、そのファイルのみが読み込まれます。フラグが一度だけ設定される可能性があり、マージは実行されません。
    • $KUBECONFIG 環境変数が設定されている場合は、これを使用します。変数はパスの一覧である可能性があり、その場合、パスは 1 つにマージされます。値が変更される場合は、スタンザを定義するファイルで変更されます。値が作成される場合は、存在する最初のファイルで作成されます。ファイルがチェーン内に存在しない場合は、一覧の最後のファイルが作成されます。
    • または、~/.kube/config ファイルが使用され、マージは実行されません。

  2. 使用するコンテキストは、以下のチェーンの最初のヒットに基づいて決定されます。

    • --context オプションの値。
    • CLI 設定ファイルの current-context 値。
    • この段階では空の値が許可されます。

  3. 使用するユーザーおよびクラスターが決定されます。この時点では、コンテキストがある場合とない場合があります。コンテキストは、以下のチェーンの最初のヒットに基づいて作成されます。これは、ユーザー用に 1 回、クラスター用に 1 回実行されます。

    • ユーザー名の --user オプションおよびクラスター名の --cluster オプションの値。
    • --context オプションがある場合は、コンテキストの値を使用します。
    • この段階では空の値が許可されます。

  4. 使用する実際のクラスター情報が決定されます。この時点では、クラスター情報がある場合とない場合があります。それぞれのクラスター情報は、以下のチェーンの最初のヒットに基づいて作成されます。

    • 以下のコマンドラインオプションのいずれかの値。

      • --server,
      • --api-version
      • --certificate-authority
      • --insecure-skip-tls-verify
    • クラスター情報および属性の値がある場合は、それを使用します。
    • サーバーロケーションがない場合は、エラーが生じます。

  5. 使用する実際のユーザー情報が決定されます。ユーザーは、クラスターと同じルールを使用して作成されます。ただし、複数の手法が競合することによって操作が失敗することから、ユーザーごとの 1 つの認証手法のみを使用できます。コマンドラインのオプションは、設定ファイルの値よりも優先されます。以下は、有効なコマンドラインのオプションです。

    • --auth-path
    • --client-certificate
    • --client-key
    • --token

  6. 欠落している情報がある場合には、デフォルト値が使用され、追加情報を求めるプロンプトが出されます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.