マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

環境

シェル

操作者の権限

以下の権限を持つユーザで作業

その他

アカウント

以下で固定になってるので、必要に応じて変更する。

...見つけ次第、書く。

構成

全体構成図

AKS_TechnicalReference_v0.14(ppt).zipに同梱のPPTから引用

全体構成図

ネットワーク構成

構成概要

コチラの推奨設定と少々異なる(プライベートAKSクラスタにする)。

※ サマリすると

 となる。

入力経路

インバウンド(イングレス

出力経路

アウトバウンド(エグレス

以下の併用

VNETサブネット

認証・認可

保守用端末を VNET 内に設置する想定。

Azure Portal, Azure CLI (ARM API)

プライベート化しない(既存のアクセス制限機能を想定)

制御プレーンの実行アカウント (SPN)

Managed ID 方式で作成する。

ダッシュボード, Kubernetes CLI (Master API)

AKSユーザ・アプリからのリソース・アクセス

Secret機能を使用

基盤保守

日次パッチ

オンデマンド

必要に応じて

バージョンアップを手動で実施。

開発~デプロイ

VNET 内に本番用コンテナ・レジストリを配置するのみ
ACR(コンテナ・レジストリ)をプライベート化する。

手順

https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md

準備作業

サブスクリプションの選択

※ 必要に応じて、サブスクリプションの選択を行う。

※ 「SUBSCRIPTION_NAMEは各自で書き換え」とのこと。

※ 再開の際は、再実行(テキスト・ファイルへ)。

パラメタの設定

※ 「NAME_PREFIXは各自で書き換え」とのこと。

※ 再開の際は、再実行(テキスト・ファイルへ)。

Azure CLI拡張機能のインストール

AKS プレビュー機能のインストール

※ 「時間かかるので注意(20 分ぐらい)」とのこと。

共通準備

パラメタの設定

以下のパートのスクリプトを実行して、パラメタを設定

# Parameters

※ 再開の際は、再実行(テキスト・ファイルへ)。

リソース・グループの作成

以下のパートのスクリプトを実行

# Create Resouce Group

診断ログ・ストレージの作成

以下のパートのスクリプトを実行

# Create Diagnostics Storage

※ インターネット・アクセス禁止オプションあり。

Log Analytics & AppInsights? の作成

以下のパートのスクリプトを実行

# Create Log Analytics & AppInsights

※ Log Analytics は 90日ログ保持オプションあり。

サブスクリプションのアクティビティ・ログの有効化

以下のパートのスクリプトを実行

# Enable Subscription Activity Logging

※ だが、現時点では UI から実施とのこと(動画も参考になる)。

オンプレ模倣環境の作成

パラメタの設定

以下のパートのスクリプトを実行して、パラメタを設定

# Parameters

※ 再開の際は、再実行(テキスト・ファイルへ)。

VNETサブネットの作成

以下のパートのスクリプトを実行

# Create Onpremise VNET

VMの作成

以下のパートのスクリプトを実行

# Create uservm1 (Public IP + Open RDP Port)

※ VM生成のAzure CLIスクリプトとして参考になる。
  パブリックIP作成、NIC作成を別で行っている(が特に意味はない模様)。

※ オンプレの模倣ということで、Windows 10 を選択している?

※ Visual Studio のアクティブ・サブスクライバでない場合は、
  Windows 10 ではなく Windows Server 2019 を利用(ライセンスの関係らしい)
  既定のスクリプトは、Windows 10になっているので、必要に応じて変更。

※ 最後に「az vm open-port」でRDPポートを開けるオマケが付いているので注意。

AKS 配置環境の準備

パラメタの設定

以下のパートのスクリプトを実行して、パラメタを設定

# Variables

※ 再開の際は、再実行(テキスト・ファイルへ)。

VNETサブネットの作成

以下のパートのスクリプトを実行

#Create VNET & Subnets

ノードプールのIP消費が多いので、
 /16でサブネッティングしているとの事。

※ しれっと、VNETの「az monitor diagnostic-settings create」をしている。

周辺サービスの作成と引き込み

Azure Firewallの作成

※ ルールの作成には、かなり時間がかかるらしい(10分ぐらい)。

他によく必要になる URL

保守端末の準備

管理マシン(Windows)の作成

オンプレから接続する踏み台VM相当。

※ 「持ち込み」となっているモノは、Azure Firewallで設定していないもの。

管理マシン(Linux)の作成

踏み台VMから接続し、アプリのビルドや、Dockerコンテナ作業を行う。

Bastionの作成

オンプレ模倣環境の作成をスキップできる。

※ 結構、時間がかかる。

AKS クラスタの作成と設定

AKS クラスタの作成

AKS の設定

アプリのビルドとデプロイ

kubectl/kubeconfig の準備

※ .kubeに、configとadmin-configファイルが作成される。
 既定では、configが利用される(必要に応じて切り替える)。

コンテナ・イメージの作成

AKS_TechnicalReference_v0.14(ppt).zipに同梱の
構築サンプルアプリ.zipを mgmt-windows-vm1 に持ち込んで作業する。

アプリのデプロイ

YAML ファイルを作成し、kubectl apply を実行し、
コンテナ・イメージのデプロイ展開を確認する。
最後に、コンテナ・イメージを切り替える。
(ダッシュボードの表示も行う)

※ コンテナ・イメージの
 レジストリ名(先頭)とタグ名(末尾)
 の部分は必要に応じて変更する。

※ DBアクセスは動かなくても確認はできる。
 DBアクセスをテストするなら、コチラで言及されているSQL DBを作成。  手順としては、(...後でどこかに書くか)

オンプレ模倣環境から AKS アプリへの接続

AKS ILB に対する Private Link Service の作成

以下のパートのスクリプトを実行

# AKS ILB に対する Private Link Service の作成

AKS ILB への Private Endpoint の作成

以下のパートのスクリプトを実行

# Create Private Endpoint to AKS

インターネットからの接続

パラメタの設定

以下のパートのスクリプトを実行して、パラメタを設定

# Parameters

※ 再開の際は、再実行(テキスト・ファイルへ)。

DMZ VNET の作成

以下のパートのスクリプトを実行

# Create VNET and Subnets

AKS ILB への Private Endpoint の作成

以下のパートのスクリプトを実行

# Create AKS Private Endpoint

Application Gateway の作成

以下のパートのスクリプトを実行

# Create AppGateway
...
# Private Endpoint の IP アドレスを取得
...
# AppGw 作成 ※ 時間がかかる

可用性テストの作成

「URL の Ping テスト」を構成する。

※ 現時点では UI から実施とのこと(動画も参考になる)。
※ az コマンドではできない (ARM テンプレートのみ可)

ノード自動再起動

Kured による VM のリブートで自動更新を取り込むAKS のアップグレード

経路の解放

以下のパートのスクリプトを実行

※ Kured は、Helmを使用して、gcr経由で配布するらしい。

以下のパートのスクリプトを実行

# mgmt-linux-vm1 または mgmt-win-vm1 上から Kured をインストール

※ Windows or Linuxの保守端末上、どちらでもOK。

モニタリング(監視)

モニタリングツールの確認

Pod 操作履歴

kubectl rollout history で確認できる。

>kubectl rollout history deployment.v1.apps/web --namespace azrefarc-springboot
deployment.apps/web
REVISION  CHANGE-CAUSE
1         <none>
3         <none>
4         <none>
>kubectl rollout history deployment.v1.apps/web --namespace azrefarc-springboot --revision=4
deployment.apps/web with revision #4
Pod Template:

その他

HTTPSやWAFの導入

CI/CD パイプライン

AzAD認証統合

K8sの機能活用

シェル

テキスト・ファイル

SUBSCRIPTION_NAME=XXXXXXXXXX
az account set -s "$SUBSCRIPTION_NAME"
SUBSCRIPTION_ID=$(az account show -s "$SUBSCRIPTION_NAME" --query id -o tsv)
NAME_PREFIX=daisukenishino
LOCATION=japaneast
RG_OPS="${NAME_PREFIX}-ops-rg"
RG_AKS="${NAME_PREFIX}-aks-rg"
RG_DMZ="${NAME_PREFIX}-dmz-rg"
RG_ONP="${NAME_PREFIX}-onprem-rg"
 
DIAG_STORAGE_NAME="${NAME_PREFIX}aksdiag"
DIAG_LA_WS_NAME="${NAME_PREFIX}-aks-laws"
DIAG_AI_APP_NAME="${NAME_PREFIX}-aks-ai"
ONP_VNET_NAME="${NAME_PREFIX}-onprem-vnet"
ONP_VNET_ADDRESS_PREFIXES=10.0.0.0/16
ONP_VNET_SUBNET_DEF_NAME=Default
ONP_VNET_SUBNET_DEF_ADDRESS_PREFIX=10.0.0.0/24
ONP_VNET_SUBNET_IES_NAME=InternalEndpointSubnet
ONP_VNET_SUBNET_IES_ADDRESS_PREFIX=10.0.250.0/24

シェル(カスタマイズあり)

参考


Tags: :クラウド, :コンテナ, :Azure, :AKS, :セキュリティ, :通信技術, :セキュリティ, :認証基盤


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS