Post

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.

img-description
img-description
img-description
img-description
img-description
img-description
img-description
img-description
img-description
img-description
img-description

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

img-description
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.
img-description
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"

img-description

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
img-description

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

img-description
img-description
img-description

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

img-description

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

img-description
img-description
img-descriptionAz 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

img-descriptionData 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:
img-description
img-description
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
img-description

Azure SQL

Ezzel a alap feltételek teljesültek, már létre is hozhatunk egy Azure SQL-t a földön.
img-description
img-descriptionItt é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
img-description
img-descriptionStatus: 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
img-description

Forrás és kiindulási pontnak a https://azurearcjumpstart.io/ használtam ;)

This post is licensed under CC BY 4.0 by the author.