- Environnment: AKS Cloud AZURE
- Nombres de clusters: 3 (dev, preprod, prod)
- Nombres de namespace par environnement: 16 namespaces kafka (dev: 1 controller + 1 broker par namespace, preprod et prod 3 controller + 3broker par namespace)
Ce document propose un sizing de départ, pas un dimensionnement définitif
| Parameters | AKS DEV | AKS PREPROD | AKS PROD |
|---|---|---|---|
| vm size (Default Pool) | Standard_D4s_v5 | Standard_D4ds_v5 | Standard_D4as_v5 |
| vm size (App Pool) | Standard_D4s_v5 | Standard_D4ds_v5 | Standard_D8ds_v5 |
| node count | 3 | 4 | 7 |
| max pod | 110 | 110 | 110 |
| Os Disk Size | 50 | 50 | 50 |
| OS disk Type | Managed | Managed | Managed |
| Pod CIDR | 188.10.0.0/16 | 188.11.0.0/16 | 188.12.0.0/16 |
| Service CIDR | 198.10.0.0/16 | 198.11.0.0/16 | 198.12.0.0/16 |
| Node Type | VirtualMachineScaleSets | VirtualMachineScaleSets | VirtualMachineScaleSets |
| Kubernetes Version | 1.33.5 | 1.33.5 | 1.33.5 |
| Outbound Type | LoadBalancer | LoadBalancer | LoadBalancer |
| CNI | Azure CNI Overlay | Azure CNI Overlay | Azure CNI Overlay |
| Auto scaling | Enabled | Enabled | Enabled |
| AKS SKU | Standard | Standard | Standard |
| AKS DNS IP | 198.10.0.10 | 198.11.0.10 | 198.12.0.10 |
| AKS Private | Enabled | Enabled | Enabled |
| AKS Workload Identity | Enabled | Enabled | Enabled |
| AKS OIDC | Enabled | Enabled | Enabled |
| AKS RBAC | Enabled | Enabled | Enabled |
| ACR SKU | Premium | Premium | Premium |
| ACR Public Enabled | No | No | No |
| ACR Network Rule set | Enabled | Enabled | Enabled |
| ACR Content Trust | Disabled | Disabled | Disabled |
| Ressources Azure | AKS DEV | AKS PREPROD | AKS PROD |
|---|---|---|---|
| Resource Group | RG-DEV | RG-PREPROD | RG-PROD |
| Vnet | VNET-KUB-DEV | VNET-KUB-PREPROD-NEW | VNET-KUB-PROD_NEW |
| Subnet | default | default | default |
| Subnet CIDR | 10.110.0.0/24 | 10.150.0.0/24 | 10.160.0.0/24 |
| Entra ID User Group AKS Admin | GRP_KUB_DEV | GRP_KUB_PREPROD | GRP_KUB_PRDO |
- Terraform
- kubectl
- kubelogin
- git
- Role Contributor sur la souscription Global Subscription BOA HOLDING CSP
- Role Owner sur les ressources Groups RG-KUB-DEV, RG-KUB-PREPROD, RG-KUB-PROD
- Role en lecture sur les group Azure Entra ID GRP_KUB_DEV, GRP_KUB_PREPROD, GRP_KUB_PROD
- Cloner le repository
-
Sur l'environnement de DEV
cd aks-kafka/devterrafom initterraform planterraform apply
-
Sur l'environnement de PREPROD
cd aks-kafka/preprodterrafom initterraform planterraform apply
-
Sur l'environnement de PROD
cd aks-kafka/prodterrafom initterraform planterraform apply
- Recuperer le kubeconf du cluster dépuis le portal azure
- Tapez les commandes ci-dessous
az account set --subscription <subscription_id>
az aks get-credentials --resource-group <rg-name> --name <cluster-name> --overwrite-existing
kubelogin convert-kubeconfig -l azurecli
- Tester l'accès au cluster
kubectl get nodes
kubectl get pod -n kube-system
Pour rediriger les flux sortant du cluster vers PaloAlto, voici les actions à faire:
-
Associer la table routage au subnet sur lequel se trouve le cluter.
Exemple pour le cluster de dev
Dans le vnet VNET-KUB-DEV, subnet default, route table sélectionné RT_KUB_DEV_TO_PALOALTO, et enregistrer. -
Changer le output_type de loadBalancer à userDefinedRoute
Exemple pour le cluster de dev Dans le dossier dev du code terraform, modifier la ligne 105 du fichier main.tf à outbound_type : "userDefinedRouting" -
Déployer les mise à jour
terraform plan
terraform apply