👩‍🍳

【OpenShift】リソースのインポート・エクスポート・抽出方法

2024/10/06に公開

0.はじめに

OpenShift Container Platform(以下、OCP)入門者向けに、ocコマンドでリソースのインポート・エクスポート・抽出する方法を解説します。

本記事の内容に沿って、ハンズオンいただくと以下を習得できます。

  • リソースのインポート方法
  • リソースのエクスポート方法
  • リソースの抽出方法

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

1. リソースのインポート(oc apply コマンド)

リソースのインポートとは、定義されたYAMLやJSON形式のリソースファイルを基に、リソースをクラスターに適用する操作です。oc applyコマンドを使ってリソースを作成・更新できます。

例: リソースのインポート

oc apply -f my-deployment.yaml

このコマンドは、my-deployment.yaml ファイルに定義されたDeploymentリソースをOpenShiftクラスターに適用します。新しいリソースを作成するか、既存のリソースを更新します。

my-deployment.yaml の例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  labels:
    app: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: openshift/hello-openshift
        ports:
        - containerPort: 8080

実行結果:

oc apply を実行すると、このファイルの内容がクラスターに適用され、指定されたリソースが作成または更新されます。

例えば、この例では my-app という名前のDeploymentが作成され、指定されたコンテナイメージでPodがデプロイされます。

2. リソースのエクスポート(oc get コマンド)

リソースのエクスポートは、クラスター内に存在するリソースの定義をファイルに出力する操作です。これにより、リソースの設定を保存し、他の環境で再利用するための基盤を作成できます。

oc getコマンドを使用して、リソースをYAMLまたはJSON形式で出力できます。

例: リソースのエクスポート(YAML形式)

oc get deployment my-app -o yaml > my-deployment.yaml

このコマンドは、my-app デプロイメントの定義をYAML形式で取得し、my-deployment.yaml ファイルに保存します。

実行結果:

my-deployment.yaml に現在の my-app デプロイメントの設定が出力されます。

このファイルを別の環境に移して、oc apply で再度適用すれば、同じリソースを他のクラスターに再現できます。

JSON形式でのエクスポート

oc get deployment my-app -o json > my-deployment.json

このコマンドは、my-app デプロイメントをJSON形式でエクスポートします。

3. リソースのエクスポートと抽出(oc extract コマンド)

oc extract コマンドを使用して、SecretConfigMapなどのリソースからファイルを抽出することができます。これは、クラスター内に保存されている設定や機密情報を取得する際に便利です。

例: ConfigMapからファイルを抽出

oc extract configmap/my-configmap --to=./extracted

このコマンドは、my-configmap というConfigMapの中に保存されているデータを、ローカルディレクトリ ./extracted に抽出します。

Secretの例:

oc extract secret/my-secret --to=./secrets

このコマンドは、my-secret という名前のSecretリソースからデータをローカルの ./secrets フォルダに抽出します。

4.おわりに

今回はocコマンドでリソース状態を効率的に確認する方法を理解するために、以下を学びました。

  • リソースのインポートoc apply): YAMLやJSON形式のリソースファイルを使って、OpenShiftクラスターにリソースを作成・更新すること。
  • リソースのエクスポートoc get): クラスター内のリソース定義をYAMLまたはJSON形式で取得し、ファイルに保存してバックアップや再利用を行うこと。
  • リソースの抽出oc extract): SecretやConfigMapからファイルを抽出して、設定や機密データをローカルに取得すること。

これらの機能を使うことで、リソースの移行、バックアップ、再デプロイを簡単に行うことができ、柔軟なクラスター管理が可能になります。

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

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

おわりっ!

参考サイト

Red Hat Documentation 第1章 OpenShift CLI (oc)
Red Hat Documentation OpenShift Container Platform 4.16

Discussion