【OpenShift】プロジェクトテンプレートの作り方
0.はじめに
OpenShift Container Platform(以下、OCP)入門者向けに、プロジェクトテンプレートについて解説します。
OCPのプロジェクトテンプレートは、新しいプロジェクトを作成する際に、事前に設定された標準的なリソース制限や構成を自動的に適用する仕組みです。
これにより、各プロジェクトのリソース制限や構成作業を効率化し、一貫性のある環境を提供できます。
では、次の章から具体的な解説を進めます!
1.プロジェクトテンプレートのメリット
プロジェクトテンプレートを利用するメリットは以下の通りです。
-
効率的なリソース管理:
プロジェクトごとの設定作業を削減し、作業時間を短縮します。 -
設定の一貫性:
全プロジェクトで同じリソース制限や構成が適用され、環境間の違いを防ぎます。 -
運用ミスの防止:
手動設定によるミスを削減し、標準化された構成を保証します。
2.プロジェクトテンプレートの構成手順
以下はプロジェクトテンプレートを構成する手順の例です。
1. テンプレートの作成
クラスターに既存のブートストラップテンプレートを生成し、それをカスタマイズします。
oc adm create-bootstrap-project-template -o yaml > template.yaml
template.yaml
をエディタで開きます。
vi template.yaml
- 必要に応じて、以下のような設定を追加または編集します。
- リソースクォータ
- リミットレンジ
- メタデータ(名前やラベルなど)
テンプレートの例:
apiVersion: v1
kind: Template
metadata:
name: custom-project-template
objects:
- apiVersion: v1
kind: ResourceQuota
metadata:
name: default-quota
spec:
hard:
cpu: "2"
memory: "4Gi"
pods: "10"
- apiVersion: v1
kind: LimitRange
metadata:
name: default-limit
spec:
limits:
- type: Container
max:
cpu: "1"
memory: "1Gi"
min:
cpu: "100m"
memory: "128Mi"
2. テンプレートの適用
テンプレートをopenshift-config
名前空間に作成します。
oc create -f template.yaml -n openshift-config
実行結果の例:
template.template.openshift.io/custom-project-template created
3. クラスターにテンプレートを適用
新しいテンプレートをクラスター全体に適用するために、プロジェクトのデフォルト設定を更新します。
oc edit projects.config.openshift.io/cluster
-
編集内容の例:
spec.projectRequestTemplate.name
をテンプレート名(例:custom-project-template
)に変更します。
変更例:
spec:
projectRequestTemplate:
name: custom-project-template
4. OpenShift APIサーバーの再起動を確認
プロジェクトテンプレートの変更後、APIサーバーPodが再起動することで新しい設定が適用されます。
oc get pod -n openshift-apiserver -w
実行結果の例:
NAME READY STATUS RESTARTS AGE
apiserver-58b4c5f7d7-abcde 1/1 Running 0 5m
5. 新しいプロジェクトを作成してテスト
テンプレートが正しく適用されることを確認するため、新しいプロジェクトを作成します。
oc new-project test-project
作成されたプロジェクトのリソースクォータを確認します。
oc get quota
実行結果の例:
NAME AGE
default-quota 1m
リミットレンジの設定を確認します。
oc describe limitrange
実行結果の例:
Name: default-limit
Namespace: test-project
Type Resource Min Max Default Request Default Limit
---- -------- ---- ---- --------------- -------------
Container cpu 100m 1 300m 500m
memory 128Mi 1Gi 200Mi 256Mi
3.おわりに
今回はOpenShiftのプロジェクトテンプレートについて理解を深めるために、以下を学びました。
-
リソース制限の標準化:
各プロジェクトで一貫したリソース制限を適用したい場合。 -
新規プロジェクト作成の効率化:
新しいプロジェクトの設定を迅速かつ正確に行いたい場合。 -
開発環境の制御:
開発者が適切なリソースを使用し、クラスター全体を安定させたい場合。
1回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。
今後もOpenShiftについて解説していきます。
おわりっ!
Discussion