このタスクについて
この例では、オーケストレーションテンプレート上のテンプレートをカスタマイズし、依存関係をベースにしたアプリケーションの作成方法を紹介します。
主要なコンポーネント:
含まれるリソース:
手順
- Container Service コンソールにログインします。
- 事前に用意したストレージボリューム要求を使用します。 2 つのストレージボリューム要求、"wordpress-pv-claim" および "wordpress-mysql-pv-claim"
を作成します。これらは、それぞれ "wordpress yaml" ファイルおよび "wordpress-mysql yaml" ファイルで対応するストレージボリュームのマウントに使用されます。
- 左側のナビゲーションウィンドウから をクリックします。クラスターおよび名前空間を選択し、右上角にある [作成] をクリックします。 作成過程について詳しくは『シークレットの作成』をご参照ください。

MySQL データベースの作成およびアクセスにユーザー名とパスワードが必要なため、ユーザー名とパスワードを管理するためにシークレットを作成します。
シークレットを使用する前に、暗号化に必要なシークレットを作成します。 この例では、MySQL のルートパスワードはシークレットとして作成され、シークレット名は "mysql-pass"
とします。 このシークレットは "wordpress" yaml ファイルおよび "wordpress-mysql" yaml ファイルで使用されます。

- 左側のナビゲーションウィンドウから をクリックし、右上角の [テンプレートで作成] をクリックします。

クラスターおよび名前空間を選択します。 WordPress のデプロイの作成に関する yaml ファイルは以下のようになります。
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: frontend
spec:
containers:
- image: wordpress:4
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql #アクセスする MySQL を指す名前を使用します。 MySQL サーバー名に対応した名前です。
- name: WORDPRESS_DB_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password-wordpress
ports:
- containerPort: 80
name: wordpress
volumeMounts:
- name: wordpress-pvc
mountPath: /var/www/html
volumes:
- name: wordpress-pvc
persistentVolumeClaim:
claimName: wordpress-pv-claim
MySQL デプロイの作成のための yaml ファイルは以下のようになります。
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: wordpress
tier: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password-mysql
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: wordpress-mysql-pvc
mountPath: /var/lib/mysql
volumes:
- name: wordpress-mysql-pvc
persistentVolumeClaim:
claimName: wordpress-mysql-pv-claim
- WordPress への外部からのアクセスを可能にするため、WordPress サービスにより公開されているアクセス方法を作成する必要があります。 この例では、Container
Service により、外部からのアクセスを提供する Alibaba Cloud Server Load Balancer の自動生成のため、LoadBalancer
タイプの WordPress サービスを作成します。
WordPress mysql 上で作成された WordPress デプロイのアクセスを有効化するため、WordPress mysql に対し サービス名を "Wordpress-mysql"
としたサービスを作成します。 WordPress に関しては、内部からのみ MySQL が呼び出されるため、MySQL に対する LoadBalancer タイプのサービスの作成は必要ありません。
サービスの作成については、『サービスの作成』をご参照ください。
WordPress サービスおよび MySQL サービスの作成に使われる yaml ファイルは以下のようになります。
apiVersion: v1
kind: Service
metadata:
name: wordpress
labels:
app: wordpress
spec:
ports:
-port: 80
selector:
app: wordpress
tier: frontend
type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
clusterIP: None
- デプロイ完了後、左側のナビゲーションウィンドウより をクリックします。 WordPress サービスを検索し、『外部エンドポイント』をご参照ください。
- ブラウザーから WordPress サービスの外部エンドポイントにアクセスします。Server Load Balancer により提供された IP アドレスから WordPress
アプリケーションにアクセスすることができます。
次のタスク
WordPress アプリケーションの設定中は、シークレットで設定したパスワードによりアプリケーションにログインできます。 さらに、WordPress アプリケーションの属するコンテナーにより生成されたデータはデータストレージボリュームに保存されます。