「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
以下の権限を持つユーザで作業
以下で固定になってるので、必要に応じて変更する。
--admin-username azrefadmin
--admin-password "p&ssw0rdp&ssw0rd"
コチラの推奨設定
インバウンド(イングレス
インバウンド(エグレス
以下の併用
保守用端末を VNET 内に設置する想定。
プライベート化しない(既存のアクセス制限機能を想定)
Managed ID 方式で作成する。
Secret機能を使用
必要に応じて
バージョンアップを手動で実施。
VNET 内に本番用コンテナ・レジストリを配置するのみ
(ACR(コンテナ・レジストリ)をプライベート化する。)
https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md
※ 必要に応じて、サブスクリプションの選択を行う。
※ 「SUBSCRIPTION_NAMEは各自で書き換え」とのこと。
※ 再開の際は、再実行(テキスト・ファイルへ)。
※ 「NAME_PREFIXは各自で書き換え」とのこと。
※ 再開の際は、再実行(テキスト・ファイルへ)。
※ 「時間かかるので注意(20 分ぐらい)」とのこと。
以下のパートのスクリプトを実行して、パラメタを設定
# Parameters
※ 再開の際は、再実行(テキスト・ファイルへ)。
以下のパートのスクリプトを実行
# Create Resouce Group
az group create --name $RG_OPS --location $LOCATION
az group create --name $RG_AKS --location $LOCATION
az group create --name $RG_DMZ --location $LOCATION
az group create --name $RG_ONP --location $LOCATION
以下のパートのスクリプトを実行
# Create Diagnostics Storage
※ インターネット・アクセス禁止オプションあり。
以下のパートのスクリプトを実行
# Create Log Analytics & AppInsights
※ Log Analytics は 90日ログ保持オプションあり。
以下のパートのスクリプトを実行
# Enable Subscription Activity Logging
※ だが、現時点では UI から実施とのこと(動画も参考になる)。
以下のパートのスクリプトを実行して、パラメタを設定
# Parameters
※ 再開の際は、再実行(テキスト・ファイルへ)。
以下のパートのスクリプトを実行
# Create Onpremise VNET
以下のパートのスクリプトを実行
# 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ポートを開けるオマケが付いているので注意。
以下のパートのスクリプトを実行して、パラメタを設定
# Variables
※ 再開の際は、再実行(テキスト・ファイルへ)。
以下のパートのスクリプトを実行
#Create VNET & Subnets
AKS_VNET_NAME="${NAME_PREFIX}-aks-vnet" AKS_VNET_ADDRESS_PREFIXES=10.0.0.0/8
AKS_VNET_SUBNET_PES_NAME=PrivateEndpointSubnet AKS_VNET_SUBNET_PES_ADDRESS_PREFIX=10.15.0.0/16
AKS_VNET_SUBNET_PLS_NAME=PrivateLinkServiceNatSubnet AKS_VNET_SUBNET_PLS_ADDRESS_PREFIX=10.12.0.0/16
AKS_VNET_SUBNET_IES_NAME=InternalEndpointSubnet AKS_VNET_SUBNET_IES_ADDRESS_PREFIX=10.11.0.0/16※ 使っていない?
AKS_VNET_SUBNET_NPS_NAME=NodepoolSubnet AKS_VNET_SUBNET_NPS_ADDRESS_PREFIX=10.1.0.0/16
AKS_VNET_SUBNET_FWS_NAME=AzureFirewallSubnet AKS_VNET_SUBNET_FWS_ADDRESS_PREFIX=10.31.0.0/16※ 使っていない?
AKS_VNET_SUBNET_BTS_NAME=AzureBastionSubnet AKS_VNET_SUBNET_BTS_ADDRESS_PREFIX=10.30.0.0/16※ 使っていない?
AKS_VNET_SUBNET_MMS_NAME=ManagementSubnet AKS_VNET_SUBNET_MMS_ADDRESS_PREFIX=10.16.0.0/16
※ ノードプールのIP消費が多いので、
/16でサブネッティングしているとの事。
※ しれっと、VNETの「az monitor diagnostic-settings create」をしている。
# Create ACR※ Azure Private Endpoint 引き込みをサポートするPremiumのskuを使用。
# Create PrivateLink to ACR ... # azrefarcacr... の A レコード作成※ Previewなので変更の可能性アリとのこと → 特にDNS弄る所。
...※ よくよく見ると、DBを作ってない(コロナ"COVID-19"の影響だということ)。
# Service Endpoint for SQL DB※ マネージド・インスタンスは、Azure Private Endpoint が使えない
# Create Azure Firewall
# Create UDR and assign UDR※ 既定のUDRとして、「AKS_UDR_NAME」を作成、
# Create Firewall Rules
# Required for private AKS cluster az network firewall application-rule create...※ 前述の既定のUDR(AKS_UDR_NAME)をノードプールのサブネットに適用する。
# ntp.ubuntu.com -> * az network firewall network-rule create...
# Optional for AKS cluster az network firewall application-rule create...
# Azure Monitor for containers az network firewall application-rule create...
# Azure Policy for AKS clusters (preview, subject to be changed) az network firewall application-rule create...
※ ルールの作成には、かなり時間がかかるらしい(10分ぐらい)。
オンプレから接続する踏み台VM相当。
# Parameters※ 再開の際は、再実行(テキスト・ファイルへ)。
# ILB 配下に VM を作成 # NIC を先に作成(IP アドレスを確定させる)※ 後で、Azure Private Linkを作成するので、ILB → NICと作成するのがポイント。
# Azure Firewall ルールで Windows Update などを許可 # Azure Firewall ルールで) Azure Portal (を許可※ 同様に、ルールの作成には、かなり時間がかかるらしい(10分ぐらい?)。
# VM 作成 (Windows 2019) # Create mgmt-win-vm1※ オンプレ(模倣)環境ではない、Azure環境ということで、コチラは、2019か。
# Private Link Service 作成 # Create Private Endpoint to MgmtVM ILB※ コチラの手順が参考になる。
# Cloud Shell 上でインストールする aks バージョンを確認しておく
>az aks install-cli --client-version=1.16.7・このファイルをコピーする。
>copy %HOMEPATH%\.azure-kubectl\kubectl.exe %HOMEPATH%\kubectl.exe・または、フィアルへのパスを通す。
...
※ 「持ち込み」となっているモノは、Azure Firewallで設定していないもの。
踏み台VMから接続し、アプリのビルドや、Dockerコンテナ作業を行う。
# Parameters※ 再開の際は、再実行(テキスト・ファイルへ)。
# NIC を先に作成(IP アドレスを確定させる)※ こちらは、Azure Private Linkを構成しないので、ILBは不要。
# Azure Firewall ルールで通信を許可※ コチラは、JavaのビルドやDocker操作があるので、ソレ用に穴をあける。
# Create mgmt-linux-vm1 (Ubuntu)
ssh mgmt-linux-vm1
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
sudo apt-get update && sudo apt-get install -y apt-transport-https curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubectl
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install -y docker-ce sudo docker version
sudo apt-get update sudo apt-get install snapd sudo snap install helm --classic
オンプレ模倣環境の作成をスキップできる。
BASTION_NAME="${NAME_PREFIX}-bastion" BASTION_PUBLIC_IP_NAME="${BASTION_NAME}-ip"※ 再開の際は、再実行(テキスト・ファイルへ)。
az network public-ip create --name $BASTION_PUBLIC_IP_NAME --resource-group $RG_AKS --sku Standard az network bastion create --name $BASTION_NAME --public-ip-address $BASTION_PUBLIC_IP_NAME --resource-group $RG_AKS --vnet-name $AKS_VNET_NAME --location $LOCATION
※ 結構、時間がかかる。
Tags: :クラウド, :コンテナ, :Azure, :AKS, :セキュリティ, :通信技術, :セキュリティ, :認証基盤