Cloud Shellを使用して、Elastic Container Instanceリソースを管理できます。 このトピックでは、Cloud Shellを使用してACKサーバーレスクラスターを作成し、クラスターにエラスティックコンテナインスタンスを作成してインスタンスにWordPressアプリケーションをデプロイする方法について説明します。
背景情報
WordPressは、PHP言語で書かれたブログ公開システムです。 WordPressをコンテンツ管理システム (CMS) として使用するか、WordPressを使用してPHP言語とMySQLデータベースをサポートするサーバー上にWebサイトを構築できます。
Cloud Shellは、Alibaba Cloudが提供するCLIです。 ブラウザーでCloud Shellを実行して、Alibaba Cloudリソースを管理できます。 Cloud Shellの詳細については、Cloud Shellとは
ACKサーバーレスクラスターの作成
Cloud Shellを開き、表示されるメッセージを確認し、チュートリアルスクリプトをCloud Shellに複製します。
WordPressチュートリアルがあるディレクトリに移動します。
cd eci-wordpress
(オプション) クラスターの設定ファイルを変更します。
vim create.json
create.jsonファイルには、ACKサーバーレスクラスターを作成するためのパラメーターが含まれています。 次のコードは、パラメーターのデフォルト設定を提供します。
{ "cluster_type": "ManagedKubernetes", "profile": "Serverless", "name": "wordpress-demo", "region_id": "cn-hangzhou", "endpoint_public_access": true, "snat_entry": true, "addons": [{ "name": "csi-provisioner", "config": "" }], "zoneid": "cn-hangzhou-j" }
次のパラメータを変更できます。
name: クラスターの名前。
region_id: クラスターが存在するリージョンのID。
endpoint_public_access: APIサーバーのインターネットアクセスを有効にするかどうかを指定します。
snat_entry: NATゲートウェイを作成し、送信元ネットワークアドレス変換 (SNAT) ルールを設定するかどうかを指定します。
zoneid: クラスターが存在するゾーンのID。
次のコマンドを実行して、ACKサーバーレスクラスターを作成します。
aliyun cs POST /clusters --header "Content-Type=application/json" --body "$(cat create.json)"
クラスターが作成されると、次のようなメッセージが返されます。
cluster_id
はクラスターidを示します。{ "cluster_id": "c5789a864e71848ab9fa57013********", "instanceId": "c5789a864e71848ab9fa57013********", "request_id": "C5044E47-7AAD-5D6F-A8D9-2249F1******", "task_id": "T-6528e986ba8151096d******" }
クラスターのプロパティを表示します。
aliyun cs GET /clusters/<YOUR-CLUSTER-ID>
WordPressアプリケーションのデプロイ
クラスターにWordPressをインストールする前に、作成したACKサーバーレスクラスターが初期化されていることを確認してください。 初期化には3〜5分かかります。
ACKサーバーレスクラスターを管理します。
source use-k8s-cluster ${Cluster ID}
上記のコマンドの {Cluster ID} をクラスターのIDに置き換えます。 例:
source use-k8s-cluster c5789a864e71848ab9fa57013********
WordPressアプリケーションをデプロイします。
重要wordpress-all-in-one-pod.yamlファイルを使用してWordPressアプリケーションをデプロイすると、EIPアドレス (elastic IPアドレス) が自動的に作成され、EIPがWordPressアプリケーションが対応するElastic Container Instanceベースのポッドに関連付けられます。
kubectl apply -f wordpress-all-in-one-pod.yaml
説明Cloud Shellを開くと、アプリケーションのYAMLスクリプトをCloud Shellに複製するように求められます。 eci-wordpressディレクトリからwordpress-all-in-one-pod.yamlスクリプトを複製します。
デプロイの進行状況を表示します。
kubectl get pods
次の結果が返されます。 ポッドのステータスが [実行中] に変わると、WordPressアプリケーションがデプロイされます。
NAME READY STATUS RESTARTS AGE wordpress 2/2 Running 0 5m59s
WordPressアプリケーションのEIPを表示します。
kubectl get -o json pod wordpress |grep "k8s.aliyun.com/allocated-eipAddress"
次の出力が返されます。
"k8s.aliyun.com/allocated-eipAddress": "47.99.XX.XX"
WordPressアプリケーションのセキュリティグループを設定します。
セキュリティグループのIDを取得します。
kubectl get -o json pod wordpress |grep "k8s.aliyun.com/eci-security-group"
次の出力が返されます。
"k8s.aliyun.com/eci-security-group": "sg-bp1fw6ecxb0obm ******"
セキュリティグループのポート80を有効にします。
aliyun ecs AuthorizeSecurityGroup --RegionId ${Region ID} --SecurityGroupId ${Security group ID} --IpProtocol tcp --PortRange 80/80 --SourceCidrIp 0.0.0.0/0 --Priority 100
コマンドの {Region ID} と {Security group ID} を、ビジネスシナリオの実際のリージョンIDとセキュリティグループIDに置き換えます。 例:
aliyun ecs AuthorizeSecurityGroup --RegionId cn-hangzhou --SecurityGroupId sg-bp1fw6ecxb0obm****** --IpProtocol tcp --PortRange 80/80 --SourceCidrIp 0.0.0.0/0 --Priority 100
WordPressをインストールしてWordPressアプリケーションにログインする
WordPressアプリケーションにアクセスします。
ブラウザにWordPressアプリケーションのEIPを入力します。 例:
http:// 47.99.XX.XX
言語を選択し、[続行] をクリックして、開くWordPress Webサイトの基本情報を入力し、[WordPressのインストール] をクリックします。
次のパラメーターを設定する必要があります。
サイトタイトル: WordPress Webサイトの名前。
Username: WordPressへのログインに使用するユーザー名。 ユーザー名が安全であることを確認してください。
パスワード: WordPressへのログインに使用するパスワード。 強力なパスワードを指定することを推奨します。
メール: 通知の受信に使用するメール。
[ログイン] をクリックします。
WordPressのインストール時に指定したユーザー名とパスワードを入力し、[ログイン] をクリックします。
WordPressにログインした後、指定したWordPress Webサイトを開くことができます。