Kubernetes Kodutöö: BookStore E-commerce Rakendus¶
Navigeerimine
Kasuta paremal olevat sisukorda kiireks navigeerimiseks ↗️
Eesmärk: Deploy'ida kolmeosaline web rakendus Kubernetes'i kasutades
Ülesande Kirjeldus¶
Teie ülesanne on luua Kubernetes deployment lihtsa e-commerce rakenduse jaoks nimega "BookStore". Fork'ige antud repositoorium, parandage vigased failid ja lisage puuduvad komponendid.
Arhitektuur¶
Text Only | |
---|---|
Repository Link¶
Starter Repository: https://github.com/your-instructor/bookstore-k8s-starter
Fork'ige see repo ja töötage oma koopias!
Praegused Failid Repo's (Vigased/Mittetäielikud!)¶
📁 /database/postgres-secret.yaml
¶
YAML | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
|
Teie Ülesanded¶
1. Fork Repository¶
```bash
Fork GitHub'is, seejärel:¶
git clone https://github.com/YOUR-USERNAME/bookstore-k8s-starter cd bookstore-k8s-starter ```bash
2. Parandage Vigased Failid¶
postgres-secret.yaml:
- [ ] Lisa puuduv password
base64 väärtus
- [ ] Lisa puuduv database
base64 väärtus
postgres-deployment.yaml: - [ ] Paranda labels selector match - [ ] Lisa environment variables Secret'ist - [ ] Lisa resource limits (memory: 256Mi, cpu: 200m)
backend-config.yaml: - [ ] Muuda NODE_ENV → "production" - [ ] Muuda PORT → "3000" - [ ] Muuda DATABASE_HOST õigeks service nimeks
backend-deployment.yaml: - [ ] Lisa ConfigMap environment variables - [ ] Lisa liveness probe (HTTP GET :3000/) - [ ] Lisa readiness probe (HTTP GET :3000/) - [ ] Lisa resource limits
frontend-service.yaml: - [ ] Muuda type NodePort või LoadBalancer'iks - [ ] Paranda targetPort → 80
nginx-config.yaml: - [ ] Paranda proxy_pass port number - [ ] Lisa index.html sisu (lihtne HTML leht)
3. Looge Puuduvad Failid¶
Puuduvad failid, mida te peate looma:
-
/database/postgres-service.yaml
-
/backend/backend-service.yaml
-
/frontend/frontend-deployment.yaml
4. Täiendage README.md¶
Lisa järgmised sektsioonid: - [ ] Prerequisites (Minikube, kubectl) - [ ] Detailed deployment steps - [ ] Testing instructions - [ ] Troubleshooting common issues - [ ] Architecture explanation
5. Testimine¶
```bash
Deploy kõik¶
kubectl apply -f database/ kubectl apply -f backend/ kubectl apply -f frontend/
Kontrolli¶
kubectl get all minikube service frontend-service ```text
Näited Õigetest Väärtustest¶
Base64 Encoding Examples¶
```bash echo -n "mypassword123" | base64
Väljund: bXlwYXNzd29yZDEyMw==¶
echo -n "bookstore" | base64
Väljund: Ym9va3N0b3Jl¶
```text
Environment Variables Example¶
yaml
env:
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: postgres-secret
key: username
text
Health Probe Example¶
yaml
livenessProbe:
httpGet:
path: /
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
text
Resource Limits Example¶
yaml
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
bash
Esitamine¶
Git Workflow¶
```bash
Tehke muudatused¶
git add . git commit -m "Fix Kubernetes deployments and add missing files" git push origin main
Saatke mulle repo link¶
```bash
Esitamisviis: Saatke email'iga oma GitHub repo link koos lühikese kirjeldusega, mida muutsite.
Nõutud Commit'id¶
Teie git history peaks näitama:
- [ ] Initial fork
- [ ] Fix secret values
- [ ] Fix deployment configurations
- [ ] Add missing service files
- [ ] Complete frontend setup
- [ ] Update documentation
Hindamiskriteeriumid¶
Git ja Kood (40 punkti)¶
- Repository korrektselt fork'itud (5p)
- Kõik vead parandatud (20p)
- Puuduvad failid lisatud (15p)
Funktsionaalsus (40 punkti)¶
- Kõik pod'id käivituvad (15p)
- Service'id töötavad (10p)
- Väline ligipääs toimib (15p)
Dokumentatsioon (20 punkti)¶
- README.md täielik (10p)
- Git commit message'id kirjeldavad muudatusi (10p)
Abi ja Ressursid¶
Kubernetes Dokumentatsioon¶
Debug Käsud¶
bash
kubectl get pods
kubectl describe pod <pod-name>
kubectl logs <pod-name>
kubectl get services
text
Edu tööga! Push'ige oma töö GitHub'i ja saatke link 📧