Ubuntu İşletim Sisteminde Kubernetes Kurulumu
Bu doküman, Ubuntu işletim sistemine sahip bir sunucuya Kubernetes versiyon 1.31 kurulumunu anlatmaktadır. Ubuntu 2022.04 LTS İşletim sisteminin olması tavsiye edilir.
Kuruluma Başlamadan Önce Yapılması Gereken Kontroller
Çok Önemli
Kurulumlara başlamadan önce mutlaka sunucuların aynı ağda ve aynı Virtual Machine üzerinde olduğunu sistem yöneticilerinden teyit edin.
Çok Önemli
Kurulumlara başlamadan önce mutlaka sunucunun hostname'in 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 şeklinde bir hostname tanımlı olmamalıdır.
/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"
Önemli
Ubuntu paketleri güncellerken Türkiye lokasyonundaki sunucudan çekmeye çalışır. Ancak zaman zaman tr.archive.ubuntu.com adresinde sorun olabilmektedir. Bu durumda aşağıdaki değişikliği yapmak gerekir.
sudo vi /etc/apt/sources.list
#İçinde tr. olan adreslerin hepsini "Replace All" ile değiştirin.
#Örnek:
#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)
POWERSHELL
YML
POWERSHELL
|
#2.2) Kubernetes Kurulumu (Master ve Worker sunucularda)
Kubernetes anahtarlarının ve depo adreslerinin sisteme yüklenmesi:
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 Master Sunucu Oluşturma (Kubernetes Master Sunucularında)
Multi-Master Kubernetes yapmak için aşağıdaki komut çalıştırılır:
POWERSHELL
Önemli Eğer kubernetes podlarının alacağı ip bloğu (podCIDR değeri) olarak 10.244.0.0/16 kullanmayacaksanız yukarıdaki komutu buna uygun olarak düzenlemeniz gerekmektedir. 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:
# Sonuç olarak aşağıdaki gibi bir görünümde olmalıdır:
#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ı için tanımlar yapılır:
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, Kubernetes için tasarlanmış bir katman 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'a 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
|