#概要メモ
AKSを作るとリソースグループが2つ作成される。
- マスターノードのリソースグループ
- それ以外のリソースが属するリソースグループ
AKSを作ると関連するリソースも一緒に作成される。
- ノードプールに含まれるノード(LinuxのVM)
- VMが属するVNET
- ロードバランサー
- セキュリティグループ
など
AKSを作成するとついてくるLinuxのノードにクラスタ動作に必要な機能が含まれている。
そのため、冗長構成になるよう2台以上が推奨で、クラスタを消さないとこのノードプールは消せない。
###ネットワーク
コンテナネットワーク
Azure CNI方式とKubenet方式の2つから選んでazコマンドで作成する。
Azure CNI方式:AzureのVNETで払い出されるPrivateIPをPodに付与。AKSのベストプラクティスはこっち。
Kubenet方式:K8s標準。ノードにVNETのPrivateIPを割り当ててNATで通信。
その他ネットワーク
マスターノードのAPIエンドポイントはプライベート化(VNET内からのみのアクセス)にできるが基本はパブリック。
プラベイート化するとCloud Shellからもアクセスできなくなるのであまりセキュリティ対策にはなってないかも。
クラスタの外へのアウトバウンド
3つある
- Service Endpoint
- Private Endpoint
- Azure Firewall
Service Endpoint:指定したサービス全てに対してアクセスできるようにする(Storage, SQL DB, AADなど)。他のユーザーのリソースにもアクセスできてしまうので、AADぐらいにしか使わない。ただし無償。
Private Endpoint:エンドポイントをVNETに引き込む。リソースごとにFWの設定が別途必要。KeyVault, ACR, SQL DB用に使う。ログが取れない。VNET内のAzureDNSでIPをPrivateエンドポイントに書き換える(同じドメインを別のVNETのAzureDNSで問い合わせるとPublicエンドポイントが返される)。
Azure Firewall:VNET内に作れるFW。HTTP/Sはフィルタリングができる。高い。ログが取れる。
###認証・認可
###セキュリティ
アップグレード
K8sのバージョンを選択すればIn-placeアップグレードで置き換えてくれる。ただし、切り戻しができないので事前検証がしたければ別のノードプールを足してそちらだけバージョンをあげて検証(クラスタを分けても良い)。このタイミングでノードもアップデートされる。
ノードのVM
Ubuntuは毎日更新プログラムをチェックして自動適用。再起動は自動化されてないので適時Kured。
###CICD
#課金単位
ワーカーノードのVMスペックで決まる。
リザーブドインスタンスも使える様子。
マスターノードはSLO99.5%なら無料。
アップタイムSLAのオプションを使うと以下。
- クラスター構成:99.95%
- 非クラスター構成:99.9%
#その他に知りたいこと
-
Windowsコンテナを動作させるにはどうすれば良いのか(クラスタを分けるか、Windowsノードさえあればいいのか)
→AKSを作るとLinuxのノードが立ち上がるので、これの横にWindowsのノードを追加する。
Windowsコンテナを起動するときはNodeSelectorでWindowsのノードを探して立ち上げる。
https://docs.microsoft.com/ja-jp/azure/aks/windows-faq -
AKSはサービスメッシュを自分で選定しないといけないのか
→これはその様子。ECSだとEnvoy ProxyをAppMeshからコントロールするが、AKSはIstio, Linkerd, Consulから選べそう。
https://docs.microsoft.com/ja-jp/azure/aks/servicemesh-about -
Private Link
#参考
https://www.facebook.com/nobuyuki.akama.5/posts/2947887578638196