Jos haluat sujuvoittaa ja automatisoida Azure Kubernetes Service (AKS) -klusterin käyttöönoton olemassa olevassa aliverkossa sekä varmistaa Jiran onnistuneen asennuksen, tarvitset tietyn joukon työkaluja ja teknologioita.
Polat Kurt
Polat Kurt, a computer science graduate from the University of Applied Sciences in Braunschweig, Germany, spent a decade working as a freelance IT consultant in development and operations. For the last few years, he has been working as a DevOps Engineer.
Tämän blogikirjoituksen lopussa osaat käynnistää Jira-instanssin AKS-klusterissa, joka on rakennettu olemassa olevaan aliverkkoon Azuressa.
Käytetyt työkalut ja teknologiat
Jokaisella työkalulla on tärkeä rooli käyttöönoton eri osa-alueiden hallinnassa:
Bash, Terraform CLI, Helm CLI, Azure CLI, Visual Studio CodeBash automatisoi tehtäviä, Terraform CLI luo infrastruktuurin, Helm CLI ottaa Jiran käyttöön Kubernetesissa, Azure CLI hallitsee Azure-resursseja ja Visual Studio Code helpottaa skriptien ja charttien muokkaamista.
TerraformLu o ja määrittää infrastruktuurin.
AzureTarjoaa pilviresurssit.
HelmOttaa Jiran käyttöön Kubernetesissa ja hallitsee sitä.
JiraTarjoaa projektinhallinta- ja tehtävienseurantaominaisuudet.
Mikä on tavoitetila?
Azure Kubernetes Service (AKS) -klusterin käyttöönotto on melko suoraviivaista. Se onnistuu Azure CLI:llä vain muutamalla komennolla. Mutta heti kun tarvitset lisämäärityksiä, kuten verkkoasetusten määrittämistä tai eri hallittujen identiteettien käyttöä, kokonaisuus mutkistuu.
Tässä todellisessa käyttötapauksessa rakennamme Azureen AKS-klusterin ja tietokannan Jiran käyttöä varten. Aliverkot ja hallittu identiteetti ovat kuitenkin jo olemassa. Todennäköisesti kohtaat vastaavan tilanteen, sillä tiimilläsi tai asiakkaallasi on luultavasti infrastruktuuri, jossa on tietty IP-alue ja muita vaatimuksia, joihin AKS-klusterin on sovittava.
Teknisesti AKS:n integroiminen olemassa olevaan virtuaaliverkkoon (vnet) tarkoittaa komponenttien luontijärjestyksen muuttamista ja tiettyjen käyttöoikeuksien myöntämistä hallitulle identiteetille etukäteen, jotta Terraform-skripti toimii onnistuneesti.
Tavoitteenamme on automatisoida mahdollisimman paljon, joten otamme infrastruktuurin käyttöön ja hallitsemme sitä Infrastructure as Code (IaC) -mallilla. Tämä auttaa pitämään tuotantoympäristön ja konfiguraation yhtenevinä sekä välttämään poikkeamia. Luomme siksi kaikki infrastruktuurikomponentit Terraformilla.
Arkkitehtuuri
Vasemmalla näkyvän resurssiryhmän rg-jira-fw01 komponentit ovat jo olemassa.
Resurssien organisointia ja käyttöoikeuksien hallintaa varten käytössämme on kolme resurssiryhmää: yksi AKS:lle, yksi Application Gatewaylle ja yksi sen komponenteille. Terraform-skripti ottaa käyttöön kahden noodin node poolin olemassa olevassa AKS-aliverkossa, MSSQL-palvelimen kahdella tietokannalla (Jira ja EazyBI) sekä Application Gatewayn, jolla on julkinen IP-osoite saapuvien SSL-yhteyksien päättävänä ingressinä. Application Gateway otetaan käyttöön AppGW-aliverkossa.
Alla oleva kaavio näyttää myös Terraformin tilatiedostoon (tfstate) liittyvät komponentit.
Repositorio
Koko projektin voi kloonata osoitteesta https://github.com/eficode/aks2jira.
Valmistele ympäristö
Valmistele ympäristösi ja tallenna Terraformin tilatiedosto etäpalveluun noudattamalla seuraavia vaiheita.
Työkalut/CLI:t
Ohitamme CLI-työkalujen asennuksen (katso Käytetyt työkalut ja teknologiat), sillä niiden asentamisesta käyttöjärjestelmäsi mukaan löytyy runsaasti ohjeita.
Tallenna tfstate etäpalveluun
Terraformin tilatiedosto kannattaa tallentaa etäpalveluun. Paikallinen tallennus ei aiheuta ongelmia, jos työskentelet yksin, mutta heti kun mukana on toinen kehittäjä, tiedosto kannattaa tallentaa etäpalveluun (katso Terraformin dokumentaatio).
Siksi meidän on:
Luotava Resource Group.
Luotava Storage Account.
Luotava Blob Container.
Määritettävä ympäristömuuttuja, jotta Terraform löytää storage accountin.
Määritettävä Terraform.
Kaikki nämä vaiheet tehdään suorittamalla bash-skripti ./scripts/create_tfstate_storage.ps1|sh, kun olet kirjautunut Azure-tilillesi.
Luo Terraform-työtila
Käytämme työtiloja eri ympäristöjen, kuten dev-, int- ja prod-ympäristöjen, luomiseen. Terraform käyttää näiden työtilojen nimiä myöhemmin Azure-komponenttien, kuten resource groupin, nimien määrittämiseen.
Luo työtila suorittamalla:
Terraformin määritysskripti
Määritämme variables.tf-tiedostossa etukäteen luodun hallitun identiteetin nimen sekä pod CIDR:n asiakkaan ennalta määritetyn IP-alueen mukaisesti. Koska kyseessä on uusi ympäristö, meidän on myös laajennettava sen VM-koon flagia.
network_aks-moduulin data blockien avulla voimme hakea olemassa olevan hallitun identiteetin objektin sekä AKS:n ja Application Gatewayn molemmat aliverkot vnet-jira-nimisestä vnetistä:
Voit käyttää haettuja muuttujia Terraform-skriptissäsi näin:
Luo AKS-klusteri
Tärkeimmät muutokset tehdään tiedostoon terraform/modules/aks/main.tf. AKS-resurssi sisältää kaikki tarvittavat tiedot klusterin luomiseksi halutuilla asetuksilla. Koska olemme hakeneet olemassa olevan AKS-aliverkon, sen ID on annettava.
Määritä käyttöoikeudet
Koska AKS-klusteri ei itse luo verkkoinfrastruktuuria, osa käyttöoikeuksista on määritettävä:
Application Gatewayn Ingress Userilla on oltava contributor-oikeudet Application Gatewayhin.
Application Gatewayn Ingress Userilla on oltava contributor-oikeudet Application Gatewayn sisältävään resource groupiin.
Application Gatewayn Ingress Userilla on oltava network contributor -oikeudet AKS-aliverkkoon.
Application Gatewayn Ingress Userilla on oltava managed identity operator -oikeudet hallittuun identiteettiin.
Application Gatewayn Ingress Userilla on oltava managed contributor -oikeudet hallittuun identiteettiin.
Luo Application Gateway
Kun olet luonut frontendin julkisen IP-osoitteen, luo Application Gateway määrittämällä frontendin IP-kokoonpano.
Luo infrastruktuuri
Voit luoda infrastruktuurin suorittamalla seuraavat Terraform-komennot (emme käsittele Terraform-komentoja tässä tarkemmin).
Asenna Jira
Kun infrastruktuuri on luotu, asennamme Jira-sovelluksen virallisen Helm Chartin kautta. Koska käytämme omia asetuksia, voimme määrittää sille values-tiedoston.
Muokkaa hosts-tiedostoa
Jos sinulla ei vielä ole omaa verkkotunnusta, voit testata mitä tahansa verkkotunnusta määrittämällä hosts-tiedostossasi Application Gatewayn julkisen IP-osoitteen ja haluamasi verkkotunnuksen, esimerkiksi mydomain.com.
Windows: C:\Windows\System32\Drivers\etc\hostsLinux: /etc/hosts<ip-of-appgw> jira.mydomain.comMuokkaa Helm values -tiedostoa
Jiran sovellustason asetukset määritetään tiedostossa ./terraform/modules/jira/values-jira.yaml. Katso lisätietoja Atlassianin dokumentaatiosta. Alla käsitellään kuitenkin joitakin erityisen tärkeitä asetuksia.
Asenna Jira Helmillä
Asenna Helm Chart muokatulla values-tiedostolla suorittamalla seuraavat komennot:
Tämä lisää virallisen Atlassian-repositorion paikallisesti ja asentaa sovelluksen values-tiedostojesi asetuksilla Jira-nimiavaruuteen.
Sovellusarkkitehtuuri
Yleiskuva sovelluksen näkökulmasta on seuraava:
Tämän oppaan avulla sinulla pitäisi nyt olla valmiudet toteuttaa vastaavia käyttöönottoja ja hallita Infrastructure as Codea luottavaisesti.
- DevOps
- Jira
- Azure AKS
Subscribe to our newsletter
Related blogs