Zor Yoldan Kubernetes Kurulumu— 6 (Kurulum İçin Gerekli Araçların Host Makinasına Kurulumu)

Murat Çabuk
3 min readDec 25, 2021

CFSSL Kurulumu

Kubernetes’de makinalar, bileşenler ve pod’lar arasındaki iletişimde TLS kullanılmaktadır. Bu nedenle bol miktarda sertifika oluşturacağız.

Kaynak: Kubernetes Architecture by Lucas Käldström.

PKI Altyapısını sağlamak ve TLS sertifikaları oluşturmak için cfssl ve cfssljson komut satırı yardımcı programları kullanılacaktır. Tabii ki cfssl’den başka araçlar da kullanılabilir. Örneğin

Farklı araçlarla sertifika olurmak için şu sayfayı ziyaret etmenizi öneririm.

Son olarak eğer TLS hakkında yetersiz olduğunu düşünüyorsanız Gökhan Şengün’ün “Pratik Kriptogafi ve Güvenlik Konseptleri” başlıklı sunumunu izlemenizi kesinlikle tavsiye ederim.

Artık kuruluma başlayabiliriz.

Linux ve Mac için

mkdir ~/kubernetes && cd ~/kubernetes

wget -q --show-progress --https-only --timestamping \
https://storage.googleapis.com/kubernetes-the-hard-way/cfssl/1.4.1/linux/cfssl \
https://storage.googleapis.com/kubernetes-the-hard-way/cfssl/1.4.1/linux/cfssljson


chmod +x cfssl cfssljson
sudo mv cfssl cfssljson /usr/local/bin/

Windows İçin

Resmi sayfasındaki release’lerden 1.2 versiyonuna ait cfssl_windows-amd64.exe ve cfssljson_windows-amd64.exe dosyalarını indirmelisiniz. Tavsiyem userprofile dizininizde kubenetes adında bir klasör oluşturup oraya indirmeniz.

Diğer bir tavsiyem de Windows’u sadece kubectl için kullanmanız gerekiyor kalan bütün kurulum ve konfigürasyon işleri için Lab ortamında oluşturduğumuz load balancer makinalarından birini kullanmaları olacak. Sertifika, config dosyalarını oluşturma ve dağıtma işleri dışında zaten host makinalarında bir iş yapmayacağız. İşlemlerimizin çoğu Linux ortamında olacağı için Windows-Linux iletişiminde yaşanacak problemlerle uğraşmamış olursunuz.

Kurulumu doğrulamak için alttaki komutla versiyon kontrolü yapıyoruz.

cfssl version

Version: 1.2.0 # version siz kurduğunuzda değişmiş olabilir
Revision: dev
Runtime: go1.15.4

Kubectl Kurulumu

Ubuntu ve Centos için alttaki komutlarla yapabilirsiniz.

wget https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kubectl
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

Eğer paket yöneticisi ile kurmak isterseniz

Ubuntu için kurulum

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.listsudo apt-get updatesudo apt-get install -y kubectl=1.21

Centos için kurulum

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubectl-1.21

Mac için kurulum

brew install kubectl@1.21

kubectl version --client

Windows için kurulum

Kendi belirlediğiniz bir klasörde aşağıdaki script’le yada tarayıcı ile download edebilirsiniz.

curl -LO https://dl.k8s.io/release/v1.21.0/bin/windows/amd64/kubectl.exe

kubectl’i indirdiğiniz dizinde iken aşağıdaki komutu çalıştırarak test edebilirsiniz.

kubectl version --client

Eğer bütün dizinlerden kubectl i çalıştırmak istiyorsanız PATH’ e eklemek gerekiyor. Alttaki komutla bunu da yapabilirsiniz. CMD’yi administrator olarak açıp alttaki komutu çalıştırınız.

setx PATH "C:\kubectl_in_oldugu_dizin;%PATH%"

CMD yi kapatıp tekrar açtıktan sonra alttaki komutla test ediniz.

C:\>echo %PATH%

Bu işlemi GUI olarak da yapmak mümkün Google’da komu ile ilgili birçok kaynak bulabileceğiniz için buraya resimleri ekleyerek yazıyı uzatmak istemedim.

Kurulumu doğrulama için versiyon kontrolü yapıyoruz.

UYARI: İleride yapacağımız işlemlerde sorun yaşamamak için versiyonun 1.21 olduğundan emin olunuz.

kubectl version# sonuçClient Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port?

Originally published at https://github.com.

--

--