This guide will walk you through the process of setting up Azure Kubernetes Service (AKS), databases, and deploying the WSO2 Identity Server in an Active/Passive configuration with Hot Standby Mode in Azure.
Before proceeding, ensure you have the following:
- An Azure subscription.
- WSO2 Identity Server package.
- Docker installed on your local machine.
- Create two Resource Groups under your Azure Subscription in paired regions (e.g., East-US 2 and Central-US).
- Create an Azure Container Registry (ACR). If your organization already has ACRs, use them.
- Build a Docker image of the Identity Server and push it to the Azure Container Registry (ACR).
- Create a private Azure Kubernetes Service (AKS) for the primary (Active) instance of the Identity Server.
- Create a Linux VM in Azure and connect it to the AKS.
- Install kubectl, Helm, and Azure CLI on the VM.
- Create a Helm chart for the IS Kubernetes Deployment and push it to Git.
- Clone the Git repository to the VM.
- Create two SQL Servers in each paired region.
- Create a database in the primary region and set up Geo-Replication for read-only replica in the secondary region.
- Deploy the IS Cluster with the default h2 database and verify accessibility.
- Repeat Steps 3-8 in the paired region (Central-US) to deploy the secondary instance of the Identity Server.
- Create two SQL Servers in each paired region.
- Create a database in the primary region and set up Geo-Replication for read-only replica.
- Delete previous Identity Server deployments and edit configurations to use the external database:
- Use a volume mount to replace
deployment.toml
for database configurations. - Use a volume mount to replace
registry.xml.j2
to enable read-only mode for the IS in the secondary region.
- Use a volume mount to replace
By following these steps, you will have successfully deployed the WSO2 Identity Server in an Active/Passive configuration with Hot Standby Mode on Azure.
kubectl exec -it wso2-is-node-57f8c7b9f-6jtcl -- /bin/bash
sqlcmd -S is-mssql-server-primary.database.windows.net,1433 -U regadmin -P {password} -Q "SELECT name FROM sys.databases;"