Skip to content

Commit 87e78fa

Browse files
added deployment part (#61)
* added deployment part * Update deployments.md
1 parent 375cfe6 commit 87e78fa

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed

docs/deployments.md

+117
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
2+
# Kubernetes Deployment Yönetimi
3+
4+
Kubernetes'in Deployment objesi, istenilen duruma uygun olarak bir veya birden fazla pod oluşturur ve bu istenilen durumu sürekli olarak mevcut durumla karşılaştırır. Bu işlem, uygulamanın istenilen durumda kalmasını sağlar ve gerektiğinde düzeltmeler yapar.
5+
6+
## Deployment Nedir?
7+
8+
Deployment, Kubernetes'teki bir uygulamanın birden fazla kopyasını yönetir. Bu obje, oluşturulacak pod'ların özelliklerini ve sayılarını belirtir ve bu sayede uygulamanın yüksek erişilebilirlik ve güvenilirlikle çalışmasını sağlar.
9+
10+
## Temel Komutlar
11+
12+
### Deployment Oluşturma
13+
14+
```
15+
kubectl create deployment <isim> --image=<görüntü_ismi> --replicas=<kopya sayısı>
16+
```
17+
18+
Örnek:
19+
```
20+
kubectl create deployment my_deployment --image=openjdk:21-ea-19-jdk-slim-buster --replicas=2
21+
```
22+
23+
### Deployment Listeleme
24+
25+
Deployment'ları listelemek için:
26+
```
27+
kubectl get deployments
28+
```
29+
30+
Canlı olarak izlemek için `-w` parametresi ekleyebilirsiniz:
31+
```
32+
kubectl get deployments -w
33+
```
34+
35+
### Pod Yönetimi
36+
37+
Deployment içindeki pod'lardan birini silmek isterseniz:
38+
```
39+
kubectl delete pods deployment-pod-1
40+
```
41+
42+
Bu durumda, eksik pod otomatik olarak yeniden oluşturulur.
43+
44+
### Deployment Güncelleme
45+
46+
Deployment'daki bir imajı değiştirmek için:
47+
```
48+
kubectl set image deployment/<deployment_name> <container_name>=<new_image>
49+
```
50+
51+
Örnek:
52+
```
53+
kubectl set image deployment/my_deployment openjdk=21-ea-19-jdk-slim-buster=nginx
54+
```
55+
56+
### Replika Sayısını Ayarlama
57+
58+
Replika sayısını artırmak veya azaltmak için:
59+
```
60+
kubectl scale deployment <isim> --replicas=<yeni sayı>
61+
```
62+
63+
### Deployment Silme
64+
65+
Bir deployment'ı silmek için:
66+
```
67+
kubectl delete deployment <isim>
68+
```
69+
70+
## Yaml ile Deployment Tanımlama
71+
72+
Yaml dosyası kullanarak deployment tanımlayabilirsiniz. Örnek bir Yaml dosyası:
73+
74+
```yaml
75+
apiVersion: apps/v1
76+
kind: Deployment
77+
metadata:
78+
name: simple-java-application
79+
labels:
80+
app: simple-java-application
81+
spec:
82+
replicas: 2
83+
selector:
84+
matchLabels:
85+
app: simple-java-application
86+
template:
87+
metadata:
88+
labels:
89+
app: simple-java-application
90+
spec:
91+
containers:
92+
- name: simple-java-application
93+
image: nuricanozturk/java-spring-api:latest
94+
ports:
95+
- containerPort: 8080
96+
```
97+
98+
### Yaml Dosyasının Bileşenleri
99+
100+
- **apiVersion**: Kullanılacak Kubernetes API sürümü.
101+
- **kind**: Obje türü.
102+
- **metadata**: İsim ve etiketler gibi meta veriler.
103+
- **spec**: Pod oluşturma ve yönetim ayarları.
104+
- **labels**: Objeleri tanımlamak ve gruplamak için kullandığımız key-value ikilileridir. Nesnelerin alt kümelerini düzenlememize ve seçmemize olanak tanır. Etiketler, nesnelerin oluşturulması sırasında eklenebilir ve daha sonra düzenlenebilir. Karmaşıklığı önler ve anlaşılabilirliği artırır. Örneğin, aynı takımda farklı alanlarda çalışan kişiler pod'lara belirli bir convention'a uyarak key-value ikilileri atadığında, her takımın çalıştığı pod'lar kolayca ayırt edilebilir. Kısacası, etiketler nesneleri tanımlama ve gruplama imkanı sunar. Ayrıca, objeler arasında bağ kurmaya da yarar. Örneğin, servisler ve deployment objeleri hangi pod'lar ile ilişki kuracağını etiketler sayesinde belirler.
105+
- **selector**: Etiketlerin belirli kombinasyonlarını seçmeye yarayan bir mekanizmadır. Selector'lar, belirli etiketlere sahip nesneleri seçip bu nesneler üzerinde toplu işlemler yapmamıza imkan tanır. Bu sayede, belirli kriterlere göre gruplandırılmış nesneleri kolayca bulup yönetebiliriz.
106+
107+
### YAML dosyası ile deployment yönetimi
108+
109+
**Deployment Yaratma-Güncelleme**
110+
```sh
111+
kubectl apply -f deployment.yaml
112+
```
113+
114+
**Deployment Silme**
115+
```sh
116+
kubectl delete -f deployment.yaml
117+
```

0 commit comments

Comments
 (0)