> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sistem ve Yazılım Gereksinimleri

> Apinizer platformunun çalışması için gerekli yazılım gereksinimleri: desteklenen işletim sistemleri, Kubernetes, MongoDB ve Elasticsearch versiyonları ile kritik yapılandırma ayarları. Apinizer, Kubernetes tabanlı bir platform olduğundan, tüm bileşenlerin doğru versiyonlarda ve uygun yapılandırmalarla kurulması kritik öneme sahiptir.

## Desteklenen İşletim Sistemleri

Apinizer Kubernetes üzerinden çalıştığından, Kubernetes destekleyen Linux tabanlı işletim sistemlerini destekler. Production ortamları için modern ve desteklenen versiyonların kullanılması önerilir.

| İşletim Sistemi                     | Desteklenen Versiyonlar         | Önerilen Versiyon                        |
| ----------------------------------- | ------------------------------- | ---------------------------------------- |
| **Red Hat Enterprise Linux (RHEL)** | 8.x, 9.x                        | 8.x veya 9.x                             |
| **Ubuntu**                          | 20.04 LTS, 22.04 LTS, 24.04 LTS | 22.04 LTS veya 24.04 LTS                 |
| **Oracle Linux**                    | 8.x, 9.x                        | 8.x veya 9.x                             |
| **Rocky Linux**                     | 8.x, 9.x                        | 8.x veya 9.x                             |
| **CentOS**                          | 8.x                             | 8.x (EOL - Rocky Linux'e geçiş önerilir) |

<Warning>
  **Önemli**: RHEL 7.x ve diğer eski versiyonlar artık desteklenmemektedir. Production ortamları için **RHEL 8.x veya 9.x**, **Oracle Linux 8.x veya 9.x**, **Rocky Linux 8.x veya 9.x** versiyonları kullanılmalıdır.
</Warning>

<Info>
  **Not**: Apinizer Kubernetes üzerinden çalıştığı için, Kubernetes destekleyen diğer Linux dağıtımları da kullanılabilir (SUSE Linux Enterprise Server, Debian vb.). Ancak resmi test ve destek, yukarıda belirtilen işletim sistemleri için sağlanmaktadır.
</Info>

## Kubernetes Gereksinimleri

### Desteklenen Versiyonlar

Apinizer, Kubernetes'in modern özelliklerini kullandığından, minimum **Kubernetes 1.24** versiyonu gereklidir. Daha eski versiyonlar desteklenmemektedir.

| Platform       | Minimum Versiyon | Önerilen Versiyon        | Notlar                            |
| -------------- | ---------------- | ------------------------ | --------------------------------- |
| **Kubernetes** | 1.24+            | 1.28+ veya en son stable | Minimum 1.24 zorunludur           |
| **OpenShift**  | 4.12+            | 4.14+                    | Kubernetes 1.24+ tabanlı          |
| **Tanzu**      | v1.5+            | v1.6+                    | VMware Tanzu Kubernetes Grid      |
| **RKE2**       | 1.28+            | En son versiyon          | Rancher Kubernetes Engine 2       |
| **AKS**        | Kubernetes 1.24+ | En son versiyon          | Azure Kubernetes Service          |
| **EKS**        | Kubernetes 1.24+ | En son versiyon          | Amazon Elastic Kubernetes Service |
| **GKE**        | Kubernetes 1.24+ | En son versiyon          | Google Kubernetes Engine          |

<Warning>
  **Kritik**: Kubernetes 1.24'ten daha eski versiyonlar desteklenmemektedir. Kurulum öncesi Kubernetes versiyonunuzun 1.24 veya üzeri olduğundan emin olun.
</Warning>

### Kubernetes Kritik Ayarlar

#### Container Runtime

Apinizer imajları DockerHub üzerinden rootless sağlandığından, aşağıdaki container runtime'lar desteklenir:

* **containerd**: Önerilen (Kubernetes 1.24+ için standart runtime)
* **CRI-O**: Desteklenir (Kubernetes 1.24+)
* **Docker**: Kubernetes 1.24+ için deprecated - kullanılmamalıdır

<Info>
  **Not**: Kubernetes 1.24 ve üzeri versiyonlarda Docker runtime desteği kaldırılmıştır. Production ortamlarında **containerd** veya **CRI-O** kullanılmalıdır.
</Info>

#### Gerekli Kubernetes Özellikleri

* **Namespace desteği**: Apinizer bileşenleri namespace'ler içinde çalışır
* **RBAC**: Role-Based Access Control aktif olmalı
* **Network Policies**: İsteğe bağlı, güvenlik için önerilir
* **Storage Classes**: Persistent Volume'lar için gerekli
* **Ingress Controller**: Dış erişim için (Nginx, Traefik vb.)

#### Önemli Yapılandırmalar

**Kubelet Ayarları:**

```yaml theme={null}
# /var/lib/kubelet/config.yaml
maxPods: 110
podPidsLimit: 4096
```

**API Server Ayarları:**

```yaml theme={null}
# /etc/kubernetes/manifests/kube-apiserver.yaml
--max-requests-inflight=400
--max-mutating-requests-inflight=200
```

<Info>
  Detaylı Kubernetes kurulum adımları ve sistem yapılandırması (kernel ayarları, network ayarları, zaman senkronizasyonu) için [Kurulum Öncesi Öneriler](/tr/concepts/deployment/kurulum-oncesi-oneriler) ve [Kubernetes Kurulum](/tr/setup/kubernetes/argocd-ile-versiyon-yonetimi.mdx) sayfalarına bakabilirsiniz.
</Info>

## MongoDB Gereksinimleri

### Desteklenen Versiyonlar

| Versiyon        | Durum       | Önerilen |
| --------------- | ----------- | -------- |
| **MongoDB 4.4** | Desteklenir | ✓        |
| **MongoDB 5.0** | Desteklenir | ✓✓       |
| **MongoDB 6.0** | Desteklenir | ✓✓       |
| **MongoDB 7.0** | Desteklenir | ✓✓       |

<Warning>
  **Kritik**: MongoDB mutlaka **Replica Set** olarak yapılandırılmalıdır. Tek node dahi olsa replica set olarak kurulmalıdır. Standalone instance kullanılmamalıdır.
</Warning>

### MongoDB Kritik Ayarlar

#### Replica Set Yapılandırması

**Zorunlu**: MongoDB mutlaka Replica Set olarak kurulmalıdır. Tek node için bile replica set yapılandırması gereklidir.

**Örnek Replica Set Yapılandırması:**

```javascript theme={null}
// MongoDB Replica Set başlatma
rs.initiate({
  _id: "apinizer-rs",
  members: [
    { _id: 0, host: "mongodb-0:25080" },
    { _id: 1, host: "mongodb-1:25080" },
    { _id: 2, host: "mongodb-2:25080" }
  ]
})
```

#### Önemli MongoDB Ayarları

**Kritik Yapılandırma Gereksinimleri:**

* **Replica Set**: Mutlaka replica set olarak yapılandırılmalıdır (tek node için bile)
* **WiredTiger Storage Engine**: Önerilen storage engine
* **Cache Size**: RAM'in %50'si önerilir (max 32GB)
* **Replication**: Replica set adı yapılandırılmalıdır

<Info>
  Detaylı MongoDB kurulum adımları ve yapılandırma örnekleri için [MongoDB Kurulum](/tr/setup/mongodb/rhel-mongodb.mdx) sayfalarına bakabilirsiniz.
</Info>

## Elasticsearch Gereksinimleri

| Versiyon                           | Durum          | Notlar                                |
| ---------------------------------- | -------------- | ------------------------------------- |
| **Elasticsearch 7.9.2**            | Desteklenir    | Minimum desteklenen versiyon          |
| **Elasticsearch 8.17.10**          | Resmi Önerilen | ✓✓ Önerilen versiyon                  |
| **Elasticsearch 8.x (\< 8.17.10)** | Test Edilmiş   | Resmi destek yok, kullanılabilir      |
| **Elasticsearch 8.x (> 8.17.10)**  | Önerilmez      | Test edilmediği için önerilmemektedir |

### Elasticsearch Kritik Ayarlar

#### Cluster Yapılandırması

**Minimum Yapılandırma:**

* **Node Sayısı**: Minimum 1 node
* **Shard Sayısı**: Index başına 1-5 shard (veri hacmine göre)
* **Replica Sayısı**: Minimum 0 (tek node için)

<Warning>
  **Production Ortamları İçin**: Production ortamlarında yüksek erişilebilirlik (HA) için **High Availability (HA) Elasticsearch mimarisi** kullanılmalıdır.
</Warning>

**High Availability (HA) Yapılandırması (Önerilen):**

* **Node Sayısı**: Minimum 3 node (Master + Data + Ingest rolleri)
* **Master Node Sayısı**: Tek sayı olmalı (3, 5, 7 gibi) - split-brain önleme için
* **Shard Sayısı**: Index başına 1-5 shard (veri hacmine göre)
* **Replica Sayısı**: Minimum 1 (yüksek erişilebilirlik için)
* **Dedicated Master Node**: Büyük cluster'larda önerilir (3 dedicated master node)

#### Önemli Elasticsearch Ayarları

**Kritik Yapılandırma Gereksinimleri:**

* **Cluster Name**: Cluster adı yapılandırılmalıdır
* **JVM Heap Size**: RAM'in %50'si önerilir (maksimum 32GB)
* **Index Lifecycle Management (ILM)**: Aktif olmalıdır
* **Discovery**: Single-node veya cluster discovery yapılandırılmalıdır
* **Network**: HTTP port (9200) ve transport port (9300) yapılandırılmalıdır

<Info>
  Detaylı Elasticsearch kurulum adımları, yapılandırma örnekleri ve ILM politikaları için [Elasticsearch Kurulum](/tr/setup/elasticsearch/basit-kimlik-dogrulama.mdx) sayfalarına bakabilirsiniz. Sistem yapılandırması (kernel ayarları, network ayarları, zaman senkronizasyonu) için [Kurulum Öncesi Öneriler](/tr/concepts/deployment/kurulum-oncesi-oneriler) sayfasına bakabilirsiniz.
</Info>
