🦔
初心者向け!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コピー
- Webコンソールで既存のリソースを作成。
- 作成したリソースの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から5に変更。
spec:
replicas: 5
- 更新を適用。
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 create と oc apply の違い
oc create と oc applyは似たようなコマンドですが、以下違いがあるので適用シナリオとともに覚えておきましょう。
違い
| コマンド | 特徴 |
|---|---|
oc create |
リソースを作成。現在のリソース状態を考慮せず、単純に新しいリソースを作成する。 |
oc apply |
宣言的管理を行う。既存のリソース状態を確認し、マニフェストと差分を適用する。 |
適用シナリオ
-
oc create: 初めてリソースを作成する場合。 -
oc apply: 既存リソースを変更・更新する場合。
11.おわりに
リソースマニフェストからアプリケーションをデプロイすることで、設定の一貫性と効率性が向上します。
--dry-runオプションやoc applyを活用することで、変更のテストや宣言的管理を行うことが可能です。これにより、開発者は安心してアプリケーションの構成変更やデプロイを行うことができます。
1回で覚えるのは難しいと思うので、何度かトライして覚えるで全然大丈夫です。
今後もOpenShiftについて解説していきます。
おわりっ!
Discussion