第2章 プロジェクト
2.1. プロジェクトの使用
プロジェクト を使用することにより、あるユーザーコミュニティーは、他のコミュニティーと切り離された状態で独自のコンテンツを整理し、管理することができます。
openshift-
および kube-
で始まる名前のプロジェクトは デフォルトプロジェクト です。これらのプロジェクトは、Pod として実行されるクラスターコンポーネントおよび他のインフラストラクチャーコンポーネントをホストします。そのため、OpenShift Container Platform では oc new-project
コマンドを使用して openshift-
または kube-
で始まる名前のプロジェクトを作成することができません。クラスター管理者は、oc adm new-project
コマンドを使用してこれらのプロジェクトを作成できます。
デフォルトプロジェクトでワークロードを実行したり、デフォルトプロジェクトへのアクセスを共有したりしないでください。デフォルトのプロジェクトは、コアクラスターコンポーネントを実行するために予約されています。
デフォルトプロジェクトである default
、kube-public
、kube-system
、openshift
、openshift-infra
、openshift-node
、および openshift.io/run-level
ラベルが 0
または 1
に設定されているその他のシステム作成プロジェクトは、高い特権があるとみなされます。Pod セキュリティーアドミッション、Security Context Constraints、クラスターリソースクォータ、イメージ参照解決などのアドミッションプラグインに依存する機能は、高い特権を持つプロジェクトでは機能しません。
2.1.1. プロジェクトの作成
OpenShift Container Platform Web コンソールまたは OpenShift CLI (oc
) を使用して、クラスター内にプロジェクトを作成できます。
2.1.1.1. Web コンソールを使用したプロジェクトの作成
OpenShift Container Platform Web コンソールを使用して、クラスター内にプロジェクトを作成できます。
openshift-
および kube-
で始まる名前のプロジェクトは OpenShift Container Platform によって重要 (Critical) と見なされます。そのため、OpenShift Container Platform では、Web コンソールを使用して openshift-
で始まるプロジェクトを作成することはできません。
前提条件
- OpenShift Container Platform のプロジェクト、アプリケーション、および他のワークロードを作成するために適切なロールおよびパーミッションがあることを確認します。
手順
Administrator パースペクティブを使用している場合:
-
Home
Projects に移動します。 Create Project をクリックします。
-
Create Project ダイアログボックスで、Name フィールドに、
myproject
などの一意の名前を入力します。 - オプション: プロジェクトの Display name および Description の詳細を追加します。
Create をクリックします。
プロジェクトのダッシュボードが表示されます。
-
Create Project ダイアログボックスで、Name フィールドに、
- オプション: Details タブを選択して、プロジェクトの詳細を表示します。
- オプション: プロジェクトに対する適切なパーミッションがある場合は、Project Access タブを使用して、プロジェクトの admin、edit、および view 権限を付与または取り消すことができます。
-
Home
Developer パースペクティブを使用している場合:
Project メニューをクリックし、Create Project を選択します。
図2.1 Create project
-
Create Project ダイアログボックスで、Name フィールドに、
myproject
などの一意の名前を入力します。 - オプション: プロジェクトの Display name および Description の詳細を追加します。
- Create をクリックします。
-
Create Project ダイアログボックスで、Name フィールドに、
- オプション: 左側のナビゲーションパネルを使用して Project ビューに移動し、プロジェクトのダッシュボードを表示します。
- オプション: プロジェクトダッシュボードで Details タブを選択し、プロジェクトの詳細を表示します。
- オプション: プロジェクトに対する適切なパーミッションがある場合は、プロジェクトダッシュボードの Project Access タブを使用して、プロジェクトの admin、edit、および view 権限を付与または取り消すことができます。
2.1.1.2. CLI を使用したプロジェクトの作成
クラスター管理者が許可する場合、新規プロジェクトを作成できます。
openshift-
および kube-
で始まる名前のプロジェクトは OpenShift Container Platform によって重要 (Critical) と見なされます。そのため、OpenShift Container Platform では oc new-project
コマンドを使用して openshift-
または kube-
で始まる名前のプロジェクトを作成することができません。クラスター管理者は、oc adm new-project
コマンドを使用してこれらのプロジェクトを作成できます。
手順
以下を実行します。
$ oc new-project <project_name> \ --description="<description>" --display-name="<display_name>"
以下に例を示します。
$ oc new-project hello-openshift \ --description="This is an example project" \ --display-name="Hello OpenShift"
作成できるプロジェクトの数は、システム管理者によって制限される場合があります。上限に達すると、新規プロジェクトを作成できるように既存プロジェクトを削除しなければならない場合があります。
2.1.2. プロジェクトの表示
OpenShift Container Platform Web コンソールまたは OpenShift CLI (oc
) を使用して、クラスター内のプロジェクトを表示できます。
2.1.2.1. Web コンソールを使用してプロジェクトを表示する
OpenShift Container Platform Web コンソールを使用して、アクセス権のあるプロジェクトを表示できます。
手順
Administrator パースペクティブを使用している場合:
-
ナビゲーションメニューで Home
Projects に移動します。 - 表示するプロジェクトを選択します。Overview タブには、プロジェクトのダッシュボードが含まれています。
- Details タブを選択して、プロジェクトの詳細を表示します。
- YAML タブを選択して、プロジェクトリソースの YAML 設定を表示および更新します。
- Workloads タブを選択して、プロジェクト内のワークロードを表示します。
- RoleBindings タブを選択して、プロジェクトのロールバインディングを表示および作成します。
-
ナビゲーションメニューで Home
Developer パースペクティブを使用している場合:
- ナビゲーションメニューの Project ページに移動します。
- 画面上部の Project ドロップダウンメニューから All Projects を選択し、クラスター内のすべてのプロジェクトをリスト表示します。
- 表示するプロジェクトを選択します。Overview タブには、プロジェクトのダッシュボードが含まれています。
- Details タブを選択して、プロジェクトの詳細を表示します。
- プロジェクトに対する適切なパーミッションがある場合は、Project access タブビューを選択し、プロジェクトの権限を更新します。
2.1.2.2. CLI を使用したプロジェクトの表示
プロジェクトを表示する際は、認証ポリシーに基づいて、表示アクセスのあるプロジェクトだけを表示できるように制限されます。
手順
プロジェクトのリストを表示するには、以下を実行します。
$ oc get projects
CLI 操作について現在のプロジェクトから別のプロジェクトに切り換えることができます。その後の操作についてはすべて指定のプロジェクトが使用され、プロジェクトスコープのコンテンツの操作が実行されます。
$ oc project <project_name>
2.1.3. Developer パースペクティブを使用したプロジェクトに対するアクセスパーミッションの提供
Developer パースペクティブで Project ビューを使用し、プロジェクトに対するアクセスを付与したり、取り消したりできます。
前提条件
- プロジェクトを作成している。
手順
ユーザーをプロジェクトに追加し、Admin、Edit、または View アクセスをユーザーに付与するには、以下を実行します。
- Developer パースペクティブで、Project ページに移動します。
- Project メニューからプロジェクトを選択します。
- Project Access タブを選択します。
Add access をクリックして、パーミッションの新規の行をデフォルトのパーミッションに追加します。
図2.2 プロジェクトパーミッション
- ユーザー名を入力し、Select a role ドロップダウンリストをクリックし、適切なロールを選択します。
- Save をクリックして新規パーミッションを追加します。
以下を使用することもできます。
- Select a role ドロップダウンリストを使用して、既存ユーザーのアクセスパーミッションを変更できます。
- Remove Access アイコンを使用して、既存ユーザーのプロジェクトへのアクセスパーミッションを完全に削除できます。
高度なロールベースのアクセス制御は、Administrator パースペクティブの Roles および Roles Binding ビューで管理されます。
2.1.4. Web コンソールを使用した利用可能なクラスターのロールのカスタマイズ
Web コンソールの Developer パースペクティブでは、Project
クラスター管理者は、クラスター全体のすべてのプロジェクトに対して Project access ページでどのクラスターロールを使用できるかを定義できます。Console
設定リソースの spec.customization.projectAccess.availableClusterRoles
オブジェクトをカスタマイズすることで、使用可能なロールを指定できます。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
-
Administrator パースペクティブで、Administration
Cluster settings に移動します。 - Configuration タブをクリックします。
-
Configuration resource リストから、Console
operator.openshift.io
を選択します。 - YAML タブに移動し、YAML コードを表示し、編集します。
spec
の YAML コードで、プロジェクトアクセスに使用可能なクラスターロールのリストをカスタマイズします。次の例では、デフォルトのadmin
、edit
、およびview
ロールを指定します。apiVersion: operator.openshift.io/v1 kind: Console metadata: name: cluster # ... spec: customization: projectAccess: availableClusterRoles: - admin - edit - view
-
Save をクリックして、
Console
設定リソースへの変更を保存します。
検証
- Developer パースペクティブで、Project ページに移動します。
- Project メニューからプロジェクトを選択します。
- Project access タブを選択します。
-
Role 列のメニューをクリックし、使用可能なロールが
Console
リソース設定に適用した設定と一致することを確認します。
2.1.5. プロジェクトへの追加
Developer パースペクティブの +Add ページを使用して、プロジェクトに項目を追加できます。
前提条件
- プロジェクトを作成している。
手順
- Developer パースペクティブで、+Add ページに移動します。
- Project メニューからプロジェクトを選択します。
- +Add ページで項目をクリックし、ワークフローに従います。
また、Add* ページの検索機能を使用して、プロジェクトに追加する追加アイテムを見つけます。画面上部の Add の下にある をクリックし、検索フィールドにコンポーネントの名前を入力します。
2.1.6. プロジェクトのステータスの確認
OpenShift Container Platform Web コンソールまたは OpenShift CLI (oc
) を使用して、プロジェクトのステータスを表示できます。
2.1.6.1. Web コンソールを使用したプロジェクトのステータスの確認
Web コンソールを使用して、プロジェクトのステータスを確認できます。
前提条件
- プロジェクトを作成している。
手順
Administrator パースペクティブを使用している場合:
-
Home
Projects に移動します。 - 一覧からプロジェクトを選択します。
- Overview ページで、プロジェクトのステータスを確認します。
-
Home
Developer パースペクティブを使用している場合:
- Project ページに移動します。
- Project メニューからプロジェクトを選択します。
- Overview ページで、プロジェクトのステータスを確認します。
2.1.6.2. CLI を使用したプロジェクトのステータスの確認
OpenShift CLI (oc
) を使用して、プロジェクトのステータスを確認できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - プロジェクトを作成している。
手順
プロジェクトに切り替えます。
$ oc project <project_name> 1
- 1
<project-name>
は、プロジェクト名に置き換えます。
プロジェクトの概要を取得します。
$ oc status
2.1.7. プロジェクトの削除
OpenShift Container Platform Web コンソールまたは OpenShift CLI (oc
) を使用して、プロジェクトを削除できます。
プロジェクトを削除する際に、サーバーはプロジェクトのステータスを Active から Terminating に更新します。次に、サーバーは Terminating 状態のプロジェクトからすべてのコンテンツをクリアしてから、最終的にプロジェクトを削除します。プロジェクトのステータスが Terminating の場合、新規のコンテンツをプロジェクトに追加することはできません。プロジェクトは CLI または Web コンソールから削除できます。
2.1.7.1. Web コンソールを使用したプロジェクトの削除
Web コンソールを使用してプロジェクトを削除できます。
前提条件
- プロジェクトを作成している。
- プロジェクトを削除するために必要なパーミッションを持っている。
手順
Administrator パースペクティブを使用している場合:
-
Home
Projects に移動します。 - 一覧からプロジェクトを選択します。
プロジェクトの Actions ドロップダウンメニューをクリックし、Delete Project を選択します。
注記プロジェクトを削除するために必要なパーミッションがない場合は、Delete Project オプションは選択できません。
- Delete Project? ペインで、プロジェクトの名前を入力して削除を確認します。
- Delete をクリックします。
-
Home
Developer パースペクティブを使用している場合:
- Project ページに移動します。
- Project メニューから削除するプロジェクトを選択します。
プロジェクトの Actions ドロップダウンメニューをクリックし、Delete Project を選択します。
注記プロジェクトを削除するために必要なパーミッションがない場合は、Delete Project オプションは選択できません。
- Delete Project? ペインで、プロジェクトの名前を入力して削除を確認します。
- Delete をクリックします。
2.1.7.2. CLI を使用したプロジェクトの削除
OpenShift CLI (oc
) を使用してプロジェクトを削除できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - プロジェクトを作成している。
- プロジェクトを削除するために必要なパーミッションを持っている。
手順
プロジェクトを削除します。
$ oc delete project <project_name> 1
- 1
<project_name>
を、削除するプロジェクトの名前に置き換えます。