Use Azure Database for MySQL for AKS Workloads¶
Link to all the Kubernetes Manifests¶
Step-01: Introduction¶
- What are the problems with MySQL Pod & Azure Disks?
- How we are going to solve them using Azure MySQL Database?
Azure Kubernetes Service with Azure DevOps and Terraform¶
Step-02: Create Azure Database for MySQL servers¶
- Go to Service Azure Database for MySQL servers
- Click on Add
- Basics
- Project details
- Subscription: Free Trial
- Resource Group: aks-rg1
- Server Details
- Server name: akswebappdb (This name is based on availability - in your case it might be something else)
- Data source: none
- Location: (US) East US
- Version: 5.7 (default)
- Compute + Storage
- Pricing Tier: Basic
- VCore: 1
- Storage: 5GB
- Storage Auto Growth: Yes
- Backup Retention: 7 days
- Locally Redundant: Yes
- Administrative Account
- Admin username: dbadmin
- Password: Redhat1449
- Confirm password: Redhat1449
- Review + Create
- It will take close to 15 minutes to create the database.
Step-03: Update Security Settings for Database¶
- Go to Azure Database for MySQL Servers -> akswebappdb
- Settings -> Connection Security
- Very Important: Enable Allow Access to Azure Services
- Update Firewall rules to allow from local desktop (Add current client IP Address)
- SSL Settings: Disabled
- Click on Save
- It will take close to 15 minutes for changes to take place.
# Template
mysql --host=mydemoserver.mysql.database.azure.com --user=myadmin@mydemoserver -p
#
mysql --host=akswebappdb.mysql.database.azure.com --user=dbadmin@akswebappdb -p
Step-04: Create Kubernetes externalName service Manifest and Deploy¶
- Create mysql externalName Service
- 01-MySQL-externalName-Service.yml
- Deploy Manifest
Step-04: Connect to RDS Database using kubectl and create usermgmt schema/db¶
# Template
kubectl run -it --rm --image=mysql:5.7.22 --restart=Never mysql-client -- mysql -h <AZURE-MYSQ-DB-HOSTNAME> -u <USER_NAME> -p<PASSWORD>
# Replace Host Name of Azure MySQL Database and Username and Password
kubectl run -it --rm --image=mysql:5.7.22 --restart=Never mysql-client -- mysql -h akswebappdb.mysql.database.azure.com -u dbadmin@akswebappdb -pRedhat1449
mysql> show schemas;
mysql> create database webappdb;
mysql> show schemas;
mysql> exit
Step-05: In User Management WebApp deployment file change username from root to dbadmin@akswebappdb¶
- 02-UserMgmtWebApp-Deployment.yml
Step-06: Deploy User Management WebApp and Test¶
# Deploy all Manifests
kubectl apply -f kube-manifests/
# List Pods
kubectl get pods
# Stream pod logs to verify DB Connection is successful from SpringBoot Application
kubectl logs -f <pod-name>
Step-07: Access Application¶
# Get Public IP
kubectl get svc
# Access Application
http://<External-IP-from-get-service-output>
Username: admin101
Password: password101
Step-08: Clean Up¶
# Delete all Objects created
kubectl delete -f kube-manifests/
# Verify current Kubernetes Objects
kubectl get all
# Delete Azure MySQL Database
Best Selling Azure Kubernetes Service Course on Udemy¶
Best Selling AWS EKS Kubernetes Course on Udemy¶
HashiCorp Certified Terraform Associate - 50 Practical Demos¶
🎉 New Course
Ultimate DevOps Real-World Project Implementation on AWS
$15.99
$84.99
81% OFF
DEVOPS2026FEB
Enroll Now on Udemy
🎉 Offer


