ClusterControl 1.6 wordt geleverd met een nauwere integratie met AWS, Azure en Google Cloud, dus het is nu mogelijk om nieuwe instanties te lanceren en MySQL, MariaDB, MongoDB en PostgreSQL rechtstreeks vanuit de gebruikersinterface van ClusterControl te implementeren. In deze blog laten we je zien hoe je een cluster implementeert op Amazon Web Services.
Merk op dat deze nieuwe functie twee modules vereist, genaamd clustercontrol-cloud en clustercontrol-clud . De eerste is een helper-daemon die de CMON-mogelijkheden van cloudcommunicatie uitbreidt, terwijl de laatste een bestandsbeheerclient is voor het uploaden en downloaden van bestanden op cloudinstanties. Beide pakketten zijn afhankelijkheden van het clustercontrol UI-pakket, dat automatisch wordt geïnstalleerd als ze niet bestaan. Zie de Componenten documentatie pagina voor details.
Cloud-referenties
Met ClusterControl kunt u uw cloudreferenties opslaan en beheren onder Integraties (zijmenu) -> Cloudproviders:
De ondersteunde cloudplatforms in deze release zijn Amazon Web Services, Google Cloud Platform en Microsoft Azure. Op deze pagina kunt u nieuwe cloudreferenties toevoegen, bestaande beheren en ook verbinding maken met uw cloudplatform om resources te beheren.
De inloggegevens die hier zijn ingesteld, kunnen worden gebruikt om:
- Cloudbronnen beheren
- Databases implementeren in de cloud
- Upload back-up naar cloudopslag
Het volgende is wat u zou zien als u op de knop "AWS beheren" klikt:
U kunt eenvoudige beheertaken uitvoeren op uw cloudinstanties. U kunt ook de VPC-instellingen controleren op het tabblad "AWS VPC", zoals weergegeven in de volgende schermafbeelding:
De bovenstaande functies zijn handig als referentie, vooral bij het voorbereiden van uw cloudinstanties voordat u de database-implementaties start.
Database-implementatie in de cloud
In eerdere versies van ClusterControl zou database-implementatie in de cloud op dezelfde manier worden behandeld als implementatie op standaardhosts, waarbij u vooraf de cloud-instanties moest maken en vervolgens de instantiedetails en referenties moest opgeven in de wizard "Databasecluster implementeren". De implementatieprocedure was niet op de hoogte van extra functionaliteit en flexibiliteit in de cloudomgeving, zoals dynamische IP- en hostnaamtoewijzing, NAT-ed openbaar IP-adres, opslagelasticiteit, virtual private cloud-netwerkconfiguratie enzovoort.
Met versie 1.6 hoeft u alleen de cloudreferenties op te geven, die kunnen worden beheerd via de "Cloud Providers"-interface en de implementatiewizard "Deploy in the Cloud" te volgen. Klik in de gebruikersinterface van ClusterControl op Deploy en u krijgt de volgende opties te zien:
Op dit moment zijn de ondersteunde cloudproviders de drie grote spelers:Amazon Web Service (AWS), Google Cloud en Microsoft Azure. We gaan meer providers integreren in de toekomstige release.
Op de eerste pagina krijgt u de opties voor Clusterdetails te zien:
In deze sectie moet u het ondersteunde clustertype, MySQL Galera Cluster, MongoDB Replica Set of PostgreSQL Streaming Replication selecteren. De volgende stap is het kiezen van de ondersteunde leverancier voor het geselecteerde clustertype. Op dit moment worden de volgende leveranciers en versies ondersteund:
- MySQL Galera-cluster - Percona XtraDB-cluster 5.7, MariaDB 10.2
- MongoDB Cluster - MongoDB 3.4 door MongoDB, Inc en Percona Server voor MongoDB 3.4 door Percona (alleen replicaset).
- PostgreSQL-cluster - PostgreSQL 10.0 (alleen streaming-replicatie).
In de volgende stap krijgt u het volgende dialoogvenster te zien:
Hier kunt u het geselecteerde clustertype overeenkomstig configureren. Kies het aantal knooppunten. De clusternaam wordt gebruikt als instantietag, zodat u deze implementatie gemakkelijk kunt herkennen in het dashboard van uw cloudprovider. Er is geen spatie toegestaan in de clusternaam. My.cnf-sjabloon is het sjabloonconfiguratiebestand dat ClusterControl zal gebruiken om het cluster te implementeren. Het moet zich onder /usr/share/cmon/templates op de ClusterControl-host bevinden. De rest van de velden spreken voor zich.
Het volgende dialoogvenster is om de cloudreferenties te selecteren:
U kunt de bestaande cloudreferenties kiezen of een nieuwe maken door op de knop "Nieuwe referentie toevoegen" te klikken. De volgende stap is het kiezen van de configuratie van de virtuele machine:
De meeste instellingen in deze stap worden dynamisch ingevuld door de cloudprovider met de gekozen inloggegevens. U kunt het besturingssysteem, de instantiegrootte, VPC-instelling, opslagtype en -grootte configureren en ook de SSH-sleutellocatie op de ClusterControl-host specificeren. U kunt ClusterControl ook specifiek voor deze instanties een nieuwe sleutel laten genereren. Wanneer u op de knop "Nieuwe toevoegen" naast Virtual Private Cloud klikt, krijgt u een formulier te zien om een nieuwe VPC aan te maken:
VPC is een logische netwerkinfrastructuur die je binnen je cloudplatform hebt. U kunt uw VPC configureren door het IP-adresbereik te wijzigen, subnetten te maken, routetabellen, netwerkgateways en beveiligingsinstellingen te configureren. Het wordt aanbevolen om uw database-infrastructuur in dit netwerk te implementeren voor isolatie, beveiliging en routeringscontrole.
Geef bij het maken van een nieuwe VPC de VPC-naam en het IPv4-adresblok met subnet op. Kies vervolgens of IPv6 deel moet uitmaken van het netwerk en de huuroptie. U kunt dit virtuele netwerk vervolgens gebruiken voor uw database-infrastructuur.
De laatste stap is het implementatieoverzicht:
In deze fase moet u kiezen op welk subnet onder het gekozen virtuele netwerk u de database wilt laten draaien. Houd er rekening mee dat voor het gekozen subnet de automatische toewijzing van een openbaar IPv4-adres moet zijn ingeschakeld. U kunt ook een nieuw subnet maken onder deze VPC door op de knop "Nieuw subnet toevoegen" te klikken. Controleer of alles correct is en klik op de knop "Cluster implementeren" om de implementatie te starten.
U kunt vervolgens de voortgang volgen door te klikken op Activiteit -> Vacatures -> Cluster maken -> Volledige taakdetails:
Afhankelijk van de verbindingen kan het 10 tot 20 minuten duren om te voltooien. Als u klaar bent, ziet u een nieuw databasecluster onder het ClusterControl-dashboard. Voor PostgreSQL-streamingreplicatiecluster moet u mogelijk de master- en slave-IP-adressen weten zodra de implementatie is voltooid. Ga gewoon naar het tabblad Knooppunten en u ziet de openbare en privé-IP-adressen in de lijst met knooppunten aan de linkerkant:
Uw databasecluster is nu geïmplementeerd en draait op AWS.
Op dit moment werkt het opschalen vergelijkbaar met de standaardhost, waarbij u vooraf handmatig een cloudinstantie moet maken en de host moet specificeren onder ClusterControl -> kies het cluster -> Knooppunt toevoegen.
Onder de motorkap doet het implementatieproces het volgende:
- Cloud-instanties maken
- Beveiligingsgroepen en netwerken configureren
- Controleer de SSH-connectiviteit van ClusterControl naar alle gemaakte instanties
- Deploy database op elke instantie
- Configureer de koppelingen voor clustering of replicatie
- Registreer de implementatie in ClusterControl
Houd er rekening mee dat deze functie nog in bèta is. Desalniettemin kunt u deze functie gebruiken om uw ontwikkel- en testomgeving te versnellen door het databasecluster in verschillende cloudproviders vanuit één gebruikersinterface te besturen en te beheren.
Databaseback-up in de cloud
Deze functie bestaat al sinds ClusterControl 1.5.0 en nu hebben we ondersteuning toegevoegd voor Azure Cloud Storage. Dit betekent dat u de gemaakte back-up nu kunt uploaden en downloaden op alle drie de grote cloudproviders (AWS, GCP en Azure). Het uploadproces vindt plaats direct nadat de back-up met succes is gemaakt (als u "Upload back-up naar de cloud") of u kunt handmatig op de cloudpictogramknop van de back-uplijst klikken:
U kunt vervolgens back-ups downloaden en herstellen vanuit de cloud, voor het geval u uw lokale back-upopslag bent kwijtgeraakt of als u het gebruik van lokale schijfruimte voor uw back-ups moet verminderen.
Huidige beperkingen
Er zijn enkele bekende beperkingen voor de functie voor cloudimplementatie, zoals hieronder vermeld:
- Er is momenteel geen 'accounting' voor de cloudinstanties. U moet de cloudinstanties handmatig verwijderen als u een databasecluster verwijdert.
- Je kunt een node niet automatisch toevoegen of verwijderen met cloudinstanties.
- U kunt een load balancer niet automatisch implementeren met een cloudinstantie.
We hebben de functie uitgebreid getest in veel omgevingen en opstellingen, maar er zijn altijd hoekgevallen die we mogelijk hebben gemist. Bekijk voor meer informatie het wijzigingslogboek.
Veel plezier met clusteren in de cloud!