先日、Azure Kubernetes Service (AKS) が一般提供(GA)されました。ただし、西日本/東日本リージョンにはまだ提供されていないようです。
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
が存在して別の認証情報が書いてある場合、ファイル内のclusters
やcontexts
にAKSの認証情報を追記して、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はありましたが解決せずにクローズされているため、対処法はわかっていません。
Helmやtillerそのものをもう少し勉強して理解する必要がありそうです。
何かしら解決方法がわかったら追記することにします😥