Merge pull request #429 from SychevIgor/aks
AKS instead of ACS - Thanks @SychevIgor
This commit is contained in:
commit
5198041574
@ -4,11 +4,15 @@ For k8s CI/CD pipeline delivery a series of tasks must be created in VSTS to dep
|
|||||||
## Prerequisites
|
## Prerequisites
|
||||||
* A Kubernetes cluster. Follow Azure Container Service's [walkthrough](https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough) to create one.
|
* A Kubernetes cluster. Follow Azure Container Service's [walkthrough](https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough) to create one.
|
||||||
* A private Docker registry. Follow Azure Container Registry's [guide](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal) to create one.
|
* A private Docker registry. Follow Azure Container Registry's [guide](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal) to create one.
|
||||||
* Optionally, previous steps can be skipped if you run gen-k8s-env.ps1 script to automatically create the azure environment needed for kubernetes deployment. Azure cli 2.0 must be previously installed [installation guide](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). For example:
|
* Optionally, previous steps can be skipped if you run gen-k8s-env.ps1 (or gen-k8s-env-aks.ps1 if you would like to use AKS instead of ACS) script to automatically create the azure environment needed for kubernetes deployment. Azure cli 2.0 must be previously installed [installation guide](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). For example:
|
||||||
|
|
||||||
>```
|
>```
|
||||||
>./gen-k8s-env -resourceGroupName k8sGroup -location westeurope -registryName k8sregistry -orchestratorName k8s-cluster -dnsName k8s-dns
|
>./gen-k8s-env -resourceGroupName k8sGroup -location westeurope -registryName k8sregistry -orchestratorName k8s-cluster -dnsName k8s-dns
|
||||||
>```
|
>```
|
||||||
|
or using AKS instead of ACS
|
||||||
|
>```
|
||||||
|
>./gen-k8s-env-aks -resourceGroupName k8sGroup -location westeurope -registryName k8sregistry -dnsName k8s-dns -serviceName k8s-cluster -createAcr true -nodeCount 3 -nodeVMSize Standard_D2_v2
|
||||||
|
>```
|
||||||
* An `Azure Blob storage`. It is needed for storing the kubernetes config file used by the hosted agent to access to Kubernetes cluster. Example:
|
* An `Azure Blob storage`. It is needed for storing the kubernetes config file used by the hosted agent to access to Kubernetes cluster. Example:
|
||||||
|
|
||||||
<img src="./img/k8s/blob_creation.png">
|
<img src="./img/k8s/blob_creation.png">
|
||||||
@ -23,7 +27,7 @@ For k8s CI/CD pipeline delivery a series of tasks must be created in VSTS to dep
|
|||||||
1. Create a `Download File` task to download the kubernetes binary `kubectl` to the hosted agent. For example:
|
1. Create a `Download File` task to download the kubernetes binary `kubectl` to the hosted agent. For example:
|
||||||
|
|
||||||
>```
|
>```
|
||||||
>https://storage.googleapis.com/kubernetes-release/release/v0.0.1.7.0-alpha.0/bin/windows/386/kubectl.exe
|
>https://storage.googleapis.com/kubernetes-release/release/v1.8.5/bin/windows/386/kubectl.exe
|
||||||
>```
|
>```
|
||||||
|
|
||||||
<img src="./img/get_kubectlbin_task.png">
|
<img src="./img/get_kubectlbin_task.png">
|
||||||
|
@ -4,13 +4,17 @@ The k8s directory contains Kubernetes configuration for the eShopOnContainers ap
|
|||||||
## Prerequisites
|
## Prerequisites
|
||||||
* A Kubernetes cluster. Follow Azure Container Service's [walkthrough](https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough) to create one.
|
* A Kubernetes cluster. Follow Azure Container Service's [walkthrough](https://docs.microsoft.com/en-us/azure/container-service/container-service-kubernetes-walkthrough) to create one.
|
||||||
* A private Docker registry. Follow Azure Container Registry's [guide](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal) to create one.
|
* A private Docker registry. Follow Azure Container Registry's [guide](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal) to create one.
|
||||||
* Optionally, previous steps can be skipped if you run gen-k8s-env.ps1 script to automatically create the azure environment needed for kubernetes deployment. Azure cli 2.0 must be previously installed [installation guide](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). For example:
|
* Optionally, previous steps can be skipped if you run gen-k8s-env.ps1 (or gen-k8s-env-aks.ps1 if you would like to use AKS instead of ACS) script to automatically create the azure environment needed for kubernetes deployment. Azure cli 2.0 must be previously installed [installation guide](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli). For example:
|
||||||
|
|
||||||
**Important**: Note the parameter "-createAcr true". If you are creating the K8s cluster but you want to re-use and existing ACR, say "-createAcr false".
|
**Important**: Note the parameter "-createAcr true". If you are creating the K8s cluster but you want to re-use and existing ACR, say "-createAcr false".
|
||||||
|
|
||||||
>```
|
>```
|
||||||
>./gen-k8s-env -resourceGroupName k8sGroup -location westeurope -registryName k8sregistry -createAcr true -orchestratorName k8s-cluster -dnsName k8s-dns
|
>./gen-k8s-env -resourceGroupName k8sGroup -location westeurope -registryName k8sregistry -createAcr true -orchestratorName k8s-cluster -dnsName k8s-dns
|
||||||
>```
|
>```
|
||||||
|
or using AKS instead of ACS
|
||||||
|
>```
|
||||||
|
>./gen-k8s-env-aks -resourceGroupName k8sGroup -location westeurope -registryName k8sregistry -dnsName k8s-dns -serviceName k8s-cluster -createAcr true -nodeCount 3 -nodeVMSize Standard_D2_v2
|
||||||
|
>```
|
||||||
|
|
||||||
* A Docker development environment with `docker` and `docker-compose`.
|
* A Docker development environment with `docker` and `docker-compose`.
|
||||||
* Visit [docker.com](https://docker.com) to download the tools and set up the environment. Docker's [installation guide](https://docs.docker.com/engine/getstarted/step_one/#step-3-verify-your-installation) covers verifying your Docker installation.
|
* Visit [docker.com](https://docker.com) to download the tools and set up the environment. Docker's [installation guide](https://docs.docker.com/engine/getstarted/step_one/#step-3-verify-your-installation) covers verifying your Docker installation.
|
||||||
|
32
k8s/gen-k8s-env-aks.ps1
Normal file
32
k8s/gen-k8s-env-aks.ps1
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Param(
|
||||||
|
[parameter(Mandatory=$true)][string]$resourceGroupName,
|
||||||
|
[parameter(Mandatory=$true)][string]$location,
|
||||||
|
[parameter(Mandatory=$false)][string]$registryName,
|
||||||
|
[parameter(Mandatory=$true)][string]$serviceName,
|
||||||
|
[parameter(Mandatory=$true)][string]$dnsName,
|
||||||
|
[parameter(Mandatory=$true)][string]$createAcr=$true,
|
||||||
|
[parameter(Mandatory=$false)][int]$nodeCount=2,
|
||||||
|
[parameter(Mandatory=$false)][string]$nodeVMSize="Standard_D2_v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Create resource group
|
||||||
|
Write-Host "Creating resource group..." -ForegroundColor Yellow
|
||||||
|
az group create --name=$resourceGroupName --location=$location
|
||||||
|
|
||||||
|
if ($createAcr -eq $true) {
|
||||||
|
# Create Azure Container Registry
|
||||||
|
Write-Host "Creating Azure Container Registry..." -ForegroundColor Yellow
|
||||||
|
az acr create -n $registryName -g $resourceGroupName -l $location --admin-enabled true --sku Basic
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create kubernetes orchestrator
|
||||||
|
Write-Host "Creating kubernetes orchestrator..." -ForegroundColor Yellow
|
||||||
|
az aks create --resource-group=$resourceGroupName --name=$serviceName --dns-name-prefix=$dnsName --generate-ssh-keys --node-count=$nodeCount --node-vm-size=$nodeVMSize
|
||||||
|
|
||||||
|
# Retrieve kubernetes cluster configuration and save it under ~/.kube/config
|
||||||
|
az aks get-credentials --resource-group=$resourceGroupName --name=$serviceName
|
||||||
|
|
||||||
|
if ($createAcr -eq $true) {
|
||||||
|
# Show ACR credentials
|
||||||
|
az acr credential show -n $registryName
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user