Zpět na blog

Nasazení PHP aplikace na Kubernetes cluster s Ubuntu 18.04

Nasazení PHP aplikace na Kubernetes cluster s Ubuntu 18.04

Kubernetes (také známý jako k8s) je open-source orchestrační systém. Umožňuje uživatelům nasazovat, škálovat a spravovat kontejnerizované aplikace s minimálními prostoji. V tomto návodu se naučíte, jak nasadit PHP aplikaci na Kubernetes clusteru.

Nginx funguje jako proxy pro PHP-FPM při spuštění PHP aplikace. Správa těchto dvou služeb v jediném kontejneru je náročný proces. Kubernetes nám pomáhá spravovat je ve dvou různých kontejnerech a snižuje s tím spojené potíže. Umožňuje také uživatelům kontejnery znovu používat a nestarat se o sestavování jejich kontejnerového obrazu pro každou novou verzi PHP/Nginx.

Svou aplikaci a proxy službu spustíte ve dvou samostatných kontejnerech. Návod také poskytne pohled na to, jak použít lokální úložiště k vytvoření Persistent Volume (PV) a Persistent Volume Claim (PVC). Tento PVC pak použijete k uchování konfiguračních souborů a kódu mimo obrazy kontejnerů. Po dokončení tohoto návodu budete moci znovu použít svůj obraz Nginx pro jiné aplikace, které vyžadují proxy server. Toho můžete dosáhnout předáním konfigurace, namísto opětovného sestavování obrazu.

Požadavky

  1. Základní znalost Kubernetes (k8s) a jeho objektů. Podívejte se na tuto příručku pro podrobný přehled ekosystému Kubernetes.
  2. Kubernetes cluster, který je spuštěný a funkční na Ubuntu 18.04. Podle tohoto návodu vytvořte svůj Kubernetes cluster pomocí kubeadm.
  3. Kromě toho musíte hostovat kód své aplikace na veřejné URL, například na GitHub.

Krok 1: Vytvoření služeb PHP-FPM a Nginx

Tento krok vám pomůže vytvořit služby PHP-FPM a Nginx. Jakákoli služba poskytuje přístup k sadě podů v rámci clusteru. Všechny služby přítomné v clusteru spolu mohou komunikovat pomocí svých názvů, bez IP adres. Služba PHP-FPM a služba Nginx poskytnou přístup k podům PHP-FPM, respektive Nginx.

Budete muset službě PHP-FPM říct, jak najít pody Nginx, protože bude fungovat jako proxy pro pody PHP-FPM. K tomu využijete automatické zjišťování služeb v Kubernetes’ a použijete srozumitelné názvy pro směrování požadavků na příslušnou službu.

Chcete-li vytvořit jakoukoli službu, budete muset vytvořit YAML soubor, který obsahuje definici objektu. Tento YAML soubor má alespoň následující značky:

  1. apiVersion: Verze API Kubernetes, do které definice patří.
  2. kind: Typ objektu Kubernetes, který tento YAML soubor vytváří. Například: service, job nebo pod.
  3. metadata: Pod touto značkou je definován název objektu a různé labels, které může uživatel chtít na tento objekt použít.
  4. spec: Tato značka obsahuje specifikaci vašeho objektu, jako jsou proměnné prostředí (ENV), kontejnerový obraz, který se má použít, a porty, na kterých bude služba kontejneru přístupná.
Vytvoření služby PHP-FPM

Pro začátek byste měli vytvořit adresář pro uložení definic objektů Kubernetes. Přihlaste se ke svému hlavnímu uzlu (master node) a vytvořte adresář s názvem “definitions:”

Změňte adresář na adresář definitions:

Dále vytvořte soubor služby PHP-FPM jako soubor php_service.yaml:

Poté nastavte apiVersion a kind v souboru php_fpm_service.yaml:

Pojmenujte svou službu jako php nebo php-fpm, protože bude poskytovat přístup k vaší aplikaci PHP-FPM:

Označte svou službu php štítkem tier: backend, protože aplikace PHP poběží za touto službou:

Služba používá štítky selector k určení, ke kterým podům má přistupovat. Jakýkoli pod, který odpovídá těmto štítkům, bez ohledu na to, kdy byl vytvořen, je obsloužen. Jak přidat štítky k vašim podům se dozvíte později v tomto návodu.

Zahrňte tier: backend štítek, který přiřadí váš pod do backendové vrstvy, společně s app: php-fpm štítkem, který označuje, že v podu běží aplikace PHP-FPM. Tyto štítky musíte přidat za sekci metadata:

Dále musíte deklarovat port pro přístup k této službě php-fpm pod spec. Můžete přidat libovolný port podle svého výběru, ale v tomto návodu použijeme port 9000 v tomto návodu:

Po dokončení výše uvedených kroků bude váš soubor php_fpm_service.yaml vypadat takto:

Stiskněte Ctrl + O pro uložení souboru, poté stiskněte Ctrl + X pro ukončení nano.

Použití příkazu kubectl k vytvoření služby PHP

Jakmile je definice objektu pro vaši službu vytvořena, spusťte příkaz kubectl apply s argumentem -f a specifikujte svůj soubor php_fpm_service.yaml:

Výstup výše uvedeného příkazu by měl být:

Spuštěním níže uvedeného příkazu ověřte, že vaše služba php-fpm běží:

Uvidíte, že služba php-fpm je spuštěná a funkční:

Poznámka: Kubernetes podporuje různé typy služeb. Vaše služba php-fpm používá výchozí typ služby ClusterIP. Tento typ služby přiřazuje interní IP adresu a zajišťuje, že služba je dostupná pouze zevnitř clusteru Kubernetes.
Vytvoření služby Nginx

Vzhledem k tomu, že vaše služba PHP-FPM je již připravena, je čas vytvořit také službu Nginx. Vytvořte a otevřete v editoru nový soubor YAML pro tuto službu s názvem nginx_service.yaml v editoru:

Pojmenujte tuto službu jako nginx, protože bude cílit na pody Nginx. Tato služba také patří do backendu, takže byste k ní měli přidat štítek tier: backend:

Stejně jako u služby php-fpm přidejte štítky selektoru app: nginx a tier: backend pro zacílení na pody. Přidejte výchozí HTTP port 80 pro přístup k této službě:

Služba Nginx může být veřejně přístupná na internetu z veřejné IP adresy. IP adresu vašeho worker uzlu můžete přidat jako your_public_ip. Přidejte níže uvedené řádky pod spec.externalIPs:

Váš soubor nginx_service.yaml by měl po dokončení všech výše uvedených kroků vypadat jako ten níže:

Po přidání všech požadovaných parametrů výše soubor uložte a zavřete.

Použití příkazu kubectl k vytvoření služby Nginx
Pro výše uvedený příkaz byste měli vidět následující výstup:
Nyní spusťte následující příkaz pro zobrazení všech spuštěných služeb:
Spuštěním výše uvedeného příkazu byste měli vidět, že obě vaše služby PHP-FPM a Nginx jsou spuštěné a funkční:
Mějte na paměti, že pokud chcete smazat některou ze spuštěných služeb, můžete spustit níže uvedený příkaz:

Krok 2: Vytvoření lokálního úložiště a Persistent Volume

Kubernetes poskytuje různé doplňky pro úložiště (storage plug-ins), které vám pomohou vytvořit úložný prostor pro vaše prostředí. Tento krok vás provede vytvořením lokální StorageClass a tím, jak lze tuto Storage Class dále použít k vytvoření Persistent Volume.

Vytvoření lokálního úložiště

Vytvořte soubor, například storageClass.yaml, ve vašem editoru:

Přidejte kind jako "storageClass" a apiVersion jako "storage.k8s.io/v1" následovně:

Pojmenujte tuto StorageClass jako "my-local-storage" a přidejte provisioner a volumeBindingMode následovně:

Uložte a zavřete soubor. Váš výsledný soubor storageClass.yaml by měl vypadat takto:

Nyní vytvořte StorageClass spuštěním příkazu kubectl create, jak je uvedeno níže:

Po spuštění výše uvedeného příkazu byste měli obdržet následující výstup:

Vytvoření lokálního Persistent Volume

Po vytvoření lokálního úložiště můžete vytvořit svůj lokální Persistent Volume. Persistent Volume, známý také jako PV, je blokové úložiště o specifikované velikosti, které je nezávislé na životním cyklu podu. Lokální Persistent Volume není nic jiného než lokální disk nebo adresář, který je k dispozici na uzlu clusteru Kubernetes. Tento lokální Persistent Volume umožňuje uživatelům přistupovat k lokálnímu úložišti pomocí lokálního Persistent Volume Claim velmi jednoduchým, a přitom přenositelným způsobem. Tento lokální Persistent Volume můžete vytvořit pomocí této třídy úložiště, kterou jsme právě vytvořili. Otevřete soubor, například persistentVolume.yaml, ve vašem editoru:

Pojmenujte tento persistent volume, například "my-local-pv":

Při vytváření lokálního Persistent Volume můžete přidat kapacitu úložiště podle vaší potřeby. V tomto návodu použijeme pro úložiště 5 Gi:

Přidejte accessModes, persistentVolumeReclaimPolicy a uveďte stejný storageClassName, jaký byl použit v storageClass.yaml:

Note: persistentVolumeReclaimPolicy tells you as to what happens to the Persistent Volume once its claim (Persistent Volume Claim) is released. There are three valid options for this parameter: Retain, Delete and Recycle. In our code, we will use the Retain option. For more details, you can check the persistentVolumeReclaimPolicy field here: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#persistentvolumeclaim-v1-core

Add the local.path for your Persistent Volume as below:

Note: Make sure this local path (/mnt/disk/vol) exists on your Kubernetes cluster node.

After adding all the required fields, your persistentVolume.yaml file should look like this:

Note: Musíte použít správný název uzlu vašeho stroje. V tomto případě je to: “worker.”
Příprava lokálního svazku

Nyní musíme připravit lokální svazek na uzlu “worker”, jak jsme přidali v souboru persistentVolume.yaml file. Spusťte níže uvedené příkazy na uzlu, který jste nakonfigurovali v persistentVolume. V tomto případě se jedná o uzel “worker”:

Poznámka: Ujistěte se, že máte dostatečná oprávnění k vytvoření adresáře a změně oprávnění, jak je uvedeno výše. Pokud ne, spusťte příkazy pod správným uživatelem.

Spusťte níže uvedený příkaz na master uzlu, kde se nachází váš persistentVolume.yaml soubor:

Měli byste získat následující výstup:

Protože jste úspěšně vytvořili lokální úložiště a Persistent Volume, můžete nyní pokračovat a vytvořit Persistent Volume Claim pro uložení kódu aplikace a konfiguračních souborů.

Krok 3: Vytvoření Persistent Volume

Kód vaší aplikace musí být v bezpečí, zatímco spravujete nebo aktualizujete své pody. K tomu použijete Persistent Volume vytvořený v předchozím kroku, ke kterému se přistupuje pomocí PersistentVolumeClaim neboli PVC. Tento PVC připojí PV do požadované cesty.

Otevřete soubor, například code_volume.yaml, ve vašem editoru:

Pojmenujte svůj PVC jako code přidáním níže uvedených parametrů a hodnot do souboru:

Sekce spec v PVC obsahuje následující položky:

  1. accessModes: Pro toto pole existují různé možné hodnoty následovně:
    • ReadWriteOnce – Připojí svazek pro jeden uzel s oprávněním pro čtení i zápis.
    • ReadOnlyMany – Připojí svazek pro mnoho uzlů pouze s oprávněním pro čtení.
    • ReadWriteMany – Připojí svazek pro mnoho uzlů s oprávněním pro čtení i zápis.
  2. resources: Definuje požadovaný úložný prostor.

Vzhledem k tomu, že lokální úložiště je připojeno pouze k jednomu uzlu, budete muset nastavit accessMode na ReadWriteOnce. V tomto návodu přidáte pouze malou část kódu aplikace, takže 1 GB úložiště zde bude stačit. Pokud však chcete uložit větší množství dat nebo kódu, můžete parametr úložiště upravit podle svých požadavků. Upozorňujeme, že po vytvoření svazku budete moci velikost úložiště zvětšit. Jeho zmenšení však podporováno není:

Nyní deklarujte třídu úložiště, kterou bude cluster Kubernetes používat k přidělování svazků. Pro storageClassName zde použijte třídu úložiště my-local-storage vytvořenou v předchozím kroku:

Po dokončení výše uvedených kroků by měl váš soubor code_volume.yaml vypadat takto:

Nyní soubor uložte a zavřete.

Vytvoření PVC

Vytvořte PVC pro kód spuštěním příkazu kubectl apply:

Měli byste obdržet následující výstup, který indikuje, že objekt byl úspěšně vytvořen a je připraven k připojení vašeho 1GB PVC jako svazku:

Pro kontrolu dostupného Persistent Volume (PV) můžete spustit následující příkaz:

Výstup výše uvedeného příkazu by měl být následující:

Všechna výše uvedená pole, s výjimkou Reclaim Policy a Status, jsou přehledem vašeho konfiguračního souboru. Reclaim Policy definuje, co se stane s PV po smazání PVC, které k němu přistupuje. Hodnota Delete odstraní PV z clusteru Kubernetes i z infrastruktury úložiště. Můžete se podívat na dokumentaci k PV v Kubernetes, abyste jasně porozuměli Reclaim Policy a Status.

Nyní můžete vytvořit své pody pomocí Deploymentu, protože jste úspěšně vytvořili svůj Persistent Volume pomocí lokálního úložiště.

Step 4: Create Deployment for your PHP-FPM Application

Tento krok vám pomůže vytvořit pod PHP-FPM pomocí Deploymentu. Deployment používá ReplicaSety k zajištění stabilního způsobu vytváření, aktualizace a správy vašich podů. Deployment automaticky vrátí své pody zpět na předchozí obraz.

Klíč spec.selector v Deploymentu uvádí všechny štítky podů, které spravuje. K vytvoření požadovaných podů používá také klíč template.

V tomto kroku si také představíme použití Init Containerů. Init Containery spouštějí několik příkazů před běžnými kontejnery, které jsou specifikovány v šabloně podu. Zde bude Init Container používat GitHub Gist (https://gist.github.com/) k získání ukázkového souboru index.php. Obsah ukázkového souboru je:

Vytvoření PHP Deploymentu

Otevřete nový soubor s názvem php_deployment.yaml ve svém editoru a vytvořte Deployment:

Nyní pojmenujte objekt Deployment jako PHP, protože tento Deployment bude spravovat vaše pody PHP-FPM. Přidejte štítek tier: backend protože pod bude patřit do vrstvy backend:

Pomocí parametru replica specifikujte počet kopií tohoto podu, které mají být vytvořeny. Počet replik se může lišit v závislosti na vašich požadavcích a dostupných zdrojích. V tomto návodu vytvoříte pouze jednu repliku vašeho podu:

Přidejte app: php a tier:backend štítky pod klíčem selector, což značí, že tento Deployment bude spravovat pody, které odpovídají těmto dvěma štítkům:

Nyní definice objektu vašeho podu vyžaduje šablonu (template) pod specifikací vašeho Deploymentu. Tato šablona definuje specifikaci, která je potřebná k vytvoření vašeho podu. Pro začátek přidejte štítky, které byly specifikovány pro selektor služby php a matchLabels Deploymentu. Poté přidejte app:php a tier:backend pod template.metadata.labels:

Poznámka: Pod může mít více kontejnerů nebo svazků a každý z nich bude potřebovat jiný název, aby je bylo možné odlišit. Pro každý svazek můžete specifikovat cestu připojení (mount path), abyste tento svazek selektivně připojili ke kontejneru.

Nejprve musíte specifikovat všechny svazky, ke kterým budou vaše kontejnery přistupovat. Pojmenujte tento svazek code, protože jste vytvořili PVC s názvem code pro uložení kódu vaší aplikace:

Dále specifikujte název kontejneru spolu s obrazem, který chcete v podu spustit. Na Docker Store je k dispozici celá řada obrazů (https://hub.docker.com/explore/), ale v tomto návodu použijeme php:7-fpm obraz:

Nyní připojte svazky, ke kterým kontejner vyžaduje přístup. Vzhledem k tomu, že tento kontejner bude spouštět váš kód PHP, bude potřebovat přístup ke svazku code vytvořenému v předchozím kroku. V tomto kroku se také dozvíte, jak zkopírovat kód aplikace pomocí Init Containeru.

Poznámka: Můžete použít buď jeden initContainer ke spuštění skriptu, který sestaví vaši aplikaci, nebo můžete použít jeden initContainer na každý příkaz, v závislosti na složitosti procesu nastavení. Musíte se ujistit, že jsou svazky k initContaineru připojeny.

Pro stažení kódu vás tento návod provede tím, jak použít jeden Init Container s busyboxem. Busybox je malý kontejner s nástrojem wget, který k tomu použijete.

Nejprve přidejte svůj initContainer pod spec.template.spec a specifikujte obraz busybox:

Poté, aby bylo možné stáhnout kód do svazku code, bude k němu váš Init Container potřebovat přístup. Připojte svazek code na cestu /code pod spec.template.spec.initContainers:

Každý Init Container vyžaduje spuštění příkazu. Tento Init Container použije wget ke stažení code z Github do adresáře /code. Můžete předat volbu -O pro pojmenování staženého souboru a tento soubor můžete pojmenovat index.php.

Poznámka: Ujistěte se, že důvěřujete kódu, který pomocí Init Containeru stahujete na svůj server. Můžete zkontrolovat zdrojový kód a ujistit se, že jste s tím, co dělá, srozuměni.

Kromě toho přidejte pod kontejner install následující řádky v spec.template.spec.initContainers:

Po dokončení všech těchto kroků by měl váš soubor php_deployment.yaml vypadat takto:

Nyní můžete soubor uložit a zavřít. Dále vytvořte svůj PHP-FPM Deployment pomocí kubectl apply příkazu:

Úspěšné vytvoření Deploymentu by mělo vést k následujícímu výstupu:

Tento Deployment začne stažením specifikovaných obrazů, poté si vyžádá PersistentVolume z vašeho PersistentVolumeClaim, a poté spustí vaše initContainers. Jakmile je tento krok hotov, kontejnery se spustí a připojí svazky do určeného bodu připojení. Po dokončení všech těchto kroků bude váš pod spuštěn a v provozu.

Pro zobrazení vašeho Deploymentu můžete spustit následující příkaz:

Po spuštění výše uvedeného příkazu byste měli obdržet následující výstup:

Pomocí tohoto výstupu můžete porozumět aktuálnímu stavu Deploymentu. Deployment je kontrolér, který udržuje požadovaný stav. Pole DESIRED určuje, že má 1 repliku podu s názvem php. Pole CURRENT udává, kolik replik DESIRED stavu v současnosti běží. U zdravého podu by to mělo odpovídat DESIRED stavu. Více informací o zbývajících polích naleznete v dokumentaci.

Poté můžete pro kontrolu stavu vašeho běžícího podu spustit následující příkaz:

Výstup tohoto příkazu se může lišit v závislosti na čase, který uplynul od vytvoření vašeho Deploymentu. Pokud jej spustíte krátce po vytvoření Deploymentu, výstup bude podobný tomuto:

Vysvětlení:

Tyto sloupce představují informace následovně:

  • Ready: Počet aktuálních/požadovaných replik spouštějících tento pod.
  • Status: Stav vašeho podu. Init:0/1 indikuje, že Init kontejnery běží a 0 z 1 Init kontejnerů bylo dokončeno.
  • Restarts: Udává počet restartů tohoto procesu za účelem spuštění podu.

Změna stavu vašeho podu na podInitializing může trvat několik minut v závislosti na složitosti vašich spouštěcích skriptů:

To znamená, že Init kontejnery úspěšně proběhly a nyní se inicializují samotné kontejnery:

Jak nyní vidíte, váš pod je spuštěn a běží. Pokud se však váš pod nespustí, můžete pro účely ladění spustit níže uvedené příkazy:

1. Pro zobrazení podrobných informací o podu:

2.  Pro zobrazení logů podu:

Note: Pro příkaz “kubectl logs” je k dispozici několik možností. Chcete-li se dozvědět více, můžete spustit příkaz “kubectl logs –help”.

3. Pro zobrazení logů konkrétního kontejneru v podu:

Gratulujeme! Úspěšně jste připojili kód aplikace a služba PHP-FPM je připravena zpracovávat připojení. Podobně můžete vytvořit svůj Nginx Deployment.

Krok 5: Vytvoření Nginx Deploymentu

Tento krok vás provede konfigurací Nginx pomocí ConfigMap. ConfigMap uchovává všechny požadované konfigurace ve formátu klíč-hodnota, které budou použity v definicích jiných objektů Kubernetes. S tímto přístupem budete mít flexibilitu znovu použít nebo vyměnit obraz Nginx za jinou verzi, kdykoli to bude potřeba. Můžete aktualizovat ConfigMap a tyto změny se automaticky replikují do jakéhokoli podu, který tento ConfigMap.

Chcete-li začít, otevřete soubor nginx_configmap.yaml ve svém editoru:

Nyní pojmenujte tento ConfigMap jako nginx-config a přidejte jej do mikroslužby tier: backend:

Kromě toho můžete do ConfigMap přidat data. Přidejte klíč s názvem config a jako hodnotu přidejte veškerý obsah konfiguračního souboru Nginx.

Vzhledem k tomu, že Kubernetes dokáže směrovat požadavky na příslušné hostitele pro danou službu, můžete pod parametrem fastcgi_pass zadat název vaší služby PHP-FPM namísto její IP adresy. Přidejte následující řádky kódu do svého souboru nginx_configMap.yaml:

Once completed, your nginx_configMap.yaml soubor vypadat takto:

Nyní můžete editor uložit a ukončit. Nyní spusťte kubectl apply příkaz pro vytvoření ConfigMap:

Poté byste měli na obrazovce vidět následující výstup:

Úspěšně jste vytvořili svůj Nginx Configmap. Nyní můžete vytvořit svůj Nginx Deployment.

Vytvoření Nginx Deploymentu

Pro začátek můžete vytvořit nový soubor s názvem nginx_deployment.yaml v editoru:

Pojmenujte tento Deployment nginx a přidejte k němu štítek tier: backend štítek:

Poté specifikujte počet replik přidáním pole replica do specifikace Deploymentu a přidejte k němu štítky app: nginx a tier: backend štítky:

Podobně přidejte šablonu podu. Ujistěte se, že jste přidali stejné štítky, které jste přidali v Deploymentu do selector.matchLabels. Můžete přidat následující:

Poskytněte Nginxu přístup k dříve vytvořenému PVC kódu přidáním následujících parametrů pod spec.template.spec.volumes:

Poznámka: Pod může připojit ConfigMap jako svazek. Zadáním názvu souboru a klíče vytvoříme soubor s jeho hodnotou jako obsahem. Chcete-li tento ConfigMap použít, nastavte cestu na název souboru, který obsahuje obsah klíče. Můžete vytvořit soubor site.conf z klíče config. Přidejte následující pod spec.template.spec.volumes:

Varování: Pokud není specifikován soubor, obsah klíče nahradí mountPath svazku. Jinými slovy, pokud není cesta explicitně specifikována, ztratíte veškerý obsah v cílové složce.

Nyní specifikujte název, image a port, které chcete ve svém podu použít. Zde použijeme nginx:1.7.9 image a port 80. Přidejte je pod spec.template.spec sekce:

Dále připojte svazek s kódem v /code, protože jak Nginx, tak PHP-FPM budou potřebovat přístup k souboru na stejné cestě:

Obraz nginx-1.7.9 automaticky načítá jakýkoli konfigurační soubor v adresáři /etc/nginx/conf.d. Pokud nyní do tohoto adresáře připojíme konfigurační svazek, vytvoří se /etc/nginx/conf.d/site.conf. Pod sekci volumeMount přidejte následující:

Po dokončení všech výše uvedených kroků by měl váš soubor nginx_deployment.yaml vypadat takto:

Nyní můžete soubor uložit, zavřít a vytvořit Nginx Deployment spuštěním následujícího příkazu:

Po úspěšném spuštění příkazu byste měli vidět následující výstup:

Všechny své Deploymenty můžete vypsat spuštěním následujících příkazů:

Nyní byste měli vidět jak Nginx, tak PHP-FPM Deploymenty:

kubernetes deployment status

Dále můžete spustit následující příkaz pro výpis podů, které jsou spravovány oběma výše uvedenými Deploymenty:

Uvidíte, že oba vaše pody jsou spuštěné a běží následovně:

kubernetes pod status

Vzhledem k tomu, že všechny vaše objekty Kubernetes jsou v tomto okamžiku aktivní, můžete nyní přistupovat ke službě Nginx ve svém prohlížeči.

Spuštěním následujícího příkazu zobrazíte seznam služeb:

Poznamenejte si External IP vaší služby Nginx:external ip of nginx Deploy a PHP Application on Kubernetes Cluster with Ubuntu 18.04

Nyní můžete pomocí této External IP adresy služby Nginx navštívit svůj server zadáním http://your_public_ip ve vašem prohlížeči. Měli byste vidět výstup z php_info(), který potvrzuje, že vaše služby Kubernetes jsou spuštěné a funkční.

Závěr

V tomto návodu jste pro nezávislou správu služeb PHP-FPM a Nginx tyto dvě služby kontejnerizovali. Tímto způsobem nejen zlepšíte škálovatelnost svého projektu, ale také efektivně využijete své prostředky. Naučili jste se také, jak vytvořit lokální úložiště a Persistent Volume pro uložení kódu aplikace na svazek a jak v budoucnu snadno aktualizovat své služby. Tímto způsobem jste zlepšili použitelnost a udržovatelnost svého kódu.

Kromě toho se podívejte na naše další návody zaměřené na Docker a Kubernetes, které najdete na našem blogu:

Příjemnou práci!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.