> ## 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.

# RHEL 8.x üzerinde Kurulum

> Bu doküman Kubernetes, Docker or Containerd, Mongodb uygulamalarının RHEL (Red Hat Enterprise Linux) 8.4, 8.6 ve 8.9 işletim sistemlerine kurulumlarını anlatır.

Bu doküman Kubernetes, Docker or Containerd, Mongodb uygulamalarının RHEL (Red Hat Enterprise Linux) 8.4, 8.6 ve 8.9 işletim sistemlerine kurulumlarını anlatır. Ayrıca Rocky Linux 8.4, 8.6 ve 8.9 dağıtımlarına da uygulanabilir.

<Warning>
  Eğer mümkünse, her zaman seçtiğiniz işletim sisteminin son versiyonunu kullanın ve internet erişimiyle sunucuların ve kurulacak paketlerin son versiyonlarını kurun.
</Warning>

## İndirilecek dosya

```bash theme={null}
Apinizer imajlarının son sürümüne ait indirme linki için lütfen support@apinizer.com mail adresi üzerinden bizimle iletişime geçin.

Rhel 8.4 and 8.6 işletim sistemlerine Kubernetes, Docker, Mongodb ve Elasticsearch uygulamalarının kurulumu için:
Dosya adı: offlineApinizerInstallation-RedHat86.tar (1.61 GB)
İndirme linki: https://drive.google.com/file/d/1nTcklCjpmVhPRjSiPMo-XK7nsTNtHv5o

Rhel 8.9 işletim sistemine Kubernetes, Containerd, Mongodb ve Elasticsearch uygulamalarının kurulumu için:
Dosya adı: offlineApinizerInstallation-RHEL89.tar (1.4 GB)
İndirme linki: https://fss.apinizer.com/index.php/s/uOXiPzhsEB8DQXJ
```

<Info>
  Sonraki adımlarda bulunan yönergeler ilgili dosyaların içinde de mevcut olup, internete kısıtlı erişimi olabilecek sunucular için burada da açık şekilde paylaşılmıştır.

  Dosyaları çıkarmak için `tar xvzf dosyaAdi.tar` veya `tar xf dosyaAdi.tar` komutlarını kullanabiliriz.
</Info>

Öncelikle otomatik abonelik hatası almamak için ilk once asagıdaki satıra gidilip **enabled 0** yapılır.

```bash theme={null}
vim /etc/yum/pluginconf.d/subscription-manager.conf
enabled=0
```

Sadece Rhel-8.4 veya Rhel-8.6'da net-tools paketi yüklenir.

```bash theme={null}
cd offlineApinizerInstallation-RedHat86
yum install -y --cacheonly --skip-broken --disablerepo=* *.rpm
```

### Apinizer kullanıcısı oluşturulur

```bash theme={null}
adduser apinizer
usermod -aG wheel apinizer
passwd apinizer
```

### Güvenlik duvarı kapatılır

```bash theme={null}
sudo systemctl stop firewalld
sudo systemctl disable firewalld
```

### Selinux kapatılır

Sunuculardaki iletişim sorunlarını önlemek için SELinux'u devre dışı bırakalım.

```bash theme={null}
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
```

### Swap devre dışı bırakılır

Node'lardaki iletişim sorunlarını önlemek için **swap**'i devre dışı bırakalım. Bunun için aşağıdaki adımlar yapılır. ve **/etc/fstab** dosyası içindeki swap satırı silinir.

```bash theme={null}
sudo swapoff -a
sudo vi /etc/fstab
```

### IP Tables ayarlaması

Daha sonra vi dosyası kapatılır (:wq).

```bash theme={null}
sudo vi /etc/sysctl.d/k8s.conf
```

Aşağıdaki içeriği ekleyin:

```
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
net.ipv4.tcp_max_syn_backlog=40000
net.core.somaxconn=40000
net.core.wmem_default=8388608
net.core.rmem_default=8388608
net.ipv4.tcp_sack=1
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_fin_timeout=15
net.ipv4.tcp_keepalive_intvl=30
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_moderate_rcvbuf=1
net.core.rmem_max=134217728
net.core.wmem_max=134217728
net.ipv4.tcp_mem=134217728 134217728 134217728
net.ipv4.tcp_rmem=4096 277750 134217728
net.ipv4.tcp_wmem=4096 277750 134217728
net.core.netdev_max_backlog=300000
```

### Değişiklikler kaydedilir

```bash theme={null}
sudo modprobe br_netfilter
sudo sysctl --system
```

### br\_netfilter Modülü Yüklenir (→ Reboot)

```bash theme={null}
sudo lsmod | grep br_netfilter
sudo reboot
```

## Docker Kurulumu (Sadece RHEL 8.4 ve 8.6 kurulumlarında)

<Warning>
  Docker kurulumuna başlamadan önce aşağıdaki paketlerin silinmesi gerekmektedir.

  ```bash theme={null}
  yum remove podman* -y
  yum remove buildah* -y
  ```
</Warning>

```bash theme={null}
cd <InstallationDirectory>/docker
rpm -ivh --replacefiles --replacepkgs *.rpm

# Create required directories
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo mkdir -p /etc/docker

# Create daemon json config file
sudo tee /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": ["overlay2.override_kernel_check=true"]
}
EOF

# Start and enable Services
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker
sudo usermod -aG docker apinizer
```

## Containerd Kurulumu (Sadece RHEL 8.9 kurulumunda)

```bash theme={null}
sudo yum install -y --cacheonly --disablerepo=* required_rpms/*.rpm --skip-broken
```

```bash theme={null}
#containerd module settings
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml

#initializing and starting the containerd module
sudo systemctl restart containerd
sudo systemctl enable containerd
systemctl status containerd
```

## Kubernetes Kurulumu

apinizerOffline/kubernetes klasörüne gidilir ve rpm'ler çalıştırılır.

```bash theme={null}
cd apinizerOffline/kubernetes
rpm -ivh --replacefiles --replacepkgs *.rpm
```

**(Master ve Worker Sunucular üzerinde)**

.tar halindeki kubernetes imajları docker'a yüklenir.

```bash theme={null}
#Eğer RHEL 8.4 veya 8.6 kullanıyorsanız
docker load < kube-apiserver_v1.18.20.tar
docker load < kube-proxy_v1.18.20.tar
docker load < kube-controller-manager_v1.18.20.tar
docker load < kube-scheduler_v1.18.20.tar
docker load < pause_3.2.tar
docker load < etcd_3.4.3-0.tar
docker load < coredns.tar
docker load < flannel_v0.13.1-rc2.tar
docker load < rancher.tar
docker load < rancher2.tar
docker load < metricserver.tar

#Eğer RHEL 8.9 kullanıyorsanız
sudo ctr --namespace k8s.io images import kube_images/kube-apiserver-v1.31.4.tar
sudo ctr --namespace k8s.io images import kube_images/kube-controller-manager-v1.31.4.tar
sudo ctr --namespace k8s.io images import kube_images/kube-scheduler-v1.31.4.tar
sudo ctr --namespace k8s.io images import kube_images/kube-proxy-v1.31.4.tar
sudo ctr --namespace k8s.io images import kube_images/pause-3.10.tar
sudo ctr --namespace k8s.io images import kube_images/etcd-3.5.15-0.tar
sudo ctr --namespace k8s.io images import kube_images/coredns-v1.11.3.tar
sudo ctr --namespace k8s.io images import kube_images/flannel-cni-plugin-v1.6.2.tar
sudo ctr --namespace k8s.io images import kube_images/flannel-v0.26.4.tar
```

```bash theme={null}
systemctl enable kubelet && systemctl start kubelet
```

**(Master Node üzerinde)**

```bash theme={null}
#Eğer RHEL 8.4 veya 8.6 kullanıyorsanız
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<MASTER_SERVER_IP_ADDRESS> --kubernetes-version=v1.18.20

#Eğer RHEL 8.9 kullanıyorsanız
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<MASTER_SERVER_IP_ADDRESS> --kubernetes-version=v1.31.4
```

**(Master Node üzerinde)**

```bash theme={null}
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown -R $(id -u):$(id -g) $HOME/.kube
```

```bash theme={null}
kubectl apply -f kube-flannel.yml
```

## Apinizer İmajlarının Kubernetes'e Yüklenmesi (On Worker nodes)

```bash theme={null}
cd apinizerOffline/apinizerImages

#Eğer RHEL 8.4 veya 8.6 kullanıyorsanız
docker load < manager_<APINIZER_VERSION>.tar
docker load < worker_<APINIZER_VERSION>.tar
docker load < cache_<APINIZER_VERSION>.tar
docker load < integration_<APINIZER_VERSION>.tar
docker load < portal_<APINIZER_VERSION>.tar

#Eğer RHEL 8.9 kullanıyorsanız
sudo ctr --namespace k8s.io images import manager-<APINIZER_VERSION>.tar apinizercloud/manager:<APINIZER_VERSION>
sudo ctr --namespace k8s.io images import worker-<APINIZER_VERSION>.tar apinizercloud/worker:<APINIZER_VERSION>
sudo ctr --namespace k8s.io images import cache-<APINIZER_VERSION>.tar apinizercloud/cache:<APINIZER_VERSION>
sudo ctr --namespace k8s.io images import integration-<APINIZER_VERSION>.tar apinizercloud/integration:<APINIZER_VERSION>
sudo ctr --namespace k8s.io images import portal-<APINIZER_VERSION>.tar apinizercloud/portal:<APINIZER_VERSION>
```

## MongoDB Kurulumu

```bash theme={null}
sudo yum install -y --cacheonly --skip-broken --disablerepo=* <MONGODB_RPM_DIRECTORY>/*.rpm
rpm -ivh --replacefiles --replacepkgs <MONGODB_RPM_DIRECTORY>/*.rpm
```

Kurulum sonrası MongoDB konfigürasyonları için [Red Hat İşletim Sisteminde MongoDB Kurulumu](/tr/setup/mongodb/rhel-mongodb.mdx) dökümanından devam edebilirsiniz.

## Elasticsearch Kurulumu

Elasticsearch paketi hedef klasöre çıkarılır.

```bash theme={null}
sudo mkdir /opt/elasticsearch
# Move the file inside the offline installation folders.
sudo mv <ELASTICSEARCH_DIRECTORY>/elasticsearch-7.9.2-linux-x86_64.tar.gz /opt/elasticsearch/
cd /opt/elasticsearch
sudo tar -xzf elasticsearch-7.9.2-linux-x86_64.tar.gz
```

Kurulum dosyasını bulunduğu dizinden /opt/elasticsearch/ klasörüne taşıdıktan sonra [Red Hat İşletim Sisteminde Elasticsearch Kurulumu](/tr/setup/elasticsearch/rhel-elasticsearch.mdx) sayfasından konfigürasyonları gerçekleştirebilirsiniz.

## Apinizer Kurulumu

Apinizer kurulumu için [Apinizer Kurulumu ve Ayarları](/tr/setup/apinizer/apinizer.mdx) sayfasından gerçekleştirebilirsiniz.
