samples/batch-file-processing/scripts-bash/deploy_NGINX.sh

46 lines
2.1 KiB
Bash

resourceGroup="<resource-group-name>"
clusterName="<aks-name>"
# Choose a name for your public IP address which we will use in the next steps
publicIpName="<public-ip-name>"
# Choose a DNS name which we will create and link to the public IP address in the next steps
# Your fully qualified domain name will be: <dns-label>.<location>.cloudapp.azure.com
dnsName="<dns-label>"
# Get cluster resource group name
clusterResourceGroupName=$(az aks show --resource-group $resourceGroup --name $clusterName --query nodeResourceGroup -o tsv)
echo "Cluster Resource Group Name:" $clusterResourceGroupName
# Create a public IP address with the static allocation method in the AKS cluster resource group obtained in the previous steps
ip=$(az network public-ip create --resource-group $clusterResourceGroupName --name $publicIpName --sku Standard --allocation-method static --query publicIp.ipAddress -o tsv)
echo "IP:" $ip
# Create a namespace for your ingress resources
kubectl create namespace ingress-basic
# Use Helm to deploy an NGINX ingress controller
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
helm repo update
helm install nginx-ingress stable/nginx-ingress \
--namespace ingress-basic \
--set controller.replicaCount=2 \
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set controller.service.loadBalancerIP=$ip
# Map a DNS name to the public IP
echo "Setting fully qualified domain name (FQDN)..."
publicIpId=$(az resource list --name $publicIpName --query [0].id -o tsv)
az network public-ip update --ids $publicIpId --dns-name $dnsName
echo "FQDN:"
az network public-ip list --resource-group $clusterResourceGroupName --query "[?name=='$publicIpName'].[dnsSettings.fqdn]" -o tsv
# Copy the domain name, we will need it in the next step.
# It may take a few minutes for the LoadBalancer IP to be available.
# You can watch the status by running 'kubectl get service -l app=nginx-ingress --namespace ingress-basic -w'
# Now you should get "default backend - 404" when sending a request to either IP or Domain name.