Wednesday 29 June 2022

Kubernetes Demo | Pod Deployment | Web application with MySQL


Ref: - https://www.youtube.com/watch?v=0j-iIW3_sbg&t=1291s


ls

mysqldatabase.yaml  mysqlservice.yml  webapplication.yaml  webservice.yml


cat webapplication.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

  name: webapp1

  labels:

    app: webapp-sql

    tier: frontend

spec:

  replicas: 1

  selector:

    matchLabels:

      app: webapp-sql

      tier: frontend

  template:

    metadata:

      labels:

        app: webapp-sql

        tier: frontend

    spec:

      containers:

      - name: webapp1

        image: hshar/webapp

        ports:

        - containerPort: 8081


 cat mysqldatabase.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

  name: sqldb

  labels:

    app: webapp-sql

    tier: backend

spec:

  replicas: 1

  selector:

    matchLabels:

      app: webapp-sql

      tier: backend

  template:

    metadata:

      labels:

        app: webapp-sql

        tier: backend

    spec:

      containers:

        - name: mysql

          image: hshar/mysql:5.5

          ports:

            - containerPort: 3306


cat webservice.yml

apiVersion: v1

kind: Service

metadata:

  name: webapp-sql

spec:

  selector:

    app: webapp-sql

    tier: frontend

  ports:

  - port: 80

  type: NodePort


 cat mysqlservice.yml

apiVersion: v1

kind: Service

metadata:

  name: webapp-sql1

spec:

  selector:

    app: webapp-sql

    tier: backend

  ports:

    - port: 3306

  clusterIP:


kubectl apply -f webapplication.yaml

deployment.apps/webapp1 created


kubectl apply -f mysqldatabase.yaml

deployment.apps/sqldb created


kubectl get deployment

NAME      READY   UP-TO-DATE   AVAILABLE   AGE

sqldb     1/1     1            1           69s

webapp1   1/1     1            1           80s


kubectl apply -f webservice.yml

service/webapp-sql created


kubectl apply -f mysqlservice.yml

service/webapp-sql1 created


kubectl get service

NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE

kubernetes    ClusterIP   10.96.0.1       <none>        443/TCP        5d7h

webapp-sql    NodePort    10.98.200.159   <none>        80:32025/TCP   19s

webapp-sql1   ClusterIP   10.97.173.97    <none>        3306/TCP       7s


kubectl get po

NAME                       READY   STATUS    RESTARTS   AGE

sqldb-6777dc65bb-ttkwk     1/1     Running   0          2m

webapp1-6996dfc8d8-2kl4q   1/1     Running   0          2m11s


kubectl exec -it webapp1-6996dfc8d8-2kl4q bash                   

kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.

root@webapp1-6996dfc8d8-2kl4q:/# nano var/www/html/index.php

<...>

$servername = "webapp-sql1";

$username = "root";

$password = "edureka";

$dbname = "Product_Details";

<...>

root@webapp1-6996dfc8d8-2kl4q:/# exit

exit


kubectl exec -it sqldb-6777dc65bb-ttkwk bash

root@sqldb-6777dc65bb-ttkwk:/# mysql -u root -pedureka

<...>

mysql> CREATE DATABASE Product_Details;

Query OK, 1 row affected (0.00 sec)

mysql> USE Product_Details;

Database changed

mysql> CREATE TABLE products ( product_name VARCHAR(10), product_id VARCHAR(15) );

Query OK, 0 rows affected (0.01 sec)

mysql> exit

Bye

root@sqldb-6777dc65bb-ttkwk:/# exit

exit


kubectl get services

NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE

kubernetes    ClusterIP   10.96.0.1       <none>        443/TCP        5d7h

webapp-sql    NodePort    10.98.200.159   <none>        80:32025/TCP   9m38s

webapp-sql1   ClusterIP   10.97.173.97    <none>        3306/TCP       9m26s


kubectl get po

NAME                       READY   STATUS    RESTARTS   AGE

sqldb-6777dc65bb-ttkwk     1/1     Running   0          28m

webapp1-6996dfc8d8-2kl4q   1/1     Running   0          29m


kubectl describe po/webapp1-6996dfc8d8-2kl4q | grep Node:

Node:         minikube-m02/192.168.49.3


http://192.168.49.3:32025/index.php


No comments:

Post a Comment