OpenShift - skalowanie aplikacji
Automatyczne skalowanie to funkcja w OpenShift, w której wdrożone aplikacje mogą skalować się i zlewać zgodnie z określonymi specyfikacjami. W aplikacji OpenShift autoskalowanie jest również nazywane autoskalowaniem podów. Istnieją dwatypes of application scaling następująco.
Skalowanie pionowe
Skalowanie pionowe polega na dodawaniu coraz większej mocy do pojedynczej maszyny, co oznacza dodawanie większej ilości procesora i dysku twardego. Jest to stara metoda OpenShift, która nie jest teraz obsługiwana przez wersje OpenShift.
Skalowanie poziome
Ten rodzaj skalowania jest przydatny, gdy istnieje potrzeba obsługi większej liczby żądań poprzez zwiększenie liczby maszyn.
W OpenShift jest two methods to enable the scaling feature.
- Korzystanie z pliku konfiguracji wdrożenia
- Podczas uruchamiania obrazu
Korzystanie z pliku konfiguracji wdrażania
W tej metodzie funkcja skalowania jest włączana za pośrednictwem deploymantowego pliku konfiguracyjnego yaml. W tym celu używane jest polecenie OC autoscale z minimalną i maksymalną liczbą replik, które muszą być uruchomione w dowolnym momencie w klastrze. Potrzebujemy definicji obiektu do stworzenia autoskalera. Poniżej znajduje się przykład pliku definicji autoskalera podów.
apiVersion: extensions/v1beta1
kind: HorizontalPodAutoscaler
metadata:
name: database
spec:
scaleRef:
kind: DeploymentConfig
name: database
apiVersion: v1
subresource: scale
minReplicas: 1
maxReplicas: 10
cpuUtilization:
targetPercentage: 80
Po przygotowaniu pliku musimy zapisać go w formacie yaml i uruchomić następujące polecenie w celu wdrożenia.
$ oc create –f <file name>.yaml
Podczas uruchamiania obrazu
Można również skalować automatycznie bez pliku yaml, korzystając z następującego polecenia oc autoscale polecenie w linii poleceń oc.
$ oc autoscale dc/database --min 1 --max 5 --cpu-percent = 75
deploymentconfig "database" autoscaled
To polecenie wygeneruje również podobny rodzaj pliku, który można później wykorzystać jako odniesienie.
Strategie wdrażania w OpenShift
Strategia wdrażania w OpenShift definiuje przepływ wdrażania za pomocą różnych dostępnych metod. W OpenShift następujące plikiimportant types of deployment strategies.
- Strategia krocząca
- Odtwórz strategię
- Strategia niestandardowa
Poniżej znajduje się przykład pliku konfiguracji wdrożenia, który jest używany głównie do wdrażania na węzłach OpenShift.
kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
name: "database"
spec:
template:
metadata:
labels:
name: "Database1"
spec:
containers:
- name: "vipinopenshifttest"
image: "openshift/mongoDB"
ports:
- containerPort: 8080
protocol: "TCP"
replicas: 5
selector:
name: "database"
triggers:
- type: "ConfigChange"
- type: "ImageChange"
imageChangeParams:
automatic: true
containerNames:
- "vipinopenshifttest"
from:
kind: "ImageStreamTag"
name: "mongoDB:latest"
strategy:
type: "Rolling"
W powyższym pliku Deploymentconfig mamy strategię Rolling.
Do wdrożenia możemy użyć następującego polecenia OC.
$ oc deploy <deployment_config> --latest
Strategia krocząca
Strategia krocząca jest używana do aktualizacji kroczących lub wdrażania. Ten proces obsługuje również punkty zaczepienia cyklu życia, które służą do wstrzykiwania kodu do dowolnego procesu wdrażania.
strategy:
type: Rolling
rollingParams:
timeoutSeconds: <time in seconds>
maxSurge: "<definition in %>"
maxUnavailable: "<Defintion in %>"
pre: {}
post: {}
Odtwórz strategię
Ta strategia wdrażania ma kilka podstawowych cech strategii wdrażania kroczącego, a także obsługuje podpięcie cyklu życia.
strategy:
type: Recreate
recreateParams:
pre: {}
mid: {}
post: {}
Strategia niestandardowa
Jest to bardzo pomocne, gdy chce się zapewnić własny proces lub przepływ wdrażania. Wszystkie dostosowania można wykonać zgodnie z wymaganiami.
strategy:
type: Custom
customParams:
image: organization/mongoDB
command: [ "ls -l", "$HOME" ]
environment:
- name: VipinOpenshiftteat
value: Dev1