Uruchomienie aplikacji
Jak skonfigurować i uruchomić aplikację z obrazów Dockera w klastrze OKS
Na tej stronie przejdziemy przez przykład tego jak za pomocą kubectl i pobranego pliku kubeconfig skonfigurować w klastrze działającą aplikację Hello World.

Uruchomienie deploymentu

Do uruchomienia aplikacji potrzebujemy obrazów kontenerów w rejestrze dostępnym dla klastra. W tym przykładzie posłużymy się publicznym rejestrem i uruchomimy w klastrze Wordpressa.
Pierwszym krokiem jest definicja poszczególnych deploymentów MySQLa i Wordpressa:
oks-mysql.yaml
1
# dodatkowa definicja serwisu MySQLa wewnątrz klastra
2
apiVersion: v1
3
kind: Service
4
metadata:
5
name: hello-wordpress-mysql
6
labels:
7
app: hello-wordpress
8
spec:
9
ports:
10
- port: 3306
11
selector:
12
app: hello-wordpress
13
clusterIP: None
14
---
15
apiVersion: apps/v1
16
kind: Deployment
17
metadata:
18
name: hello-wordpress-mysql
19
labels:
20
app: hello-wordpress
21
spec:
22
selector:
23
matchLabels:
24
app: hello-wordpress
25
strategy:
26
type: Recreate
27
template:
28
metadata:
29
labels:
30
app: hello-wordpress
31
spec:
32
containers:
33
- image: mysql:5.6
34
name: hello-mysql
35
env:
36
- name: MYSQL_ROOT_PASSWORD
37
value: YOUR_MYSQL_PASSWORD
38
ports:
39
- containerPort: 3306
40
name: mysql
41
volumeMounts:
42
- name: hello-mysql-pv
43
mountPath: /var/lib/mysql
44
volumes:
45
- name: hello-mysql-pv
46
persistentVolumeClaim:
47
claimName: hello-mysql-pvc
Copied!
oks-wordpress.yaml
1
apiVersion: apps/v1
2
kind: Deployment
3
metadata:
4
name: hello-wordpress
5
labels:
6
app: hello-wordpress
7
spec:
8
selector:
9
matchLabels:
10
app: hello-wordpress
11
strategy:
12
type: Recreate
13
template:
14
metadata:
15
labels:
16
app: hello-wordpress
17
spec:
18
containers:
19
- image: wordpress:4.8-apache
20
name: hello-wordpress
21
env:
22
- name: WORDPRESS_DB_HOST
23
value: hello-wordpress-mysql
24
- name: WORDPRESS_DB_PASSWORD
25
value: YOUR_MYSQL_PASSWORD
26
ports:
27
- containerPort: 80
28
name: hello-wordpress
29
volumeMounts:
30
- name: hello-wordpress-pv
31
mountPath: /var/www/html
32
volumes:
33
- name: hello-wordpress-pv
34
persistentVolumeClaim:
35
claimName: hello-wordpress-pvc
Copied!
Tak przygotowane pliki aplikujemy do klastra komendami:
1
$ kubectl apply -f oks-mysql.yaml
2
$ kubectl apply -f oks-wordpress.yaml
Copied!
Klaster pobierze obrazy i utworzy deploymenty oraz pody aplikacji.
W tym wypadku aplikacja jeszcze nie uruchomi się prawidłowo bo definicja obu deploymentów oczekuje PersistentVolumeClaim oraz Service.
Przejdź do Load Balancer i Storage aby uzupełnić brakującą konfigurację.

Weryfikacja działania aplikacji

Po zdefiniowaniu deploymentów (i podów), load balancera, storage'u i wewnętrznych serwisów klastra aplikacja zostanie uruchomiona.
Pierwszą weryfikacją jej działania jest sprawdzenie czy pody są aktywne:
1
$ kubectl get pods
2
NAME READY STATUS RESTARTS AGE
3
hello-wordpress-7f566c5d66-8mmhr 1/1 Running 0 91s
4
hello-wordpress-mysql-b69bfd6d-6dpzh 1/1 Running 0 95s
Copied!
Po kilku minutach od uruchomienia kontenerów powinny one zostać zainicjalizowane. Można wtedy przejść w przeglądarce pod adres IP nadany Load Balancerowi (hello-wordpress-lb), aby zobaczyć ekran powitalny Wordpressa:
1
$ kubectl get svc
2
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
3
hello-wordpress-lb LoadBalancer 10.110.222.198 195.149.198.165 80:31237/TCP 118s
4
hello-wordpress-mysql ClusterIP None <none> 3306/TCP 2m3s
5
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d
Copied!
Last modified 1yr ago