🦔

初心者向け!OpenShiftのYAML作成と適用

に公開

0.はじめに

OpenShift Container Platform(以下、OCP)入門者向けに、YAML作成と適用方法について解説します。

リソースマニフェストは、OpenShiftやKubernetesでアプリケーションをデプロイするためのYAML形式の設定ファイルです。

このファイルにアプリケーションの構成(リソースの種類、名前、設定内容など)を記述し、それをクラスターに適用することで、リソースが自動的に作成・管理されます。

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

1. リソースマニフェストの基本構造

リソースマニフェストには、以下の主要要素が含まれます:

基本構造

apiVersion: apps/v1               # リソースのAPIバージョン
kind: Deployment                  # リソースの種類(Deployment, Serviceなど)
metadata:                         # リソースのメタ情報(名前、ラベルなど)
  name: my-deployment             # リソースの名前
spec:                             # リソースの仕様(詳細な設定)
  replicas: 1                     # レプリカ数
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: nginx
        image: bitnami/nginx
        ports:
        - containerPort: 80

2. リソースマニフェストの作成方法

手法1: WebコンソールからのYAMLコピー

  1. Webコンソールで既存のリソースを作成。
  2. 作成したリソースのYAMLをコピーして編集。

手法2: --dry-runオプションを使用

CLIを使用してマニフェストを生成。たとえば、Deploymentを生成するには以下を実行します。

oc create deployment my-deployment -o yaml --image=bitnami/nginx --save-config --dry-run=client > my-deployment.yaml
  • --dry-run=client: 実際にリソースを作成せず、ローカルでマニフェストを生成。
  • -o yaml: YAML形式で出力。
  • > my-deployment.yaml: ファイルに保存。

生成されたマニフェストを確認:

cat my-deployment.yaml

3. アプリケーションのデプロイ手順

1. 開発者権限でログイン

oc login -u developer -p developer https://api.crc.testing:6443

2. 新しいプロジェクトを作成

oc new-project manifests

3. デプロイメントマニフェストを適用

作成したマニフェストをクラスターに適用し、Deploymentリソースを作成します。

oc create -f my-deployment.yaml

4. デプロイメントの状態確認

デプロイメントのリソース確認

oc get deployments

詳細確認

oc describe deployment my-deployment

5. デプロイメントマニフェストの更新

変更例: レプリカ数の変更

  1. マニフェストを編集し、レプリカ数を1から5に変更。
spec:
  replicas: 5
  1. 更新を適用。
oc apply -f my-deployment.yaml
  • oc apply: マニフェストを適用し、既存のリソースを更新。
  • 保存場所について: OpenShiftはoc applyで適用したマニフェストの状態をサーバー側(kube control plane)に保存し、リソースの宣言的管理を行います。

6. ドライランオプションでのテスト

1. サーバー側でのテスト(リソース未作成)

oc apply -f my-deployment.yaml --dry-run=server
  • サーバーでリソースの適用をシミュレートします。

2. クライアント側でのテスト

oc apply -f my-deployment.yaml --dry-run=client
  • ローカルでリソースの適用をシミュレートします。

3. YAML出力の確認

oc apply -f my-deployment.yaml --dry-run=client -o yaml

4. スキーマ検証

リソースがKubernetesスキーマに適合しているかを検証します。

oc apply -f my-deployment.yaml --dry-run=server --validate=true

7. デプロイメントとマニフェストの差分確認

マニフェストと実際のリソースの状態の違いを表示します。

oc diff -f my-deployment.yaml

8. デプロイメントの再起動

oc rollout restart deployment my-deployment

9. デプロイメントの削除

oc delete -f my-deployment.yaml

10. oc createoc apply の違い

oc createoc applyは似たようなコマンドですが、以下違いがあるので適用シナリオとともに覚えておきましょう。

違い

コマンド 特徴
oc create リソースを作成。現在のリソース状態を考慮せず、単純に新しいリソースを作成する。
oc apply 宣言的管理を行う。既存のリソース状態を確認し、マニフェストと差分を適用する。

適用シナリオ

  • oc create: 初めてリソースを作成する場合。
  • oc apply: 既存リソースを変更・更新する場合。

11.おわりに

リソースマニフェストからアプリケーションをデプロイすることで、設定の一貫性と効率性が向上します。

--dry-runオプションやoc applyを活用することで、変更のテストや宣言的管理を行うことが可能です。これにより、開発者は安心してアプリケーションの構成変更やデプロイを行うことができます。

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

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

おわりっ!

参考サイト

Discussion