マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

Visual Studio Tools for Docker」の延長で、
K8s(と言いつつ、実際はAKS)にデプロイしようという野心的な物体。

紆余曲折

断念

Open PaaSは、ちょっと難しいなぁと思い断念していた。

再起

しかし、Compose on Kubernetesがリリースされ、これによって、Open PaaSを
Docker Composeで扱えるようになったらしいため評価をリスタートしてみる気になった。

再び断念

手順3まで調査した結果、再び中断した(2019/12/04)。

  • Azure Dev Spacesで実行することはできた
    (ただし、パブリック・アクセスが不可能の故、明確では無い)。
  • ツールが(、まだ)、作りこまれていないっぽい。
  • また、Docker Composeで、そのまま、AKSにデプロイできない。

再び再起

調査した結果、再び再起した(2019/12/06)。

前提環境

コチラとの差分

  • .NET Core 3.0
  • VS 2019 Community

インストール

コチラとの差分

  • Visual Studio Kubernetes Tools
  • 以下からインストール(VS2019の場合)
    インストール

手順1

しかし、結局、「Visual Studio Kubernetes Tools」が何者なのか?
イマイチ解らないので、「WebApplication1」的なモノを使用し、再び、評価してみる。

画面の確認

試してみると、以下のような画面が表示される。

  • プロジェクト・テンプレートにKubernetesが追加される。
    手順1
  • ASP.NET Core 3.0 の MVCを選択する。
    手順2
  • 新規作成したプロジェクトをソリューション・エクスプローラで確認すると「azds.yaml」が追加されていることが解る。
  • Azure Dev SpacesのlaunchSettingsでデバッグ実行を開始すると、Azureにデプロイしようとするので、ここで止める。
    手順5

ココまでで解った事。

Kubernetes用プロジェクト・テンプレートでは、
「azds.yaml」が追加され、Azure Dev SpacesのlaunchSettingsが構成されるらしい。

参考

手順2

取り敢えず、Azure Dev Spacesの手順を参考にして単純な構成でAzure Dev Spacesを試してみる。

Azure Dev Spacesの構成

  • Kubernetes クラスタを使用して構成する。
  • Dev Spaces言うだけあって、開発・デバッグ用のスペースらしい。
  • Kubernetes クラスタは構築出来ても、
    Dev Spacesを有効にできるリージョンに制限があるので注意する。

プロジェクトの構成

  • Kubernetes用プロジェクト・テンプレートで「WebApplication1」的なプロジェクトを新規作成
  • 手順には.NET Core 2.1とあるが、.NET Core 2.0で動作するか確認(手順5のため)。
  • Azure Dev SpacesのlaunchSettingsでデバッグ実行を開始すると、
  • 前述のAzure Dev Spacesのダイアログが表示される。
  • AzureサブスクリプションのアカウントでVisual Studioにログインしていると、
    構成したAzure Dev Spacesの情報が自動入力されるのでそのまま続行する。
  • Azureのハズだが、何故か、localhostでアプリケーションが起動する。
    VS2019から?既定でパブリック・アクセスが不可能になっているらしい。
  • Hyper-Vコンテナで動いているのか?AKS上で動いているのか?区別がつかない。
  • 調べると、内部でstdout と stderr + port forwardしているっぽい
    (Visual Studioの認証も通しているのでセキュアなのかもしれない)
  • 試しにHyper-VコンテナをホストしているHyper-VのVM停止させてみたが、
    それでもUNIXで動作するので、AKSで動作&リモートデバッグしているものと思われる。

ココまでで解った事。

  • 実際に、Azure Dev Spacesで動作させることが出来た。
  • パブリック・アクセスが不可能だが、恐らく、AKS上で動いている。

手順3

単純な構成で、Azure Dev Spaces でない AKS で使ってみる。

前提条件

標準のプロジェクト・テンプレートで「WebApplication1」的なプロジェクトを新規作成
(Kubernetes用プロジェクト・テンプレートでは「Kubernetes/Helm」を追加できなかったタメ)

プロジェクトの構成

手順2と、同様の「WebApplication1」を使用する。

ココまでで解った事。

標準のプロジェクト・テンプレートで「Kubernetes/Helm」を追加しても
Azure Dev SpacesのlaunchSettingsになってしまう(Toolsでは、できないっぽい)。

手順4

Azure CLIで、Azure Dev Spaces でない AKS で使ってみる。

前提条件

AKSのチュートリアルを遂行する(Azure CLIを使用する)。

プロジェクトの構成

https://github.com/Azure-Samples/azure-voting-app-redis

AKSの構成

Azureのポータルと、Azure CLIのazコマンドを使用する。

ココまでで解った事。

  • 「docker-compose up -d」で躓いていたが
    再起動&リトライなどで動作するようになる。
    (docker自体が、そういうモノらしく、不安定であるもよう)
  • ...。

手順5

複雑な構成の Docker Compose を AKS で使ってみる。

前提条件

物品としては、

  • こちらをVS2019にアップグレードしたものを使用する(.NET Core2.0据え置き)。
  • ...と言うのも、.NET Core3.0に持って行こうとした場合、
    Redis周りが大きく変わっていて、移行が少々手間だったので、取り敢えず。

結果

ローカル

ローカルのDocker for Windowsで動かしてみる。

  • 起動
    >C:\Git\EvaluateAspNetCoreOnK8s\WebApplication1>docker-compose up -d 
    >Starting webapplication1_postgres_1 ... done
    >Starting webapplication1_redis_1    ... done
    >Creating webapplication1_webapplication1_1 ... done
  • アクセス
    http://localhost:5000/
  • 停止
    >C:\Git\EvaluateAspNetCoreOnK8s\WebApplication1>docker-compose down
    >Stopping webapplication1_webapplication1_1 ... done
    >Stopping webapplication1_postgres_1        ... done
    >Stopping webapplication1_redis_1           ... done
    >Removing webapplication1_webapplication1_1 ... done
    >Removing webapplication1_postgres_1        ... done
    >Removing webapplication1_redis_1           ... done
    >Removing network webapplication1_default

※ 上記の参考に習い、無事動作した。

リモート

リモートのAKSで動かしてみる。

手順n

上記(手順n)の Docker Composeファイルを
ローカルのDocker for Windowsの Kubernetes に食わせたいが...。

インストール

コチラとの差分

経過

サンプル

github.com

WebApplication1

https://github.com/daisukenishino2/EvaluateAspNetCoreOnK8s/tree/master/WebApplication1

MVC_Sample

git clone後にDocker Composeで動かす方法。

参考

Microsoft Docs

Kubernetes

Azure Dev Spaces

OSSコンソーシアム

Blog

Wiki


Tags: :.NET開発, :.NET Core, :Hyper-V, :仮想化


添付ファイル: file5.png 4件 [詳細] file2.png 9件 [詳細] file1.png 6件 [詳細] fileenable.png 5件 [詳細] fileinstall.png 6件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-12-08 (日) 13:08:16 (12h)