ウェブサイト検索

CyclopsとKubernetesを使って開発者プラットフォームを構築する


紹介

Kubernetesの管理は複雑ですが、Cyclopsを使えばほんの数クリックでKubernetesにアプリケーションをデプロイできます。CyclopsはKubernetesの複雑さを抽象化し、開発者のために信頼性が高くカスタマイズ可能なユーザー体験を提供します。

DigitalOceanのマネージドKubernetes上でCyclopsを運用することにはいくつかの利点があります。アプリ、データベース、ネットワークを管理できるため、CyclopsとKubernetesは開発者がアプリケーションや製品を出荷するために必要な唯一のツールとなります。

このチュートリアルでは、あなたは:

  • DigitalOceanでKubernetesクラスターを作成します。
  • サイクロプスを設定します。
  • サイクロプスを通じてアプリケーションを展開する。
  • データベースを構築し、それにアプリケーションを接続してください。

チュートリアルを完了すると、開発者が Kubernetes やクラウドの管理の煩雑さなしに、アプリケーションをデプロイしデータベースを提供できる開発者プラットフォームを構築できます。また、独自のテンプレートで Cyclops を拡張して、アプリケーションや組織の具体的なユースケースをカバーすることも可能です。

前提条件

このチュートリアルを完了するためには、次のものが必要です:

  • Kubernetesクラスターを管理するためのkubectl。
  • KubernetesクラスターがデプロイされたDigitalOceanアカウント。

ステップ1 - Kubernetesクラスターを作成する

DigitalOceanでKubernetesクラスターを作成するには、https://cloud.linux-console.net/kubernetes/clusters/new を訪れてください。

DigitalOceanでKubernetesクラスターを設定する手順は、このガイドに従ってください。

ここでは、リージョン、クラスターのバージョン、および必要なノードの数を設定できます。すべてのオプションはデフォルトのままにしておくことができます。

クラスターを作成ボタンをクリックする前に、必ず データベースオペレーターを追加にチェックを入れてください。そうすれば、チュートリアルの後でデータベースを展開できます。

Kubernetesクラスターに特別な名前を追加することができ、その後クラスターを作成をクリックして、Kubernetesクラスターが完全に立ち上がるまで数分待ちます。

ステップ2 - クラスターにサイコップスをインストールする

DigitalOceanでKubernetesクラスターが稼働しているので、Kubernetesクラスターのリストからそれをクリックして確認できます。

CyclopsはDigitalOcean Kubernetesマーケットプレイスの一部であるため、Marketplaceタブに移動してCyclopsを検索することでインストールできます。インストールボタンをクリックするだけで、Cyclopsに必要なすべてがKubernetesクラスターにインストールされます。

Cyclops UIにアクセスするには、クラスターの外部にそれを公開する必要があります。そのためには、OverviewタブからDownload Config Fileボタンをクリックして設定ファイルをダウンロードする必要があります。

kubeconfigファイルをダウンロードした後、環境変数KUBECONFIGを設定して、kubectlをあなたのDOクラスタにアクセスできるようにすることができます。この環境変数はあなたのkubeconfigファイルを指すように設定します。

export KUBECONFIG=~/Downloads/<name of your cluster>-kubeconfig.yaml  

クラスタ内でCyclopsが正常に動作しているかどうかを確認できます。次のコマンドを使用して実行できます:

kubectl get pods -n cyclops  

これに似た出力が得られるでしょう:

[secondary_label Output]  
NAME                            READY   STATUS    RESTARTS   AGE  
cyclops-ctrl-5b8bf97fc8-mh6vw   1/1     Running   0          144m  
cyclops-ui-64c4cdd7f7-mzgqh     1/1     Running   0          144m  

両方のポッドが稼働しているときは、Cyclopsにポートフォワードしてアクセスできます。

kubectl port-forward svc/cyclops-ui 3000:3000 -n cyclops  

サイクロプスは現在、http://localhost:3000/ でご利用いただけます。

ステップ3 - アプリをデプロイする

サイクロプスの準備ができたら、それを使用して新しいアプリケーションを展開できます。サイクロプスを開くと(http://localhost:3000/)、モジュールを追加ボタンをクリックして新しいアプリを作成できます。

ここでは、アプリケーションを作成するためのいくつかのテンプレートから選ぶことができます。必要に応じて、自分自身のテンプレートを追加して、ユースケースをカバーすることができます。Cyclopsテンプレートに関する公式ドキュメントで、その方法について詳しく学ぶことができます。

デモのために、いくつかのフィールドを遊ぶことができる app-template を使用できます:

  • <コード> - 実行したいDockerイメージと環境変数を設定できます。
  • スケーリング - あなたのアプリケーションのインスタンスの数と必要なリソースの量を設定します
  • ネットワーキング - アプリへのアクセス方法を設定する

上の画像に示されているように、Expose を external に設定することで、Kubernetes クラスターの外部からアプリにアクセスできるようになります。

今すぐ Deploy をクリックして、アプリを実現させることができます。

数分後、あなたのアプリケーションが立ち上がり、Serviceを確認すると、アプリケーションにアクセスできるIPアドレスが表示されます(externalIPが保留中と表示されている場合は、ロードバランサーが作成されるまで1分待ってください)。IPアドレスをコピーしてブラウザに貼り付けてください。

KubernetesやDigitalOceanの細かい内容には踏み込まずに言うと、あなたは今、誰でもアクセスできるKubernetes上でアプリケーションを運用しており、望むように簡単にスケール、更新、管理することができます。

ステップ4 - データベースをプロビジョニングする

アプリケーションを開発している場合、アプリには何らかのストレージが必要になる可能性が高いです。DigitalOceanは、使用できる多くの管理されたデータベースを提供しています。

あなたはDigitalOceanで新しいアプリケーションを作成し、そのアプリケーションに接続することができます。すべてCyclops UIから行えます。

あなたがCyclopsで最初のアプリを作成したのと同じように、データベースをプロビジョニングできます。テンプレートの中から、DigitalOceanのデータベースオペレーター専用のmysqlテンプレートを選択してください。

データベースのサイズとその地域を選択した後、Deployをクリックできます。

あなたは今、CyclopsおよびDigitalOceanで新しいデータベースを見ることができます。URLはこちらです: https://cloud.linux-console.net/databases。

通常、今はデータベースの資格情報を確認し、アプリケーションがそれにアクセスできることを確認する必要があります。しかし、DigitalOceanのデータベースオペレーターは、そのすべての情報をKubernetesクラスターに保存しており、デモアプリのために使用したテンプレートは、そのデータを再利用してデータベースに接続することができます秘密を手動で管理する必要はありません。

app-templateは、データベースの資格情報を環境変数を介してアプリケーションにマウントし、コード内でデータベースにアクセスするために使用できるようにします。あなたがする必要がある唯一のことは、Cyclopsに接続するデータベースを指定することです。

Cyclopsであなたのmy-demo-appを開き、Editをクリックする必要があります。MySQLインスタンスの名前と接続したいデータベースの情報をMySQL接続データに入力するだけです(defaultdbは自動的に作成されます)。

Deployをクリックすると、あなたのアプリには環境変数を通じてすべての認証情報が設定され、あなたのアプリはあなたが作成したデータベースにアクセスできるようになります。

KubernetesのデプロイメントをCyclopsで表示し、View Manifestをクリックすることで自分で確認できます。すると、現在のデプロイメント構成に次の環境変数が含まれているポップアップウィンドウが表示されます。

秘密の取り扱いやコピー&ペーストは不要です。DigitalOcean、Kubernetes、Cyclopsに任せてください。

これらのテンプレートは、他のデータベースや他の種類のアプリケーションをサポートするために拡張することができます。それは完全にあなた次第です。このチュートリアルでは、CyclopsとKubernetesオペレーターを組み合わせることで、開発者が新しい技術に多くのオンボーディングを必要とせずにデプロイを行う際にパワーユーザーになる方法を示しています。

掃除する

すべてのリソースを削除するには、Kubernetesクラスター、管理されたデータベース、およびアプリケーションをクラスターの外部に公開している場合はロードバランサーを削除する必要があります。

私は今、プラットフォームエンジニアですか?

あなたが今作成したセットアップで、開発者プラットフォームの骨組みを作成しました。あなたは他の開発者がリソースをプロビジョニングし、独自にアプリケーションをデプロイできるようにセルフサービスを有効にしました。これにより、彼らはより迅速に行動できるようになります。

この概念をさらに展開し、チームの異なるユースケースに応じたテンプレートを作成したり、異なるKubernetesオペレーターを試して、より柔軟性を得ることができます。

サイクロプスはオープンソースですので、ぜひそのGitHubリポジトリをチェックして、スターを付けてください!⭐

関連記事: