Red Hat İşletim Sisteminde Kubernetes Kurulumu
Bu doküman, RHEL (Red Hat Enterprise Linux) 8.x / 9.x işletim sistemine sahip bir sunucuya Kubernetes versiyon 1.31 kurulumunu anlatmaktadır. Red Hat 8.6 İşletim sisteminin olması tavsiye edilir.
Kuruluma Başlamadan Önce Yapılması Gereken Kontroller
Çok Önemli
Kurulumlara başlamadan önce mutlaka sunucunun hostname'nin localhost.localdomain olmadığından ve her birinin eşsiz olduğundan (hostname komutu ile) emin olun. Eğer bu şekilde ise mutlaka işlemlere başlamadan önce değiştirin.
#(Gerekirse) Hostname değiştirme
hostnamectl set-hostname your-new-hostname
/etc/hosts dosyasında 127.0.1.1 gibi ip'li blok hostname assign olmasın.
/etc/resolv.conf dosyasında "nameserver 127.0.1.1" şeklinde bir girdi olmamalıdır.
Çok Önemli
Eğer internete erişim için Proxy gerekiyorsa aşağıdaki kodlar çalıştırılmalıdır.
#Linux Shell üzerinde aşağıdakileri çalıştırın:
export http_proxy=http://proxyIp:port/
export https_proxy=http://proxyIp:port/
export no_proxy=localhost,127.0.0.1,SERVERIP,*.hostname
#Aşağıdaki dosyalara altındaki kodları ekleyiniz:
sudo vi /etc/apt/apt.conf
Acquire::http::Proxy "http://username:password@proxyIp:port";
Acquire::https::Proxy "https://username:password@proxyIp:port";
sudo vi /etc/systemd/system/docker.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=http://proxyIp:port"
Environment="HTTPS_PROXY=https://proxyIp:port"
Environment="NO_PROXY="localhost,127.0.0.1,::1,SERVERIP,*.hostname"
#1) İşletim Sistemi Konfigürasyonları (Tüm Sunucularda Yapılacaktır)
POWERSHELL
|
#2) Kubernetes Kurulumu
#2.1) Konteyner Kurulumu (Tüm Kubernetes Sunucularında Yapılacaktır)
Kubernetes kurulumuna geçmeden önce sistemi hazırlamak ve Docker'ı yüklemek için aşağıdaki adımlar izlenir.
POWERSHELL
Buradaki ilk üç satır zorunlu olup, diğerleri ihtiyaca göre değiştirilebilinir.
YML
Gerekli modüller yüklenir.
POWERSHELL
|
Not
# package runc-1:1.1.4-1.module+el8.7.0+16520+2db5507d.x86_64 is filtered out by modular filtering benzeri hatalar ile karşılaşılırsa aşağıdaki komut satırı uygulanır.
sudo yum remove containerd.io | sudo yum remove runc
#2.2) Kubernetes Kurulumu (Master ve Worker sunucularda)
Kubernetes anahtarlarını ve depo adresleri sisteme yüklenir, kubernetes kurulur ve başlatılır.
POWERSHELL
POWERSHELL
POWERSHELL
|
#2.2.1) Bash Auto-Completion (İsteğe Bağlı, Herhangi Bir Kubernetes Master Sunucusunda)
Bu işlem ile kubernetes komutlarının yazımında hız kazanılabilir.
POWERSHELL
|
#2.2.2) Kubernetes Control Plane (Master) Başlatma
Kubernetes Kümesi oluşturmak için gerekli olan container image'lerini indirmek için aşağıdaki komutu yürütün.
Bu Node, kümedeki ilk Node olduğu için Kubernetes Control Plane olarak seçilecektir.
POWERSHELL
Multi-Master yapısını kullanmak için diğer Master olacak node'lar aşağıdaki kod ile bağlanmalıdır.
BASH
Çok Önemli #Eğer bağlantı komutu yeniden oluşturulmak istenirse aşağıdaki kodlardan ikincisinin çıktısı ilkine eklenmelidir;
#Eğer kod manuel olarak oluşturulmak istenirse, aşağıdakiler kullanılır: XXX için → YYY için → ZZZ için → |
#2.2.3) Kubernetes Master Sunucusunda Kubectl Komutunun Kullanıcı Konfigürasyonunu Ayarlama (Kubernetes Master Sunucularında)
kubectl komutlarını çalıştıracak kullanıcıda iken gerekli ayarlar yapılır.
POWERSHELL
Tüm oturumlar için KUBECONFIG değişkenini ayarlamak için aşağıdaki komutu yürütün.
POWERSHELL
|
#2.2.4) Kubernetes Ağ Eklentisini Kurun (Kubernetes Master Sunucularında)
Bu kılavuzda Flannel ağ eklentisini kullanacağız. Desteklenen diğer ağ eklentilerini seçebilirsiniz. Flannel, Kubernet'ler için tasarlanmış bir Layer-3 ağ yapısını yapılandırmanın basit ve kolay bir yoludur.
POWERSHELL
YML
Önemli Eğer Master'ı initialize ederken podCIDR olarak 10.244.0.0/16 değerini kullanmadıysanız yukarıdaki yaml dosyasında network ayarlarını düzenlemelisiniz.
POWERSHELL
|
#2.2.5) Master Sunucu Aynı Zamanda Worker Olarak da Kullanılmak İstenirse (Opsiyonel)
Canlı ortamlar için tavsiye edilen bir yöntem değildir.
Master'dan Worker görevini eklemek için
POWERSHELL
Master'dan Worker görevini kaldırmak için
POWERSHELL
|
#2.2.6) Kubernetes Worker Sunucularını Master'a Kaydetmek (Kubernetes Worker Sunucularında)
Worker sunucusunu Master'a bağlamak için bir token bilgisine ihtiyaç vardır. Bu kurulum aşamasında master node'da yazılı olarak görülecektir. Ama atlanırsa ya da tekrar görüntülemek isterseniz aşağıdaki komut kullanılabilir.
Master Node üzerinde
POWERSHELL
Worker olacak Node(lar) üzerinde
BASH
|
#2.2.7) Kurulum Kontrol (Herhangi Bir Kubernetes Master Sunucusunda)
Master'dan aşağıdaki kod çalıştırıldığında Master'a ek olarak oluşturulan Node da görünüyorsa kurulum başarıyla tamamlanmış demektir.
İki dakika sonunda NotReady durumundan Ready durumuna geçmezse "kubectl describe node <NODE_NAME>" komutu ile sorun incelenmelidir.
BASH
|
#2.3) DNS Test (İsteğe Bağlı, Herhangi Bir Kubernetes Master Sunucusunda)
POWERSHELL
|