「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
等、カスタマイズしたモノ。
タイムアウトや、エクステンションの既定値?
の関係で、やっぱ、ローカルで利用したいなぁと。
XXXXXXXXXは置換して利用。
OS_USER_ID=XXXXXXXXX OS_PASSWORD=XXXXXXXXX
az network public-ip create --name uservmX-ip --resource-group $RG_ONP --sku Standard ONP_VNET_SUBNET_DEF_ID=$(az network vnet subnet show --resource-group $RG_ONP --vnet-name $ONP_VNET_NAME --name $ONP_VNET_SUBNET_DEF_NAME --query id -o tsv) az network nic create --name uservmXnic --subnet $ONP_VNET_SUBNET_DEF_ID --resource-group $RG_ONP --location $LOCATION --public-ip-address uservmX-ip
MGMT_LINUX_VM_NAME=mgmt-linux-vmX MGMT_LINUX_VM_NIC_NAME="${MGMT_LINUX_VM_NAME}-nic"
az vm create --name uservm1 --image "MicrosoftWindowsDesktop:Windows-10:19h2-ent:18363.720.2003120536" --admin-username $OS_USER_ID --admin-password $OS_PASSWORD --nics uservm1nic --resource-group $RG_ONP --location $LOCATION --size Standard_D2_v3
az vm create --name $MGMT_WIN_VM_NAME --image Win2019Datacenter --admin-username $OS_USER_ID --admin-password $OS_PASSWORD --nics $MGMT_WIN_VM_NIC_NAME --resource-group $RG_AKS --location $LOCATION --size Standard_D2_v3
az vm create --name $MGMT_LINUX_VM_NAME --image UbuntuLTS --admin-username $OS_USER_ID --admin-password $OS_PASSWORD --nics $MGMT_LINUX_VM_NIC_NAME --resource-group $RG_AKS --location $LOCATION --generate-ssh-keys --size Standard_D2_v3
<管理ディスク名>は置換して利用。
az vm create --name uservmX --attach-os-disk <管理ディスク名> --nics uservmXnic --resource-group $RG_ONP --location $LOCATION --size Standard_D4s_v3 --os-type Windows
az vm create --name $MGMT_WIN_VM_NAME --attach-os-disk <管理ディスク名> --nics $MGMT_WIN_VM_NIC_NAME --resource-group $RG_AKS --location $LOCATION --size Standard_D4s_v3 --os-type Windows
az vm open-port --resource-group $RG_ONP --name uservmX --port 3389
※ 注意:コチラ
az network firewall application-rule create --firewall-name $FW_NAME --resource-group $RG_AKS \ --collection-name "Required_for_management_Windows_VMs" \ --name "Azure AD Authentication" --source-addresses "${MGMT_WIN_NIC_IP_ADDRESS}/32" --protocols https=443 \ --target-fqdns "login.microsoftonline.com" "aadcdn.msftauth.net" "msft.sts.microsoft.com" "login.live.com"
ゴチャゴチャしているので、コチラの構成に合わせて簡素化した決め打ちのコピペ。
# Create AKS Cluster ============================================== # Prepare for creating cluster AKS_VERSION=$(az aks get-versions --location $LOCATION --query 'orchestrators[?!isPreview] | [-1].orchestratorVersion' --output tsv) AKS_VNET_SUBNET_NPS_ID=$(az network vnet subnet show --resource-group $RG_AKS --vnet-name $AKS_VNET_NAME --name $AKS_VNET_SUBNET_NPS_NAME --query id -o tsv) # Create AKS Cluster ※ 時間がかかる az aks create --resource-group $RG_AKS --name $AKS_CLUSTER_NAME --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --location $LOCATION --kubernetes-version $AKS_VERSION --network-plugin azure --vnet-subnet-id $AKS_VNET_SUBNET_NPS_ID --service-cidr $AKS_SERVICE_CIDR --dns-service-ip $AKS_DNS_SERVICE_IP --docker-bridge-address 172.17.0.1/16 --generate-ssh-keys --outbound-type userDefinedRouting --enable-private-cluster --enable-managed-identity # VNET に対する Contributor 権限を与える(VNET が管理リソースグループの外にあるため) AKS_VNET_ID=$(az network vnet show --name $AKS_VNET_NAME --resource-group $RG_AKS --query id -o tsv) AKS_MANAGED_ID=$(az aks show --name $AKS_CLUSTER_NAME --resource-group $RG_AKS --query identity.principalId -o tsv) az role assignment create --assignee $AKS_MANAGED_ID --role "Contributor" --scope $AKS_VNET_ID # End of Create AKS Cluster ==============================================
# Configure ACR for connecting from AKS # この作業により、Service Principal に対して ACR の AcrPull ロールが付与される az aks update --name $AKS_CLUSTER_NAME --resource-group $RG_AKS --attach-acr $ACR_NAME
# Azure Monitor for AKS 有効化 DIAG_LA_WS_RESOURCE_ID=$(az monitor log-analytics workspace show --resource-group $RG_OPS --workspace-name $DIAG_LA_WS_NAME --query id -o tsv) # 以下のエラーが出た場合は、Azure CLI のバージョンを変更してトライしてみる。 # The request content was invalid and could not be deserialized: 'Could not find member 'template' on object of type 'DeploymentDefinition'. Path 'template', line 1, position 12.'. az aks enable-addons --addons monitoring --name $AKS_CLUSTER_NAME --resource-group $RG_AKS --workspace-resource-id $DIAG_LA_WS_RESOURCE_ID # AKS 診断設定の有効化 DIAG_STORAGE_ID=$(az storage account show --name $DIAG_STORAGE_NAME --query id -o tsv) DIAG_LA_WS_ID=$(az monitor log-analytics workspace show --workspace-name $DIAG_LA_WS_NAME --resource-group $RG_OPS --query id -o tsv) AKS_CLUSTER_ID=$(az aks show --name $AKS_CLUSTER_NAME --resource-group $RG_AKS --query id -o tsv) az monitor diagnostic-settings create --name $AKS_CLUSTER_NAME --resource $AKS_CLUSTER_ID \ --logs '[{"category": "kube-apiserver","enabled": true},{"category": "kube-audit","enabled": true},{"category": "kube-controller-manager","enabled": true},{"category": "kube-scheduler","enabled": true},{"category": "cluster-autoscaler","enabled": true}]' \ --metrics '[{"category": "AllMetrics","enabled": true}]' \ --storage-account $DIAG_STORAGE_ID --workspace $DIAG_LA_WS_ID
「AKS クラスタをAzure Firewall配下のVNETに配置しようとした場合で、
コレを非プライベート・クラスタとして作成しようとすると、以下な手順が必要になるため。」
です。
Tags: :クラウド, :コンテナ, :Azure, :AKS, :セキュリティ, :通信技術, :セキュリティ, :認証基盤