OpenShiftプロジェクトとは?作成から管理まで徹底解説
0.はじめに
OpenShift Container Platform(以下、OCP)入門者向けに、OpenShiftで使用されるプロジェクトの概念、プロジェクトの作成および削除方法について解説します。
これらを適切に理解することで、プロジェクトの管理を適切に行えるようになります。
- プロジェクトの概念
- プロジェクトの作成
- プロジェクトの削除
では、次の章から具体的な解説を進めます!
1.プロジェクトの概念
OpenShiftにおけるプロジェクトは、Kubernetesの「Namespace(名前空間)」の概念に基づいており、リソースの論理的なグループを表します。
プロジェクトは、アプリケーションやリソースを隔離し、アクセス制御やリソース管理を行う単位です。ユーザーごとにアクセス制限を設定したり、アプリケーションごとに分離された環境を提供するために使用されます。
引用元:『STACKSIMPLIFY』
- リソースの論理的なグループ化: プロジェクトは、Pod、Service、ConfigMap、Secret、VolumeなどのKubernetesリソースを1つにまとめます。
- アクセス制御: 各プロジェクトには、特定のユーザーやグループがアクセス権を持ちます。プロジェクトごとに異なるユーザーやチームがアプリケーションを開発・デプロイできます。
- リソースの分離: プロジェクト間でリソースが分離されるため、異なるプロジェクト間でリソースの衝突が発生することなく、個別に管理できます。
- リソースの管理: プロジェクト単位でリソース使用量(CPU、メモリ、ストレージなど)のクォータを設定できます。
oc new-project
コマンド)
2. プロジェクトの作成 (プロジェクトは oc new-project
コマンドで作成します。新しいプロジェクトを作成する際には、プロジェクト名とオプションで説明やディスプレイネームを指定できます。
コマンド例:
oc new-project my-new-project --display-name="My New Project" --description="This is a new project for testing"
実行結果例:
Now using project "my-new-project" on server "https://api.crc.testing:6443".
You can add applications to this project with the 'new-app' command. For example, try:
oc new-app rails-postgresql-example
to build a new example application in Ruby. Or use kubectl to deploy a simple Kubernetes application:
kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.43 -- /agnhost serve-hostname
- my-new-project: プロジェクト名。
- --display-name: プロジェクトの表示名(任意で、GUIやCLIで表示される)。
- --description: プロジェクトの説明。
Webコンソールでのプロジェクト作成
- OpenShiftのWebコンソールに管理者権限でログインします。
- 左のメニューから「プロジェクト」を選択し、「プロジェクトを作成」ボタンをクリックします。
- プロジェクト名、表示名、説明を入力し、「作成」をクリックします。
これにより、新しいプロジェクトがWebコンソール上で作成されます。
oc get projects
コマンド)
3. プロジェクトの表示 (現在のユーザーがアクセスできるプロジェクトの一覧を確認するには、oc get projects
コマンドを使用します。
コマンド例:
oc get projects
実行結果例:
NAME DISPLAY NAME STATUS
my-new-project My New Project Active
default Default Active
kube-system Kubernetes System Active
Webコンソールでプロジェクトの表示
- Webコンソールの「プロジェクト」セクションに移動します。
- 既存のプロジェクトがリスト形式で表示されます。
ここで、詳細情報を確認するために各プロジェクトをクリックできます。
oc describe project
コマンド)
4. プロジェクトの詳細情報 (特定のプロジェクトの詳細情報を表示するには、oc describe project
コマンドを使います。
コマンド例:
oc describe project my-new-project
実行結果例:
Name: my-new-project
Created: 8 minutes ago
Labels: kubernetes.io/metadata.name=my-new-project
pod-security.kubernetes.io/audit=restricted
pod-security.kubernetes.io/audit-version=v1.24
pod-security.kubernetes.io/warn=restricted
pod-security.kubernetes.io/warn-version=v1.24
Annotations: openshift.io/description=This is a new project for testing
openshift.io/display-name=My New Project
openshift.io/requester=kubeadmin
openshift.io/sa.scc.mcs=s0:c26,c10
openshift.io/sa.scc.supplemental-groups=1000670000/10000
openshift.io/sa.scc.uid-range=1000670000/10000
Display Name: My New Project
Description: This is a new project for testing
Status: Active
Node Selector: <none>
Quota: <none>
Resource limits: <none>
Webコンソールでのプロジェクト詳細確認
- Webコンソールで「プロジェクト」をクリックし、確認したいプロジェクト名を選択します。
- プロジェクトの詳細情報が表示され、リソースやアクセス権、ラベルなどの情報を確認できます。
oc delete project
コマンド)
5. プロジェクトの削除 (不要になったプロジェクトを削除するには、oc delete project
コマンドを使用します。プロジェクトを削除すると、その中に存在するすべてのリソース(Pod、Service、ConfigMapなど)が削除されます。
コマンド例:
oc delete project my-new-project
実行結果例:
project.project.openshift.io "my-new-project" deleted
削除が完了すると、プロジェクトとその関連リソースは完全に削除されます。
Webコンソールでのプロジェクト削除
- Webコンソールで「プロジェクト」を選択し、削除したいプロジェクトに移動します。
- プロジェクト画面右上にある「アクション」メニューを開き、「プロジェクトを削除」を選択します。
oc project
コマンド)
6. プロジェクトの切り替え (現在操作しているプロジェクトを切り替えるには、oc project
コマンドを使用します。
コマンド例:
oc project my-new-project
実行結果例:
Now using project "my-new-project" on server "https://api.example.com:6443".
このコマンドを使うと、新しいプロジェクトに切り替わり、そのプロジェクト内でのリソース操作が可能になります。
Webコンソールでのプロジェクト切り替え
- Webコンソールで「プロジェクト」をクリックし、選択したいプロジェクトをクリックします。
- そのプロジェクト内での操作が可能になります。
7.おわりに
今回はOpenShiftで使用されるプロジェクトについて理解を深めるために、以下を学びました。
- プロジェクトの概念: OpenShiftのプロジェクトは、KubernetesのNamespaceに相当し、アプリケーションのリソースを論理的にグループ化する単位です。アクセス制御やリソース管理がプロジェクト単位で行われます。
-
プロジェクトの作成:
oc new-project
コマンドでプロジェクトを作成し、アプリケーションやリソースをその中に展開します。 -
プロジェクトの削除:
oc delete project
コマンドでプロジェクトを削除することができます。これにより、プロジェクト内のすべてのリソースが削除されます。
プロジェクトは、チームやアプリケーションごとにリソースを隔離し、管理するための基本的な単位としてOpenShiftで重要な役割を果たします。
1回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。
今後もOpenShiftについて解説していきます。
おわりっ!
Discussion