Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

submit home work week 4 (platform as a service -kubernetes) #64

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
# Kubernetes - (platform as a service)

## set up an ubuntu VM

- 2 CPUs or more
- 2GB of free memory
- 20GB of free disk space
- Internet connection

## **A. install kubernetes via mini-kube**
1. requirement packet:</br >
First update the system and get latest stable packet version for Ubuntu:

```bash
$ sudo apt update
$ sudo apt upgrade
```

- curl:
```bash
$ sudo apt install curl
```
- docker:
```bash
$ sudo apt install docker.io
```

2. install minikube on x86-64 Linux using Debian package:
```bash
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
$ sudo dpkg -i minikube_latest_amd64.deb
```

3. install kubectl

```bash
$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
```

4. Start minikube
```bash
$ sudo usermod -aG docker $USER && newgrp docker
$ minikube start --driver=docker
```
![](https://raw.githubusercontent.com/toanduc0671/NguyenDucToan-week4/main/image/MinikubeStart.png)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

chưa show các thành phần của k8s


## **B. write manifest file to deploy wordpress on kubernetes**
Copy link

@phamchien94 phamchien94 Jun 13, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Phần mariadb chưa có persistent volume. dữ liệu của database phải được lưu trong 1 persistent volume để tránh mất mát dữ liệu khi pod bị chết


1. create mariadb.yaml
```bash
$ gedit mariadb.yaml
```
```
apiVersion: apps/v1
kind: Deployment
metadata:
name: mariadb
labels:
app: mariadb
user: pinpoint
spec:
replicas: 1
selector:
matchLabels:
app: mariadb
tier: mariadb
template:
metadata:
labels:
app: mariadb
tier: mariadb
spec:
containers:
- name: mariadb
image: bitnami/mariadb:latest
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: " "

---
apiVersion: v1
kind: Service
metadata:
name: mariadb-svc
labels:
user: pinpoint
spec:
selector:
app: mariadb
type: ClusterIP
ports:
- port: 3306
targetPort: 3306
```

2. create wordpress.yaml
```bash
$ gedit wordpress.yaml
```

```
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
user: pinpoint
spec:
replicas: 1
selector:
matchLabels:
app: wordpress
tier: wordpress
template:
metadata:
labels:
app: wordpress
tier: wordpress
spec:
containers:
- name: wordpress
image: bitnami/wordpress:latest
ports:
- containerPort: 80
env:
- name: WORDPRESS_DB_HOST
value: "mariadb-svc"
- name: WORDPRESS_DB_USER
value: "root"
- name: WORDPRESS_DB_PASSWORD
value: " "
- name: WORDPRESS_DB_NAME
value: "wp-test"

---
apiVersion: v1
kind: Service
metadata:
name: wordpress-svc
labels:
user: pinpoint
spec:
selector:
app: wordpress
type: ClusterIP
ports:
- port: 80
targetPort: 80
```

3. apply:
```bash
$ kubectl apply -f mariadb.yaml
$ kubectl apply -f wordpress.yaml
```
![](https://raw.githubusercontent.com/toanduc0671/NguyenDucToan-week4/main/image/applyMariadbyaml.png)

![](https://raw.githubusercontent.com/toanduc0671/NguyenDucToan-week4/main/image/applyWordpress.png)

## **C. result**

```bash
$ kubectl get pods
```
![](https://raw.githubusercontent.com/toanduc0671/NguyenDucToan-week4/main/image/getpods.png)

```bash
$ kubectl get service
```
![](https://raw.githubusercontent.com/toanduc0671/NguyenDucToan-week4/main/image/getservice.png)