🪆

【OpenShift】プロジェクトテンプレートの作り方

2024/12/22に公開

0.はじめに

OpenShift Container Platform(以下、OCP)入門者向けに、プロジェクトテンプレートについて解説します。

OCPのプロジェクトテンプレートは、新しいプロジェクトを作成する際に、事前に設定された標準的なリソース制限や構成を自動的に適用する仕組みです。

これにより、各プロジェクトのリソース制限や構成作業を効率化し、一貫性のある環境を提供できます。

では、次の章から具体的な解説を進めます!

1.プロジェクトテンプレートのメリット

プロジェクトテンプレートを利用するメリットは以下の通りです。

  1. 効率的なリソース管理:
    プロジェクトごとの設定作業を削減し、作業時間を短縮します。

  2. 設定の一貫性:
    全プロジェクトで同じリソース制限や構成が適用され、環境間の違いを防ぎます。

  3. 運用ミスの防止:
    手動設定によるミスを削減し、標準化された構成を保証します。

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. リソース制限の標準化:
    各プロジェクトで一貫したリソース制限を適用したい場合。

  2. 新規プロジェクト作成の効率化:
    新しいプロジェクトの設定を迅速かつ正確に行いたい場合。

  3. 開発環境の制御:
    開発者が適切なリソースを使用し、クラスター全体を安定させたい場合。

1回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。

今後もOpenShiftについて解説していきます。

おわりっ!

参考サイト

Discussion