0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSTSを使用してKubernetes用のAlibaba Cloud Container ServiceにMySQLサーバをデプロイ

Last updated at Posted at 2020-12-08

このチュートリアルでは、VSTSを使用してAlibaba Cloud Container Service for Kubernetes上にMySQLサーバをデプロイし、継続的なインテグレーションと継続的なデプロイを行います。

本ブログは英語版からの翻訳です。オリジナルはこちらからご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。

Alibaba Cloud Tech Share執筆者、Nadaraj Prabhu。Tech Shareは、クラウドコミュニティ内で技術的な知識やベストプラクティスを共有することを奨励するAlibaba Cloudのインセンティブプログラムです。

Kubernetes用のアリババコンテナサービスを作成する

ステップ1:リンクのAlibaba Cloud Consoleにサインインします。

ステップ 2: Productsに移動し、「Elastic Computing」カテゴリの「コンテナサービス」をコンテナとして選択し、Kubernetes Serviceを選択します。

image.png

ステップ3:今すぐ "Kubernetes "としてコンテナサービスを選択し、その後、 「Kubernetesクラスタの作成 」を右クリックします。

image.png

ステップ4: クラスタ名、地域(場所)、ゾーン、VPC(仮想プライベート接続、既存のものを使用するか、新しいものを作成することができます)を提供します。ノードタイプはデフォルトのサブスクリプションタイプで、私の場合は "Pay-As-You-Go "です。

image.png

注:現在、Alibaba Container Service for Kubernetesは "Pay-As-You-Go "サブスクリプションのみをサポートしています。

ステップ5: 次にスクロールダウンして「MASTER Configuration」に進み、マスターインスタンスのSKUサイズ(CPUとRAM)とDisk TypeとDisk Sizeを選択します。

次にWorkerの設定で、インスタンスのSKUサイズ(CPUとRAM)、ノード数、ディスクタイプとディスクサイズを選択します(必要に応じてデータディスクも含めて)。

今回はキーペアではなくパスワードを使用する予定なので、パスワード認証を選択しましたが、任意の認証を選択することもできます。

注意: デフォルトでは、マスターインスタンスは3つのノードを持っています。Worker/Agentインスタンスの場合は2ノードになります。

image.png

ステップ6:現在、アリババのクラウドでは、"Dockerのバージョン "や "Kubernetesのバージョン "を変更するオプションを提供していません。

必要に応じて SNAT を設定してください。フロントエンドのウェブサイトやアプリケーションを使用している場合は Public SLB を使用してください。

Site-to-Site または Point-to-Site VPN を設定していない場合は、SSH アクセスを有効にします。

クラウドモニターを有効にします。これにより、クラスタを監視してメトリクスを確認し、レポートに基づいてアラートを作成することができます。

クラスタのテレメトリを収集するには、"Log Service "を選択します。

Network Plugin を選択します。

カスタムポート(または128としてデフォルトのままにしておく)を選択し、また、カスタムCA(署名付き証明書)を持っている場合は、有効にして、ここでそれを添付することができます。

image.png

ステップ7: 右側の作成ボタンをクリックして、リクエストの有効性を確認して、"作成 "をクリックします。

image.png

ステップ8: デプロイが完了するのを待ちます。

image.png

デプロイが成功すると、以下のようなメッセージが緑色のマークで表示されます。

image.png

今すぐ左のナビゲーションパネル上のクラスタをクリックして、あなたの "Kubernetes Cluster "を見ることができるはずです。

image.png

DevOps(VSTS)を使用してMySQLサーバをKubernetes Clusterにデプロイ

クラスタを管理し、アプリケーションやポッドを効率的に作成するためには、DevOpsのプラクティスを利用して行うのが良いでしょう。VSTS (Azure DevOps)では、kubectlタスクを使ってKubernetesクラスタに接続してデプロイすることができます。

ステップ1: VSTSからKubernetes Servicesを接続するには、kubeの設定ファイルが必要です。Alibaba Container Serviceに移動し、クラスタを選択して「Manage」をクリックします。

image.png

ステップ 2: 下方向にスクロールして、"Cluster Resource "セクションに移動し、キー(kubeの設定コード)をコピーします。

image.png

注意:
1、インターネットのhttps/TLS接続で接続されますので、インターネットアクセスコードをコピーします。
2、オンプレミスのVSTSとVPNの設定をしている場合は、VPNアクセスを使用することができます。

ステップ3: Azure DevOpsリンクに移動し、プロジェクトの設定がまだされていない場合は、新しいプロジェクトを作成します。

image.png

ステップ4:プロジェクト名、説明文、バージョン管理を「Git」として提供し、Work Itemを提供します。

image.png

ステップ5:次に、Git Hub Linkからリポジトリからパイプラインを構築してみましょう。

image.png

ステップ6: VSTS Repoにコードをインポートしてデプロイするか、GitHubから直接コードを使用するかの2つのオプションがあります。

image.png

ステップ7:OAuthを使って権限を許可するか、マーケットプレイスからGitHubアプリをインストールします。今回のデモではOAuthを使ってみます。

image.png

image.png

ステップ8:「Kb8-MySQL」リポジトリを選択します。続行をクリックします。

image.png

ステップ9: 選択 Empty job, 次にエージェントを選択します "Hosted Ubuntu 1604 "として、記号をクリックしてタスクを追加します。

image.png

image.png

ステップ10. 「コピータスク」を選択し、以下のように「コピータスク」の値を入力します。

パラメータ:-
表示名: Copy Files Secret (または任意の名前を要件に応じて)
ソースフォルダ:(ファイルがルートフォルダにあるので空のままにしておき、そうでない場合はパスを指定)
コンテンツ:**/Secret.yml
対象フォルダ: $(Build.ArtifactStagingDirectory)

image.png

ステップ11:さらに3つの「コピータスク」を追加し、各タスクに対して以下のように「コピータスク」の値を入力します。

パラメーター: - - 表示名: Copy Files StorageClass (または任意の名前)
表示名: Copy Files StorageClass (または要件に応じて任意の名前)
ソースフォルダ:(ファイルがルートフォルダにあるので空のままにしておき、そうでない場合はパスを指定)
コンテンツ:**/StorageClass.yml
対象フォルダ: $(Build.ArtifactStagingDirectory)

表示名:Copy Files PersitantVolumeとクレーム(または要件に応じて任意の名前)を表示します。
ソースフォルダ:(ファイルがルートフォルダにあるので空のままにしておき、そうでない場合はパスを指定)
コンテンツ:**/PersitantVolumeandclaim.yml
対象フォルダ: $(Build.ArtifactStagingDirectory)

表示名:コピーファイルのmysql(または任意の名前を要件に応じての名前)を表示します。
ソースフォルダ:(ファイルがルートフォルダにあるので空のままにしておき、そうでない場合はパスを指定)
コンテンツ:**/MySQl.yml
対象フォルダ: $(Build.ArtifactStagingDirectory)

ステップ11:次に「Publish Build Artifactsタスク」を追加し、タスクに変更を加える必要はありません。

image.png

ステップ12: このビルドを保存してキューに入れます。

image.png

ステップ13: ログに移動して、ビルドの状態を確認します。以下のように成功しているはずです。

image.png

ステップ14: 次に、"pipeline "の "release "管理を使ってビルドをデプロイする必要があります。

image.png

ステップ15:空のジョブを作成し、ステージの名前を作成し、リリースし、"アーティファクト "を追加します。

image.png

image.png

ステップ16: "Source "でビルドを選択し、"Default version "をLatestに変更します。追加をクリックして設定を保存します

image.png

ステップ17:「1ジョブ0タスク」をクリックして配置用のタスクを作成します。

image.png

ステップ18:「Deploy to Kubernetes」タスクを選択します。次に「Service connection Type」を「Kubernetes Service Connection」に変更します。管理をクリックしてKubernetes接続を追加します。

image.png

注意: このデプロイメントはLinux環境でビルドされているので、Linuxエージェントで実行してください。

image.png

ステップ19:「サービス接続」を選択し、「新しいサービス接続」に移動し、Kubernetesを選択します。

image.png

ステップ20:kubeconfigファイルを開き、コピーしてAzure DevOpsの "kubeconfig "フィールドに以下のように値を貼り付けます。

接続名を指定して、OKをクリックします。

image.png

image.png

ステップ21: リリース構成に戻り、更新をクリックします。作成した接続「Alibaba Kubernetes Cluster」を選択します。

image.png

Step 22: では、SecretをデプロイするためのKubectlタスクを設定してみましょう。

パラメータ:-
バージョン: 1.
表示名: kubectl secret create
コマンド:create
引数:-f Secret.yml
Advanced:
作業ディレクトリ: $(System.DefaultWorkingDirectory)/_MySQL Server-CI/drop (ドロップの場所)

image.png

image.png

ステップ23: 残りの3つのタスク(ストレージクラス、永続ボリュームクレーム、MySQL)に対しても同様にKubectlタスクを設定します。

パラメータ:-
バージョン: 1.
表示名: kubectlストレージクラス
コマンド:create
引数:-f StorageClass.yml
Advanced:
作業ディレクトリ: $(System.DefaultWorkingDirectory)/_MySQL Server-CI/drop (ドロップの場所)

バージョン: 1.
表示名: kubectl Persistent Vol and Claim
コマンド:create
引数:-f PersitantVolumeandclaim.yml
Advanced:
作業ディレクトリ: $(System.DefaultWorkingDirectory)/_MySQL Server-CI/drop (ドロップの場所)

バージョン: 1.
表示名: kubectl Mysql
コマンド:create
引数:-f MySQl.yml
Advanced:
作業ディレクトリ: $(System.DefaultWorkingDirectory)/_MySQL Server-CI/drop (ドロップの場所)

設定後、保存をクリックします。

image.png

ステップ24: 今度はAlibaba Kubernetes Clusterに環境をデプロイするためのリリースを作成します。

image.png

image.png

ステップ 25. アリババのコンソールに移動して、MySQLサーバのデプロイが成功したことを確認します。

image.png

今回は、VSTS(Azure DevOps)を利用して、Alibaba Cloud Kubernetes Container上にMySQLサーバをデプロイしました。VSTSを利用することで、どんな環境でも継続的なインテグレーションと継続的なデプロイ(CICD)が可能になります。

image.png

アリババクラウドは日本に2つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
アリババクラウドジャパン公式ページ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?