Host makinanız Windows veya Mac ise bu lab oratamı ile Kubernetes kurumunuzu yapabilirsiniz. Kurulumları Linux, Mac ve Windows sırasına göre yapıyor olacağız.
Linux İçin Kurulumlar
Ssh servisimizi kontrol ediyoruz.
Ubuntu için openSSH | Centos için openSSH |
---|---|
sudo apt-get install openssh-server |
sudo yum install openssh-clients |
Virtualbox'ı kuruyoruz.
Centos için kurulaum yapmadan önce repo dosyasını listeye ekliyoruz.
sudo wget https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo -P /etc/yum.repos.d<br>
Ubuntu için | Centos |
---|---|
sudo apt-get install virtualbox |
sudo yum install kernel-devel kernel-headers make patch gcc |
Ubuntu için vagrant kurulumu
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install vagrant
Centos için vagrant kurulumu
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install vagrant
Mac için kurulumlar
Virtualbox kurulumu
Virtualbox resmi sayfasından Mac için olan sürümü indirip kurumunu yapabilirsiniz.
vagrant kurulumu için ya Vagrant download sayfasından binary installer'ı indirip kurabilirsiniz ya da aşağıdaki komutla da kurulumu yapabilirsiniz.
brew tap hashicorp/tap
brew install vagrant
Windows için kurulumlar
Windows'da sanallaştırma olarak Virtualbox kullanığımız için Hyper-V nin disable olduğundan emin olunuz. Alttaki komut bütün hyper-v servislerini disable duruma getirecektir.
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
Windows için openssh kurulumu yapıyoruz.
GUI üzerinden kurulum için program ekle kaldırda opsiyonel özellikler menüsünden OpenSSH Client ve OpenSSH Server programlarını kuruyoruz.
Kurulumu komutla yapmak için öncelikle powershell ile kurulu olup olmadığı kontrol ediyoruz.
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
# alttaki sonucu almalısınız
Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
Kurulu değilse aşağıdaki powershell komularıyla kurabiliriz.
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
SSH servilerini çalıştıryoruz ve firewall üzerinden portlara izin veriyoruz
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Get-NetFirewallRule -Name *ssh*
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' `
-Enabled True -Direction Inbound -Protocol TCP `
-Action Allow -LocalPort 22
-
OpenSSH için Microsoft resmi sayfasını ziyaret edebilirsiniz.
-
Virtualbox resmi sayfasında "windows host" linkine tıklayarak Virtualbox'ın son sürümünü indirip kurabiliriz.
-
Vagrant resmi sayfasıdan kurulumunu indirebilirsiniz.
Lab ortamını kuruyoruz
Daha sonra kendimize VagrantKubernetes adında bir klasör açarak içine Vagrantfile adında bir dosya oluşturup alttaki komutları içine kopyalayıp kaydediyoruz.
# -*- mode: ruby -*-
# vi: set ft=ruby :
# centops kurmak isteseniz generic/ubuntu2004 yeine generic/centos8 yazmanız yeterli
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox'
Vagrant.configure("2") do |config|
# lb-01
config.vm.define "lb-01" do |lb01|
lb01.vm.box = "generic/ubuntu2004"
lb01.vm.hostname="lb-01"
lb01.vm.network "private_network", ip: "10.240.10.2"
lb01.vm.provider :virtualbox do |lv|
lv.memory=2048
lv.cpu=1
end
end
# lb-02
config.vm.define "lb-02" do |lb02|
lb02.vm.box = "generic/ubuntu2004"
lb02.vm.hostname="lb-02"
lb02.vm.network "private_network", ip: "10.240.10.3"
lb02.vm.provider :virtualbox do |lv|
lv.memory=2048
lv.cpu=1
end
end
# controller-01
config.vm.define "controller-01" do |controller01|
controller01.vm.box = "generic/ubuntu2004"
controller01.vm.hostname="controller-01"
controller01.vm.network "private_network", ip: "10.240.10.4"
controller01.vm.provider :virtualbox do |lv|
lv.memory=2048
lv.cpu=1
end
end
# controller-02
config.vm.define "controller-02" do |controller02|
controller02.vm.box = "generic/ubuntu2004"
controller02.vm.hostname="controller-02"
controller02.vm.network "private_network", ip: "10.240.10.5"
controller02.vm.provider :virtualbox do |lv|
lv.memory=2048
lv.cpu=1
end
end
# controller-03
config.vm.define "controller-03" do |controller03|
controller03.vm.box = "generic/ubuntu2004"
controller03.vm.hostname="controller-03"
controller03.vm.network "private_network", ip: "10.240.10.6"
controller03.vm.provider :virtualbox do |lv|
lv.memory=2048
lv.cpu=1
end
end
# worker-01
config.vm.define "worker-01" do |worker01|
worker01.vm.box = "generic/ubuntu2004"
worker01.vm.hostname="worker-01"
worker01.vm.network "private_network", ip: "10.240.10.7"
worker01.vm.provider :virtualbox do |lv|
lv.memory=4096
lv.cpu=2
end
end
# worker-02
config.vm.define "worker-02" do |worker02|
worker02.vm.box = "generic/ubuntu2004"
worker02.vm.hostname="worker-02"
worker02.vm.network "private_network", ip: "10.240.10.8"
worker02.vm.provider :virtualbox do |lv|
lv.memory=4096
lv.cpu=2
end
end
# worker-03
config.vm.define "worker-03" do |worker03|
worker03.vm.box = "generic/ubuntu2004"
worker03.vm.hostname="worker-03"
worker03.vm.network "private_network", ip: "10.240.10.9"
worker03.vm.provider :virtualbox do |lv|
lv.memory=4096
lv.cpu=2
end
end
end
Daha sonra oluşturduğumuz dosyanın bulunduğu dizinde vagrant up komutunu çalştırıyoruz.
UYARI: Kurulum yapılırken ekranda aşağıdaki gibi bir hata alacak olursanız ve ekranda takılı kaldıysa bir kaç kez enter'a basınız. Şifre girebileceğiniz alan açılacaktır.
This operation requires administrative access. You may skip it by manually adding equivalent entries to the hosts file.
Kurulum tamamlandıktan sonra aynı klasörde iken vagrant ssh controller-02 komutunu çalıştırarak makinamıza ssh yapabiliriz. Ssh bağlantımızdan sonra diğer makinara ping atarak test edebilirsiniz. Bütün makinlarda bu şekilde test yapıp birbirlerine ping atabildiğimizden amin olmalıyız.
Kubernetes kurulumlarında da bütün makinalara bu klasörden bu şekilde ssh yapabilirsiniz.
Makinaların tamamını kapatmak için vagrant halt tamamen silmek için vagrant destroy komutunu kullnabilirsiniz.
- Giriş ve Lab Ortamının Kurulması
- İstemci Araçlarının Kurulumu
- Harici Yük Dengeleyici Kurulumu
- Certificate Authority ve TLS Sertifikalarının Oluşturulması
- Kubeconfig Dosyalarının Oluşturulması
- Data Encryption Config ve Key Oluşturulması
- Etcd Cluster Kurulumu
- Control Plane'nin Kurulumu ve Konfigürasyonu
- Worker Node'ların Kurulumu ve Konfigürasyonu
- Uzak Bağlantı için Kubectl Konfigürasyonu
- Pod Network Route'larının Ayarlanması
- DNS'in Kurulumu ve Konfigürasyonu
- Smoke Test