KOPS ile GCP üzerinde kubernetes cluster kurmak

H. Alperen Selcuk
5 min readJun 7, 2022

kops ile kubernetes cluster install edeceğiz.

kops normalde AWS için yapılmış, kubernetes provision etmek için kullanıyor. offical olarak AWS desteği mevcut.

bunun dışında,

beta sürümünde digitalocean ve openstack,
alpha sürümünde iste google cloud ve azure destekliyor. bu yazımda google cloud üzerine kubernetes provision edeceğiz.

Pre-Req

öncelikle indirmemiz gerekenler Kops, gcloud/gsutils ve kubectl.

kops için alpha sürümünü github sayfasından bulup indireceğiz.

gcloud için google officall page den işletim sisteminize göre bulup inderebilirsiniz. gsutils de yanında yüklenecektir.

kubectl için yine işletim sisteminiz için doğru olanı bulup indirebilirsiniz.

GOOGLE

öncelikle google sdk ile auth olmamız gerekiyor.

gcloud auth application-default login

komutu çalıştırdıktan sonra browserdan google üyeliğinizi seçip auth olabilirsiniz.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

google size 300$ lık bir free tier sağlar ve 3 ay boyunca yüm servicelere ücretdiz erişebilirsiniz.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

kops terraform gibi bir state reposu ihtiyaç duyuyor bunun için google cloud storage de bir bucket açacağız. bucket name uniqe olması gerekiyor.

gsutil mb -l europe-north1 gs://my-kops-clusters/#gs ismi uniqe olmalı o yüzden sonuna sayı da ekleyebilirsiniz.

state dosyasını bir variable ile bildireceğiz. bunu bashrc ye de ekleyebilirsiniz.

bunun dışından google projenizde Compute Engine API, Cloud Resource Manager API ve Identity and Access Management (IAM) API leri enable olması gerekmektedir.

KOPS

kops ile cluster kurmadan önce hangi proje oldugunu ve GCE ye kuracağımız için google feature ını aktif edeceğiz.

PROJECT=`gcloud config get-value project` 
export KOPS_STATE_STORE=gs://my-kops-clusters/

tüm variable ları girdikten sonra

cluster kurma işlemine geçiyoruz.

kops create cluster simple.k8s.local --zones europe-north1-a --state ${KOPS_STATE_STORE}/ --project=${PROJECT}

kops default olarak belirttiğimiz zone a 1 master kuruyor ve 1 tane de worker kuruyor.

!! eğer multi master ve multi worker bir yapı kuracaksanız aşağıdaki komutu kullanabilirsiniz.

kops create cluster cka.k8s.local --node-count 3 --zones europe-west2-b --master-count 3 --state ${KOPS_STATE_STORE}/ --project=${PROJECT}

komutu girdiğimizde hem master hem de worker için instance group oluşturmakta

kops get instancegroup --state ${KOPS_STATE_STORE}/ --name simple.k8s.local

cluster a baktığımızda ise bir tane görünüyor.

kops get cluster

fakat burada aslında ilk adımda cluster oluşmuyor clusterın confiğini ve çalışacak infra oluşuyor, o confiğe de şu şekilde bakabiliriz.

kops get cluster --state ${KOPS_STATE_STORE}/ simple.k8s.local -oyaml

burada oluşacak clusterın yaml formatında confiğini görebilirsiniz.

aynı dosyalara state için create ettiğimiz bucket üzerinden de ulaşabilirsiniz.

KUBERNETS CLUSTER

kops configleri oluştuktan sonra update komutuyla clusterı kuracağız.

kops update cluster simple.k8s.local --state ${KOPS_STATE_STORE} --yes --admin

ardından 10 dakikalık bir bekleyiş sonrası kubernetes clusterımızı validate etmemiz gerekiyor.

öncelikle kubeconfig i çekelim not-authorized hatası alabiliriz.

kops export kubecfg simple.k8s.local --admin

daha sonra validate edeceğiz.

kops validate cluster --state ${KOPS_STATE_STORE}

komutu ile validate edeceğiz. validate ettikten sonra otomatik olarak .kube/config dosyasına kubernetes bilgileri yollayacak.

kops kurulumu google cloud üzerinde bize gereken ne varsa bütün resourceları oluşturarak cluster oluşturuyor.

KUBERNETES API

eğer kubernetes cluster detayına bakarsanız master node ile kubernetes control plane IP sinin farklı olduğunu görürsünüz.

kops un bir güzelliği daha size google cloud üzerinde load balancer yaratması. yani istekler önce loadbalancer a daha sonra ordan kubernetes cluster a geliyor.

eğer multi master bir cluster yapınız varsa işlemlerinizi basitleştirmiş oluyor.

!! kubernetes kubeconfig belli bir duration var (18h) o yüzden üzerinden zaman geçtiği zaman tekrar kubeconfig file ı yani kubernetes sertifikasını yenilemek için

kops export kubecfg simple.k8s.local --admin

komutu çalıştırmamız yeterli.

MULTI-MASTER KUBERNETES

Kops default da 1 master 1 worker kurduğundan bahsetmiştik.

eğer multi master yani fazladan control plane istiyorsanız bunu ilk seferde belirtebilir ya da kurduktan sonra config üzerinde değiştirerecek “kops update cluster “ diyerek update edebilirsiniz.

normal ilk kurulumda yapmak için aşağıdaki komutu kullanabilirsiniz.

kops create cluster \
--node-count 3 \
--master-count 3 \
--zones europe-north1-a,europe-north1-b \
--master-zones europe-north1-a,europe-north1-b \
hacluster.k8s.local

kops genel itibariyle çok kullanışlı bir tool, cloud ortamına hardway kubernetes cluster install yapmak istediğinizde kolayca bunu yapabiliyorsunuz.

production önerileri için sitesini ziyaret edebilirsiniz.

ayrıca acloudguru kops için bir lab ortamı hazırlamış free tier üye olarak faydalanabilirsiniz.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response