Tocyukiのブログ

ギターと柔術とプログラミングが好き!

Azure Kubernetes Service関連で役立ちそうなリンク集

色々教えてもらったので備忘録

Microsoftラーニングパス

製品欄のAzure Kubernetes Serviceにチェックをいれた状態のURL

learn.microsoft.com

AKSクラスターのB/Gデプロイ

learn.microsoft.com

API の破壊的変更時に Azure Kubernetes Service (AKS) クラスターのアップグレードを自動的に停止する

非推奨のAPIの使用を確認できるKubernetes API deprecationsが便利そう

learn.microsoft.com

AKSリリーストラッカー

AKS は、すべてのクラスターと顧客に影響を与える一連の修正プログラム、および機能とコンポーネントの更新プログラムを毎週リリースします。 ただし、これらのリリースは、Azure の安全なデプロイ プラクティス (SDP) により、最初の出荷時点からすべてのリージョンに展開されるまで最大 2 週間かかることがあります。 お客様のリージョンが特定の AKS リリースの対象となっている場合にそれを把握することが重要であり、AKS リリース トラッカーは、これらの詳細をバージョンとリージョン別にリアルタイムで提供します。

learn.microsoft.com

AKS CHANGELOG

定期的に読むと良さそう

github.com

AKS Release Note

日本語化されているものがオススメ

zenn.dev

AKS B/GデプロイのTerraformサンプルコード

MS真壁さん作

github.com

Azure Kubernetes Services のトラブルシューティング に関するドキュメント

learn.microsoft.com

KubernetesにArgoCDをセットアップする

blog.tocyuki.com

とりあえずAKSのセットアップができたのでArgoCDをデプロイしてみる

とはいえ基本的には公式に記載されていることをするだけでデプロイできた(k8sすごい)

argo-cd.readthedocs.io

$ kubectl create namespace argocd
$ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

お手軽に接続して確認するためにPortFowardingを実施

$ kubectl port-forward svc/argocd-server -n argocd 8080:443
Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080

https://localhost:8080/ へ接続するとArgoCDのログイン画面が表示されることを確認

ArgoCDのログイン画面

argocdコマンドで初期パスワードを取得する

$ argocd admin initial-password -n argocd
XXXXXXXXXXXXXXX ←ここに初期パスワードが表示される

 This password must be only used for first time login. We strongly recommend you update the password using `argocd account update-password`.

先ほど取得したパスワードとadminユーザーを入力してログインできた

ArgoCDログイン後の画面

Azure Kubernetes Serviceへ手元のMacからkubectl実行する

というわけで(?)Azureなんもわからんマンなのでazure-clikubectlで手元から構築したKubernetes Clusterへの接続方法をメモしておきます。

Azure CLIでAzureへログイン

$ az login

サブスクリプションを設定

サブスクリプション一覧を表示して対象となるサブスクリプション名 or サブスクリプションIDを取得

$ az account list -o table

取得したサブスクリプション名 or サブスクリプションIDを指定してサブスクリプションを設定

$ az account set --subscription <サブスクリプション名 or サブスクリプションID>

AKS認証設定

AKSクラスタ名とリソースグループ名を取得

$ az aks list --output table

取得したAKSクラスタ名とリソースグループ名を使って認証する

$ az aks get-credentials --resource-group <resource_group_name>  --name <cluster_name>

kubectl実行

あとは各種kubectlコマンドを実行するだけなので試しにNginxでもデプロイしてみる

$ kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml

Podが起動してくるか確認

$ kubectl get pods
NAME                               READY   STATUS    RESTARTS   AGE
nginx-deployment-cbdccf466-44bws   1/1     Running   0          69s
nginx-deployment-cbdccf466-5lr6d   1/1     Running   0          69s
nginx-deployment-cbdccf466-cl2l6   1/1     Running   0          69s

よし、起動した