You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: proje/README.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@
18
18
- Her iki uygulama da aynı worker node üstünde schedule edilecek.
19
19
- Her iki uygulama için de cpu ve memory kaynak kısıtları tanımlı olacak.
20
20
21
-
**7:** "test" namespace'inde deploy edilen wordpress uygulaması "testblog.example.com", "production" namespace'inde deploy edilen wordpress uygulaması "blog.example.com" olarak ingress üstünden dış dünyaya expose edilecek.
21
+
**7:** "test" namespace'inde deploy edilen wordpress uygulaması "testblog.example.com", "production" namespace'inde deploy edilen wordpress uygulaması "companyblog.example.com" olarak ingress üstünden dış dünyaya expose edilecek.
22
22
23
23
**8:** "production" namespace'inde "ozgurozturknet/k8s:v1" imajından, 5 replikalı, update stratejisi olarak aynı anda 2 pod'un update edilebileceği bir deployment oluşturun. "/healthcheck" endpoint'ini sorgulayan "liveness probe" ve "/ready" endpoint'ini sorgulayan bir "readiness probe" tanımları da olsun.
@@ -14,14 +16,202 @@ $ az aks create --name aks-k8sproje --resource-group rg-k8sproje --node-vm-size
14
16
15
17
$ az aks get-credentials --name aks-k8sproje --resource-group rg-k8sproje
16
18
```
19
+
</details>
20
+
17
21
***
18
22
**2:** "test" ve "production" adlarında 2 namespace oluşturun.
23
+
<details>
24
+
<summary>Çözümü görmek için tıklayınız!</summary>
19
25
20
26
```
21
27
$ kubectl create namespace test
22
28
23
-
$ kubectl create namespace prod
29
+
$ kubectl create namespace production
24
30
```
31
+
</details>
32
+
25
33
***
26
34
**3:** "junior" isimli grubun "test" namespace'inde tüm kaynaklar üstünde "okuma, listeleme, yaratma..." gibi tüm haklara, "production" namespace'inde ise tüm kaynaklar üstünde sadece "okuma ve listeleme" haklarına sahip olacağı rol oluşturup bunları grupla ilişkilendirin. Aynı şekilde "senior" isimli grubun "production" ve "test" namespace'lerindeki tüm kaynaklar üstünde "okuma, listeleme, yaratma..." gibi tüm haklara ve cluster üstündeki diğer kaynaklar üstünde ise sadece "okuma ve listeleme" haklarına sahip olacağı rol oluşturup bunları grupla ilişkilendirin.
27
35
36
+
<details>
37
+
<summary>Çözümü görmek için tıklayınız!</summary>
38
+
39
+
```
40
+
$ kubectl apply -f ./yaml/jr-production-rb.yaml
41
+
42
+
$ kubectl apply -f ./yaml/jr-test-rb.yaml
43
+
44
+
$ kubectl apply -f ./yaml/sr-cluster-crb.yaml
45
+
46
+
$ kubectl apply -f ./yaml/sr-production-rb.yaml
47
+
48
+
$ kubectl apply -f ./yaml/sr-test-rb.yaml
49
+
```
50
+
</details>
51
+
52
+
***
53
+
**4:** Sizin seçeceğiniz bir "ingress controller" kurun. (nginx, traefik, haproxy vb.)
**5:** Cluster'da seçeceğiniz 3 worker node sadece "production" ortamında deploy edeceğiniz ve cluster tarafından oluşturulan podlar schedule edilebilsin. Bunun dışındaki podların bu worker node üstünde oluşturulmamasını sağlayın.
73
+
<details>
74
+
<summary>Çözümü görmek için tıklayınız!</summary>
75
+
76
+
```
77
+
$ node1=$(kubectl get no -o jsonpath="{.items[1].metadata.name}")
78
+
79
+
$ node2=$(kubectl get no -o jsonpath="{.items[2].metadata.name}")
80
+
81
+
$ node3=$(kubectl get no -o jsonpath="{.items[3].metadata.name}")
**7:** "test" namespace'inde deploy edilen wordpress uygulaması "testblog.example.com", "production" namespace'inde deploy edilen wordpress uygulaması "companyblog.example.com" olarak ingress üstünden dış dünyaya expose edilecek.
123
+
<details>
124
+
<summary>Çözümü görmek için tıklayınız!</summary>
125
+
126
+
```
127
+
$ kubectl apply -f ./yaml/wpingress.yaml
128
+
```
129
+
130
+
</details>
131
+
132
+
***
133
+
**8:** "production" namespace'inde "ozgurozturknet/k8s:v1" imajından, 5 replikalı, update stratejisi olarak aynı anda 2 pod'un update edilebileceği bir deployment oluşturun. "/healthcheck" endpoint'ini sorgulayan "liveness probe" ve "/ready" endpoint'ini sorgulayan bir "readiness probe" tanımları da olsun.
134
+
<details>
135
+
<summary>Çözümü görmek için tıklayınız!</summary>
136
+
137
+
```
138
+
$ kubectl apply -f ./yaml/deployment.yaml
139
+
```
140
+
141
+
</details>
142
+
143
+
***
144
+
**9:** Bir önceki görevde oluşturduğunuz deployment'i "loadbalancer" tipi bir servisle dış dünyadan erişilebilir hale getirin.
145
+
<details>
146
+
<summary>Çözümü görmek için tıklayınız!</summary>
147
+
148
+
```
149
+
$ kubectl expose deployment k8s-deployment --type=LoadBalancer -n production
150
+
```
151
+
152
+
</details>
153
+
154
+
***
155
+
**10:** Bu deployment'i önce 3 replikaya indirin. Ardından 10 replikaya çıkarın. Sonrasında bu deployment'i "ozgurozturknet/k8s:v2" imajıyla güncelleyin.
156
+
<details>
157
+
<summary>Çözümü görmek için tıklayınız!</summary>
158
+
159
+
```
160
+
$ kubectl scale deployment k8s-deployment --replicas=3 -n production
161
+
162
+
$ kubectl scale deployment k8s-deployment --replicas=10 -n production
163
+
164
+
$ kubectl set image deployment/k8s-deployment k8s=ozgurozturknet/k8s:v2 -n production
165
+
```
166
+
167
+
</details>
168
+
169
+
***
170
+
**11:** "fluentd" uygulamasını bir "daemonset" olarak cluster'da deploy edin.
171
+
<details>
172
+
<summary>Çözümü görmek için tıklayınız!</summary>
173
+
174
+
```
175
+
$
176
+
177
+
```
178
+
179
+
</details>
180
+
181
+
***
182
+
**12:** 2 node'lu bir "mongodb" cluster'i "statefulset" olarak cluster'da deploy edin. "mongodb" cluster'ın çalıştığından emin olun.
183
+
<details>
184
+
<summary>Çözümü görmek için tıklayınız!</summary>
185
+
186
+
```
187
+
$
188
+
189
+
```
190
+
191
+
</details>
192
+
193
+
***
194
+
**13:** Cluster'da tüm objeler üstünde "okuma ve listeleme" haklarına sahip bir "service account" oluşturun. Bu service account’u bağladığınız bir pod oluşturun ve bağlanarak "curl" ile cluster’daki tüm podları listeleyin.
195
+
<details>
196
+
<summary>Çözümü görmek için tıklayınız!</summary>
197
+
198
+
```
199
+
$
200
+
201
+
```
202
+
203
+
</details>
204
+
205
+
***
206
+
**14:** Worker node'lardan bir tanesinin üzerindeki tüm podları tahliye edin ve ardından yeni pod schedule edilememesini sağlayın.
0 commit comments