銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

Azure Container Service (AKS) でAzure Managed DiskをVolumeとして試してみる

Azureのマネージドなkubernetesサービス Azure Container Service (AKS) がpreviewとしてリリースされました。

azure.microsoft.com

デフォルトでkubernetes 1.7が使われるのですが、このバージョンからAzure Managed DiskがVolumeとして使えるはずなので試してみました*1

github.com

Azure PD (Managed/Blob) by khenidak · Pull Request #46360 · kubernetes/kubernetes · GitHub

*1:それ以前はunmanaged diskしかサポートしていないので、kubernetesをインストールする仮想マシンをunmanagedにしないと、Azure DiskをVolumeとして使えないのでした

続きを読む

ふくてん Fukuoka .NET Conf で ASP .NET Coreのセッションをしました

国内では初めて東京近郊以外の地域*1でセッションしました。資料はこちらです。

www.slideshare.net

セッションで紹介した(しようとした)サンプルコードのGitHubリンクはこちらです。

まず、最初のリモートデバッグのところですが、後でお見せしたデモ動画の中でリモート接続していたアプリはこのリポジトリです。といっても、これはdotnet new mvcで作ってソリューションファイルを追加しただけのアプリです。この素のアプリでLinux containerの上でリモートデバッグもできます。

github.com

次の設定ファイルの注入はここにサンプルアプリがあります。OpenShift上で動かしてOpenShift(kubernetes)のconfigmapと組み合わせるデモなのですが、/etc/data/appsettings.jsonに設定ファイルを置けばどこでも動きます。

github.com

ファイルパスがunix前提なので変更したい場合はここを変更します。

dotnetcore-demo-app/Startup.cs at master · tanaka-takayoshi/dotnetcore-demo-app · GitHub

appsettings.jsonはこの形式を前提にしています。

{
  "Option1": "Ignite!!",
  "Option2": "2017",
  "subsection": {
    "SubOption1": "Container is Linux"
  }
}

HTTPセッションをRedisに格納するサンプルはこちらです。以前やったデモの一部なのでサブディレクトリに格納されています。

github.com

Redisですが、今回はAzure Redis Cacheをつかっています。それ以外に普通のどこかにRedisサーバーを動かしてもよいです。Redisの接続情報は環境変数REDIS_CONNECTION_STRINGに設定するとそれを使います。ConnectionStringはStackExchange.Redisの形式ですが、Azure Redis Cacheの場合はAzure Portalからコピーできる形式です。

f:id:tanaka733:20171021153315p:plain

f:id:tanaka733:20171021153327p:plain

具体的にはこんな形式です。

<name>.redis.cache.windows.net:<port>,password=<password>,ssl=True,abortConnect=False

最後に紹介した、ASP.NET CoreのBlog Templateですが、本家のサイトはこちらです。

github.com

このプロジェクトはプロジェクトテンプレートをインストールして、テンプレートとして実際に動かすプロジェクトを生成する仕組みなのですが、Linuxで動かせるように修正した状態のプロジェクトがこちらになります。

github.com

実際に動かして使いたい場合は、SQLiteの保存先(上では/etc/data/以下)と、ブログ投稿データの保存先(./BlogFiles)を永続化しておくのがよいでしょう。

あと肝心のOpenShift宣伝タイムでいい忘れていたのですが、OpenShiftに興味あるけどいきなり弊社営業に問い合わせるのはハードルが高すぎるという場合は昨日書いた、Windows/Mac/Linuxのシングルホストで動かせるContainer Development Kitを使ってみてください。

tech.tanaka733.net

質問などあればぜひTwitterなどでお寄せください。

*1:筑波を含む

Red Hat Container Development Kit を使って、.NET Core on Linux containerを無料で体験する

先日の記事に続いて、Red Hat Developer Programを利用しての無料体験の宣伝です。

developers.redhat.com

.NET Core on RHEL (Red Hat Enterprise Linux Server)はRHELサーバー上でも動くのですが、Container Platform製品であるOpenShift上での利用もおすすめです。Gitリポジトリを指定するだけでContainerを作成して配置、ルーティングまでやってくれるところや、コンテナのスケーリング、死活監視など、.NET Coreアプリを配置する際にいろいろ面倒なところをやってくれます。

developers.redhat.com

ただ、無償でお試しするにはハードルがあり、現状の選択肢としては、OpenShift Onlineの無償枠(Activateされるまで時間かかることも)、Azure上でのTest Drive(短時間のみ)、upstream projectであるOpenShift origin(CentOSで動くが、製品版とは厳密には異なる)などいろいろ条件があります。

そこで今回は、ローカルのWindows/Mac/Linux上でシングルインスタンスで動く、Container Development Kitを紹介して、Windowsユーザー向けに.NET Coreアプリを配置するまでを説明してみようと思います。インストール手順はドキュメントを詳細してもらうことにして、いくつか注意点をまとめていきます。

developers.redhat.com

続きを読む