つばろぐ

福岡のエンジニアによる技術的な備忘録です。

Microsoft MVP for Visual Studio and Development Technologies 2018-2019を再受賞しました

Microsoft MVP for Visual Studio and Development Technologies 2018-2019を再受賞することができました。

初受賞は2016年10月でした。例年、1年に1回の再審査ですが、昨年のMVP制度変更に伴って昨年は再審査がありませんでした。(私の場合)

tsubalog.hatenablog.com

今後もFukuoka.NET - ふくてんJAZUG福岡を中心に、コミュニティやブログでC#/.NET Core/Azureに関する情報を発信していきたいと思います。

.NET Core 2.0のサポート終了計画が発表されたので、.NET Coreのサポート計画を整理する

2017年8月14日にリリースされた .NET Core 2.0ですが、.NET Core 2.1のリリースによるサポート終了のアナウンスが発表されました。

はじめは2018年9月1日にサポート終了とアナウンスされていましたが、その後 2018年10月1日 に変更されましたので注意しましょう。
※アナウンス記事は同じでタイトルだけが「September」から「October」に変わったようです。なのでURLには「September」が入っています。

blogs.msdn.microsoft.com

いい機会なので .NET Coreのサポート計画を整理してみましょう。

各バージョンのサポート計画

現状の .NET Coreのサポート内容は以下のようになっています。

  • LTS (Long Term Support/長期サポート)
    • .NET Core 1.0
    • .NET Core 1.1
  • Current (現在のリリース/将来的な変更の可能性あり)
    • .NET Core 2.0
    • .NET Core 2.1

github.com

プロダクトに .NET Coreを採用するにあたり、長期的なサポートを必要とする場合は .NET Core 1.x を選ぶようにしましょう。チャレンジしたい方は .NET Core 2.x でもいいと思います。

バージョンのライフサイクル

では .NET Coreの各バージョンのサポート期間(ライフサイクルといいます)は、どのように決まるのかを見てみましょう。

github.com

  • LTS
    • そのLTSのバージョンの最初のリリースからの3年間
    • 次のLTSのバージョンがリリースされてから1年経過するまで
  • Current
    • 次のCurrentまたはLTSのバージョンがリリースされてから3ヶ月経過するまで

例えば .NET Core 2.1 が「2018年5月30日」にリリースされたため、その3ヶ月後である「2018年8月31日」までは .NET Core 2.0のサポートが継続される、といった流れになります。
ただし前述のアナウンスにあるように特例的に1ヶ月延びて「2018年9月30日」までということになっています。
(1日ずれているような気もするけど、そこはいい塩梅なんだろうか・・・)

そういったドキュメントってどこにあるの?

公式ドキュメント

docs.microsoft.com

よりもGitHubにある多くのMarkdownファイル

github.com

Visual StudioのKubernetes拡張機能がプレビュー公開されたので試してみたけどエラーが起きる

先日、Azure Kubernetes Service (AKS) が一般提供(GA)されました。ただし、西日本/東日本リージョンにはまだ提供されていないようです。

azure.microsoft.com

AKSのGAに伴ってか、Visual StudioにKubernetes拡張機能がプレビュー公開されました。ドキュメントはこちら。

Kubernetes tools tutorial - Visual Studio | Microsoft Docs

早速このチュートリアルを試してみましたが、どうもチュートリアル通りに動作しないためエラー内容を残しておきます。
なおこのチュートリアルの手順自体の説明は省きます。公式ドキュメントを参照してください。

KubernetesのCredentialsは ~/.kube/config に記載する必要がある (解決済)

AzureにAKSを作成したあと、下記のコマンドでKubernetesの認証情報を取得します。

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

私がよくKubernetesを試すとき、この認証情報は~/.kube/myAKSCluster.configのような名前のファイルに保管して、それを環境変数に指定して使用していました。
この状態でVisual StudioからAKSに発行を行おうとすると、下記のエラーが起きます。
AKSやACRの名称はダミーです。

Calling Helm
Ensuring that C:\Users\tsubaki\.kube\myAKSCluster.config is part of the KUBECONFIG environment variable
helm install --name myk8sapp "d:\src\Myk8sApp\\Myk8sApp\charts\myk8sapp" --set-string image.repository=myAKSCluster.azurecr.io/ --set-string image.tag=2018061412 --kube-context myAKSCluster
Calling helm install --name myk8sapp "d:\src\Myk8sApp\\Myk8sApp\charts\myk8sapp" --set-string image.repository=myAKSCluster.azurecr.io/ --set-string image.tag=2018061412 --kube-context myAKSCluster
Error: could not get Kubernetes config for context "myAKSCluster": context "myAKSCluster" does not exist

解決方法

このエラーを回避するには発行先のKubernetesの認証情報を~/.kube/configに追記する必要があります。
Docker for Windowsを使っていて、既に~/.kube/configが存在して別の認証情報が書いてある場合、ファイル内のclusterscontextsAKSの認証情報を追記して、current-contextに展開先のAKSの認証情報を指定します。

「tiller」が見つからないというエラーが起きる (未解決)

認証情報を正しく設定した上で改めて発行を行うと、下記のエラーが起きました。

Calling Helm
Ensuring that C:\Users\tsubaki\.kube\myAKSCluster.config is part of the KUBECONFIG environment variable
helm install --name myk8sapp "d:\src\Myk8sApp\\Myk8sApp\charts\myk8sapp" --set-string image.repository=myAKSCluster.azurecr.io/ --set-string image.tag=2018061412 --kube-context myAKSCluster
Calling helm install --name myk8sapp "d:\src\Myk8sApp\\Myk8sApp\charts\myk8sapp" --set-string image.repository=myAKSCluster.azurecr.io/ --set-string image.tag=2018061412 --kube-context myAKSCluster
Error: could not find tiller

tillerはこのチュートリアルの最初に、AKSクラスターに対して設定しているはずですが、見つからないというエラーが起きます。
どう対処してもこのエラーが解決していません。

それらしいIssueはありましたが解決せずにクローズされているため、対処法はわかっていません。

github.com

Helmやtillerそのものをもう少し勉強して理解する必要がありそうです。
何かしら解決方法がわかったら追記することにします😥