Azure Arc enabled Kubernetes + Azure SQL on-Prem
A Hybrid management mostanság nagyon népszerű téma a felhős szolgáltatásoknál és természetesen a Microsoft se szeretne lemaradni ezen a téren sem. Ebben a cikkben szeretném bemutatni, hogy is lehet földi kubernetes környezetet “Azure Arc enabled”-é tenni, ehhez egy microk8s ubuntu-t fogok felhasználni, mely vmware-en fut.
Előfeltételek
Csupán a K8s cluster bevonása nem igényel sok erőforrást, de későbbiekben a “data controller” és az SQL rezervált processzorral és memóriával fognak indulni, hiába nem terhelik üresen a gépeket. Így Én javaslom hogy minimum a következő paraméterekkel rendelkezzen a VM
- 10 vCpu
- 20GB Mem
- 100GB disk
Ubuntu telepítése
Alap Ubuntu telepítésén sokat nem szeretnék magyarázni, de pár képben azért megmutatom az alapbeállításokat.
Persze kézzel utólag is telepíthetjük ;)
1
sudo snap install microk8s --classic
Végül a microk8s-es szolgáltatásokat kapcsoljuk be, hogy készen álljon a telepítésre a környezet, így csatlakozzunk SSH-n és futtassuk le a következőt root-ként:
1
microk8s enable dns storage helm registry
Azure Arc
Miután elkészül a microk8s cluster, elkezdődhet a tényleges munka, fel kell telepíteni az Azure CLI-t
1
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
Ezután jelentkezzünk be a telepítő felhasználónkkal.
1
az login
A parancs kiadása után a leírtaknak megfelelően nyissuk meg a linket majd adjuk meg az egyedi kódot, hogy azonosíthassuk magunkat.
Jelentkezzünk be az említett telepítő felhasználóval
Amennyiben több előfizetéshez van joga a felhasználónak, úgy célszerű ellenőrizni, hogy melyik az alapértelmezett előfizetés jelenleg. Amennyiben másik előfizetést szeretnénk használni, úgy válthatunk is:
1
2
3
4
5
6
7
8
#Jelenlegi előfizetés:
az account show
#Elérhető előfizetések:
az account list
#Előfizetés váltása
az account set --subscription "előfizetésneve"
Egyszerűség kedvéért változókkal haladjunk tovább, amiket most kaptunk meg, azokat helyettesítsük be:
1
2
3
4
export tenantId='604f5222-cd10-48f0-ae0c-585414dc4443'
export resourceGroup='ARC-RG'
export arcClusterName='microk8s'
export log='ARC-log'
Engedélyeznünk pár szolgáltatást az előfizetésen:
1
2
3
az provider register --namespace Microsoft.Kubernetes
az provider register --namespace Microsoft.KubernetesConfiguration
az provider register --namespace Microsoft.ExtendedLocation
Ez eltarthat akár 10 percig is, de a szolgáltatásokat ellenőrizhetjük a következő parancsokkal:
1
2
3
az provider show -n Microsoft.Kubernetes -o table
az provider show -n Microsoft.KubernetesConfiguration -o table
az provider show -n Microsoft.ExtendedLocation -o table
Eredményül ilyesmit kell látnunk, ha minden rendben aktiválódott
Szükség lesz egy resource group-ra amibe elhelyezzük az erőforrásokat
1
az group create -l <Azure Region> -n <resource group name>
esetemben:
1
az group create -l westeurope -n $resourceGroup
Majd a CLI-hez fel kell rakni a következő bővítményeket
1
2
az extension add --name connectedk8s
az extension add --name k8s-configuration
Szükség lesz majd egy “Log Analytics workspaces”-re is később
1
az monitor log-analytics workspace create -g $resourceGroup -n $log
Végül hozzuk létre a K8s-es config file-t, ami alapján összekapcsolhatjuk az Azure szolgáltatással és kezdődhet a kapcsolódás
1
2
3
4
5
alias kubectl='microk8s kubectl'
microk8s config >> $HOME/.kube/config
kubectl config get-contexts
kubectl config use-context microk8s
az connectedk8s connect --name $arcClusterName --resource-group $resourceGroup --location westeurope
Csatlakozás állapotát ellenőrizni kell, amíg a Status: Connected-re nem vált, addig nem lehet tovább haladni. Ez eltarthat akár 10-15 percig is.
Kubernetes Token
Mivel Azure Arc osítottuk a Kubernetes Cluster-ünk, utána már akár a portál felületéről is megnyílik a lehetőség egy sor műveletre. Bal menüben válasszuk ki az egyik olyan területet, ami érdekelne minket
Majd mikor Token -t kér, menjünk végig ezen a lépéseken: https://gudszent.hu/posts/Create-token-in-kubernetes/
A kapott Tokent bemásoljuk, és már hozzá is férünk távolról a Kubernetes Cluster-hez
SQL telepítése
A földi kubernetes clusteren futtathatunk Azure SQL szolgáltatás, ezért is csináljuk ezt az egészet :) , ehhez viszont szükség van “Data Controller”-re illetve “Custom Location-re”. Folytatáshoz a portált kell már használni:
Data Controller és Custom Location
Az itt megadott custom location namespace fog létrejönni a microk8s en
Fontos, hogy pontosan adjuk meg a storage class-t, különben soha nem fog létrejönni.
Hogy biztosra menjünk így tudjuk lekérni az elérhetőeket:
kubectl get storageclass
Data storage class-nál az alapértelmezetten létrejött microk8s class-t használtam fel
Az előzőleg létrehozott “Log Analytics workspaces”-ből szükség van az ID-ra és Key-re, amit itt találunk:
Ha megadtunk mindent csak a létrehozás maradt hátra.
Ha elkészült, hasonlót kell látnunk a földi környezeten
Azure SQL
Ezzel a alap feltételek teljesültek, már létre is hozhatunk egy Azure SQL-t a földön.
Itt érdemes a compute + storage részben átállítani DEV-re, így “olcsóbb” a tesztelés alatt
Létrehozás kattintása után földi környezetben ehhez hasonlót kellene látni
Status: Ready után tesztelhetjük is
External endpoint alapján már lehet is csatlakozni a kész földi SQL szerverhez, akár az ingyen letölthető Azure Data Studióval
Forrás és kiindulási pontnak a https://azurearcjumpstart.io/ használtam ;)