Serverless Kubernetes クラスターでは、ノードを作成または管理する必要はありません。これにより、ノードのセキュリティメンテナンスなどの運用保守 (O&M) タスクから解放され、基盤となるインフラストラクチャではなくアプリケーションに集中できます。このトピックでは、Serverless Kubernetes クラスターを使用して、公式の NGINX イメージに基づくオンライン Web アプリケーションを迅速にデプロイする方法について説明します。
作成したリソースには、30 分あたり約 0.05 USD がかかります。このトピックの手順を完了した後、作成したリソースを解放できます。
前提条件
Serverless Kubernetes クラスターを作成済みであること。詳細については、「Serverless Kubernetes クラスターの作成」をご参照ください。
クラスターの API サーバーにインターネット向けのエンドポイントをバインド済みであること。詳細については、「クラスターの API サーバーへのパブリックアクセスを制御する」をご参照ください。
クラスターが存在する VPC にインターネット NAT ゲートウェイが作成され、SNAT エントリが構成されていること。詳細については、「インターネット NAT ゲートウェイの SNAT 機能を使用してインターネットにアクセスする」をご参照ください。
ステップ 1: NGINX アプリケーションのデプロイ
コンソールを使用したデプロイ
ステップ 1: NGINX アプリケーションを作成し、Service を使用してアプリケーションを公開する
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、管理するクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
[デプロイメント] ページで、右上隅にある [イメージから作成] をクリックします。
[基本情報] ページでパラメーターを設定し、[次へ] をクリックします。
他のパラメーターにはデフォルト値を使用します。
パラメーター
例
アプリケーション名
nginx-deploy
レプリカ数
1
[コンテナー] ページでパラメーターを設定し、[次へ] をクリックします。
他のパラメーターにはデフォルト値を使用します。
パラメーター
例
イメージ名
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
必須リソース
CPU: 1 コア
メモリ: 2 GB
ポート
名前: example-port
サービスポート: 80
コンテナーポート: 80
プロトコル: TCP
[詳細設定] ページで、[Service] の横にある [作成] をクリックします。表示されるパネルでパラメーターを設定し、[OK] をクリックします。
他のパラメーターにはデフォルト値を使用します。
パラメーター
例
サービス名
nginx-deploy-svc-test
サービスタイプ
Server Load Balancer (LoadBalancer)
ロードバランサータイプ: Classic Load Balancer (CLB)
リソースの選択: リソースの作成
ポートマッピング
名前: example-map
サービスポート: 80
コンテナーポート: 80
プロトコル: TCP
[作成] をクリックし、次に [詳細の表示] をクリックします。
Deployment の詳細ページで、[Pod] タブをクリックし、Pod のステータスが [実行中] に変わるまで待ちます。次に、[アクセス方法] タブをクリックし、[外部エンドポイント] フィールドからパブリック IP アドレスをコピーします。
kubectl の使用
オンプレミスのマシンまたは Cloud Shell で kubectl を使用して、次の操作を実行できます。Cloud Shell で kubectl を使用する場合、config ファイルを構成する必要はありません。
ステップ 1: NGINX アプリケーションを作成し、Service を使用してアプリケーションを公開する
kubectl を使用して Serverless Kubernetes クラスターに接続します。詳細については、「kubectl を使用して Kubernetes クラスターに接続する」をご参照ください。
次のコードブロックを使用して nginx.yaml ファイルを作成します。
apiVersion: v1 kind: Service metadata: name: nginx-deploy-svc spec: ports: - port: 80 protocol: TCP selector: app: nginx type: LoadBalancer --- apiVersion: apps/v1 # Kubernetes のバージョンに対応する API バージョンを使用します。 kind: Deployment metadata: name: nginx-deploy labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 ports: - containerPort: 80 resources: requests: cpu: "1" memory: "2Gi"次のコマンドを実行して、クラスター内の nginx.yaml ファイルを使用してアプリケーションをデプロイします。
kubectl apply -f nginx.yaml予想される出力:
service/nginx-service created deployment.apps/nginx-deploy created次のコマンドを実行して、アプリケーションの詳細を表示します。
kubectl get deploy予想される出力:
NAME READY UP-TO-DATE AVAILABLE AGE nginx-deploy 1/1 1 1 9m32s次のコマンドを実行して Service の詳細を表示し、nginx-service Service のパブリック IP アドレス (EXTERNAL-IP) を記録します。
kubectl get svc予想される出力:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 172.XX.X.X <none> 443/TCP 10d nginx-service LoadBalancer 172.19.X.XXX 47.57.XX.XX 80:32278/TCP 39s
ステップ 2: NGINX アプリケーションへのアクセスのテスト
ブラウザで、Service のパブリック IP アドレス (EXTERNAL-IP) を入力し、Enter キーを押します。
次の図に示すように NGINX のウェルカムページが表示された場合、アプリケーションと Service は正常に動作しています。

次のステップ
アプリケーションの自動スケーリングポリシーを構成します。詳細については、「クラスターの自動スケーリングポリシーを構成する」をご参照ください。
自動スケーリングを構成しない場合は、次の手順を実行して作成したリソースを解放できます。
作成したアプリケーションとサービスの削除
Container Service for Kubernetes (ACK) コンソールの [クラスター] ページで、ターゲットクラスターの名前をクリックします。
左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。作成した NGINX アプリケーションを選択し、[一括削除] をクリックして、画面の指示に従って削除を確認します。
クラスターの削除
Serverless Kubernetes クラスターはパブリックプレビュー中であり、無料トライアルを提供しています。ただし、Serverless Kubernetes クラスターで使用される他の Alibaba Cloud サービスについては、サービスの課金ルールに基づいて料金を支払う必要があります。料金はこれらの Alibaba Cloud サービスによって個別に請求されます。構成が完了したら、次のいずれかの方法でクラスターを管理できます。
クラスターが不要になった場合は、ACK コンソールにログインします。[クラスター] ページで、クラスターの [アクション] 列で [その他] > [削除] を選択してクラスターを削除します。[クラスターの削除] ダイアログボックスで、[クラスターによって作成された ALB インスタンスの削除]、[クラスターによって作成された Alibaba Cloud DNS PrivateZone インスタンスの削除]、および [上記情報を理解し、指定したクラスターを削除します] を選択し、[OK] をクリックします。Serverless Kubernetes クラスターの削除方法の詳細については、「Serverless Kubernetes クラスターの削除」をご参照ください。
クラスターを引き続き使用する場合は、トライアル期間が終了する少なくとも 1 時間前に Alibaba Cloud アカウントにチャージし、アカウントの残高が 100 CNY 以上であることを確認してください。Serverless Kubernetes Pro クラスターで使用される Alibaba Cloud サービスの課金の詳細については、「クラウドサービス料金」をご参照ください。