|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
プロジェクトとKubernetesネームスペースSUSE Rancher Prime
ネームスペースは、クラスタ内の仮想クラスタを可能にするKubernetesの概念であり、各自のアクセス制御とリソースクォータを持つ「仮想クラスタ」にクラスタを分割するのに役立ちます。
プロジェクトはネームスペースのグループであり、Rancherによって導入された概念です。プロジェクトを使用すると、複数のネームスペースをグループとして管理し、それらの中でKubernetes操作を実行できます。プロジェクトを使用してマルチテナンシーをサポートできるため、チームは同じクラスタ内の他のプロジェクトにアクセスすることなく、クラスタ内のプロジェクトにアクセスできます。
|
プロジェクトはUI上で強調されていません。なぜなら、プロジェクトの範囲内でKubernetesリソースを作成する必要はないからです。ただし、Secretsのようなリソースは、プロジェクトの範囲内で作成することができます。 |
このセクションでは、プロジェクトとネームスペースがRancherとどのように機能するかを説明します。
ネームスペースについて
ネームスペースはKubernetesによって導入された概念です。 ネームスペースに関する公式Kubernetesドキュメント,によると、
|
Kubernetesは、同じ物理クラスタに支えられた複数の仮想クラスタをサポートします。これらの仮想クラスタはネームスペースと呼ばれます。[…] ネームスペースは、複数のチームやプロジェクトにまたがる多くのユーザーがいる環境での使用を意図しています。数人から数十人のユーザーがいるクラスタでは、ネームスペースを作成したり考えたりする必要はありません。 |
ネームスペースは次の機能を提供します:
-
*名前の範囲を提供する:*リソースの名前はネームスペース内で一意である必要がありますが、ネームスペース間では一意である必要はありません。ネームスペースは互いに入れ子にすることはできず、各Kubernetesリソースは1つのネームスペースのみに存在できます。
-
*リソースクォータ:*ネームスペースは、複数のユーザー間でクラスタリソースを分割する方法を提供します。
プロジェクトレベルでリソースを割り当てることができるため、プロジェクト内の各ネームスペースはそれらを使用できます。ネームスペースにリソースを明示的に割り当てることで、この継承をバイパスすることもできます。
次のリソースをネームスペースに直接割り当てることができます:
バニラKubernetesクラスタのアクセス権を管理するために、クラスタ管理者は各ネームスペースごとにロールベースのアクセス制御ポリシーを設定します。Rancherでは、ユーザのパーミッションはプロジェクトレベルで割り当てられ、特定のプロジェクトに属する任意のネームスペースによって自動的に継承されます。
ネームスペースの作成と移動に関する詳細は、ネームスペースを参照してください。
ネームスペースとkubectlに関するロールベースのアクセス制御の問題
プロジェクトはRancherによって導入された概念であるため、kubectlには作成者がアクセスできるプロジェクトにネームスペースの作成を制限する機能はありません。
つまり、プロジェクトスコープのパーミッションを持つ標準ユーザが`kubectl`を使用してネームスペースを作成すると、`kubectl`では新しいネームスペースを特定のプロジェクト内でスコープする必要がないため、使用できない場合があります。
パーミッションがプロジェクトレベルに制限されている場合は、Rancherを通じてネームスペースを作成する方が良いです。そうすることで、ネームスペースにアクセスするためのパーミッションを確保できます。
標準ユーザがプロジェクトオーナーである場合、そのユーザはそのプロジェクト内でネームスペースを作成することができます。RancherのUIは、そのユーザがアクセスできるプロジェクトの範囲外でネームスペースを作成することを防ぎます。
プロジェクトについて
階層に関しては:
-
クラスタにはプロジェクトが含まれる
-
プロジェクトにはネームスペースが含まれる
プロジェクトを使用してマルチテナンシーをサポートできるため、チームは同じクラスタ内の他のプロジェクトにアクセスすることなく、クラスタ内のプロジェクトにアクセスできます。
Kubernetesの基本バージョンでは、ロールベースのアクセス権やクラスターリソースなどの機能は、個々のネームスペースに割り当てられます。プロジェクトを使用すると、個人またはチームに複数のネームスペースへの同時アクセスを提供することで、時間を節約できます。
プロジェクトを使用して、次のようなアクションを実行できます:
-
ユーザをネームスペースのグループに割り当てることができます(つまり、プロジェクトメンバーシップ)。
-
プロジェクト内でユーザに特定のロールを割り当てます。ロールはオーナー、メンバー、読み取り専用、またはカスタムです。
-
プロジェクトにリソースを割り当てます。
クラスターを作成すると、自動的に2つのプロジェクトがその中に作成されます:
クラスターのデフォルトプロジェクト
Rancherでクラスターをプロビジョニングすると、自動的にクラスター用の`default`プロジェクトが作成されます。これはクラスターを始めるために使用できるプロジェクトですが、いつでも削除して、より説明的な名前のプロジェクトに置き換えることができます。
デフォルトのネームスペース以上の必要がない場合、Rancherでは*デフォルト*プロジェクト以上は必要ありません。
*デフォルト*プロジェクトを超える組織のレベルが必要な場合、Rancherでさらにプロジェクトを作成してネームスペース、アプリケーション、リソースを分離できます。
システムプロジェクト
トラブルシューティングする際に、`system`プロジェクトを表示して、Kubernetesシステムの重要なネームスペースが適切に機能しているかどうかを確認できます。この簡単にアクセス可能なプロジェクトにより、個々のシステムネームスペースコンテナのトラブルシューティングを行う必要がなくなります。
これを開くには、クラスターのビューを開き、をクリックします。このビューは、`system`プロジェクト内のすべてのネームスペースを表示します。
`system`プロジェクト:
-
クラスターをプロビジョニングすると自動的に作成されます。
-
`v3/settings/system-namespaces`に存在するすべてのネームスペースを、存在する場合はリストします。
-
さらにネームスペースを追加したり、そのネームスペースを他のプロジェクトに移動したりできます。
-
クラスターの操作に必要なため、削除できません。
|
プロジェクトネットワークの分離オプションが有効なRKE2/K3sクラスターでは、`system`プロジェクトがプロジェクトネットワークの分離オプションを上書きし、他のプロジェクトと通信し、ログを収集し、ヘルスを確認できるようにします。 |
プロジェクトの認可
標準ユーザーは、次の2つの状況でのみプロジェクトアクセスが許可されます:
-
管理者、クラスターオーナー、またはクラスターのメンバーが明示的に標準ユーザーをプロジェクトの*メンバー*タブに追加します。
-
標準ユーザーは、自分が作成したプロジェクトにアクセスできます。
プロジェクトの作成
このセクションでは、名前を付け、オプションのポッドセキュリティポリシー、メンバー、およびリソースクォータを持つ新しいプロジェクトを作成する方法について説明します。
新しいプロジェクトに名前を付けてください。
-
左上隅で、*☰ > クラスター管理*をクリックします。
-
*クラスター*ページで、プロジェクトを作成したいクラスターに移動し、*Explore*をクリックします。
-
をクリックします。
-
*プロジェクトを作成*をクリックします。
-
*プロジェクト名*を入力してください。
推奨:プロジェクトメンバーを追加
*メンバー*セクションを使用して、他のユーザーにプロジェクトへのアクセスと役割を提供します。
デフォルトでは、あなたのユーザーはプロジェクトの`Owner`として追加されます。
|
権限に関する注意事項:
|
メンバーを追加するには:
-
*メンバー*タブで、*追加*をクリックします。
-
*メンバーを選択*フィールドから、プロジェクトアクセスを割り当てたいユーザーまたはグループを検索します。外部認証が有効になっている場合にのみ、グループを検索できます。
備考-
結果が表示されるには、検索ボックスに少なくとも2文字を入力する必要があります。
-
ユーザーは、ユーザー名または表示名に基づいて検索できます。
-
検索は接頭辞ベースです(例:`Stan Dard`という名前のユーザーは、`Sta`を検索すると表示されますが、`Dar`を検索すると表示されません)かつ大文字と小文字を区別します。
-
-
*プロジェクトの権限*セクションで、役割を選択します。詳細については、プロジェクトロールに関するドキュメントを参照してください。
オプション:リソースクォータの追加
リソースクォータは、プロジェクト(およびそのネームスペース)が消費できるリソースを制限します。詳細については、リソースクォータを参照してください。
リソースクォータを追加するには、
-
*リソースクォータ*タブで、*リソースの追加*をクリックします。
-
*リソースタイプ*を選択してください。詳細については、リソースクォータを参照してください。
-
*プロジェクト制限*と*ネームスペースのデフォルト制限*の値を入力してください。
-
*オプション:*プロジェクト内で起動されるすべてのコンテナに適用される*コンテナのデフォルトリソース制限*を指定してください。このパラメータは、リソースクォータによって設定されたCPUまたはメモリ制限がある場合に推奨されます。個々のネームスペースまたはコンテナレベルで上書きすることができます。詳細については、コンテナのデフォルトリソース制限を参照してください。
-
[作成]をクリックします。
*結果:*プロジェクトが作成されました。クラスターの*プロジェクト/ネームスペース*ビューから確認できます。
| フィールド | 説明 |
|---|---|
プロジェクト制限 |
プロジェクトの全体的なリソース制限。 |
ネームスペースデフォルト制限 |
各ネームスペースで利用可能なデフォルトのリソース制限。この制限は、作成時にプロジェクト内の各ネームスペースに伝播されます。すべてのプロジェクトネームスペースの合計制限はプロジェクト制限を超えてはなりません。 |
プロジェクトの削除
-
左上隅で、*☰ > クラスター管理*をクリックします。
-
*クラスター*ページで、プロジェクトが接続されているクラスターに移動し、*探索*をクリックします。
-
をクリックします。
-
削除したいプロジェクトを見つけて、*⋮*をクリックします。
-
*削除*を選択します。
プロジェクトを削除すると、以前そのプロジェクトに関連付けられていたネームスペースはクラスターに残ります。これらのネームスペースは、Rancher UIの*プロジェクトにない*タブの*プロジェクト/ネームスペース*ページで見つけることができます。これらのネームスペースをプロジェクトに再割り当てするには、移動します。
詳細情報
パブリックAPIを通じて、よりプログラム的にプロジェクトやプロジェクトメンバーを作成できます。詳細については、プロジェクトワークフロードキュメントをご覧ください。