Image for post
Image for post

VMware Cloud Director için Container Service Extension (Kubernetes-as-a-Service)

Container Service Extension (CSE) VMware Cloud Director müşterilerinizin kendi Organization vDC’leri üzerinde kendi Kubernetes kümelerini oluşturarak yönetebilmesini sağlayan VMware Cloud Director eklentisidir.

VMware Cloud Director ortamı üzerinde oluşturulan yerleşik (Native) Kubernetes şablonları ile kullanıcıların Kubernetes kümelerini vApps olarak dağıtabilmesine olanak sağlar. Ek olarak VMware Enterprise PKS ve NSX-T ile entegre edilerek müşterileriniz için enterprise-grade seviyede bir hizmet verebilmenize olanak tanır.

Böylece Cloud Director müşterileriniz için hem temel hemde kurumsal seviyede kolaylıkla Kubernetes-as-a-Service hizmeti verebilirsiniz.

Container Service Extension (CSE) üzerinde Cloud Director uzantısı olarak yüklenmiş REST API üzerinden konuşan bir eklentiye sahiptir. CSE ve VCD CLI üzerinden yönetilebilen bu kümeler Nisan 2020 içerisinde çıkartılmış olan CSE UI plugin for VCD ile Cloud Director müşterilerinizin Organization vDC GUI arayüzünden bir Plug-In eklentisi ile de Kubernetes kümelerini oluşturup yönetebilmelerine olanak sağlamaktadır.

Image for post
Image for post

Provider admin olarak (sysadmin yetkisi ile) CSE yapılandırma dosyası üzerinden CSE Server ve Kubernetes şablonlarının kurulumu yapılır. Daha sonra Organization vDC kullanıcıları Kubernetes kümelerini yönetebilmek için VCD CLI aracılığı ile Cluster, Worker Node ve Persistent Volume gibi yapılandırmaları sahip oldukları Organization vDC üzerinden yapabilirler.

Organization vDC üzerinde çalışan developer ekibi Kubectl ile Organization vDC üzerinden izole edilerek Kubernetes kümeleri üzerinde yetkilendirilebilir. Geliştiriciler için bir Cloud Director hesabına bile ihtiyaç yoktur geliştiriciler vDC ortamından tamamen izole olarak çalıştırılabilir.

Image for post
Image for post
Image for post
Image for post

Container Service Extension (CSE) ön gereksinimler;

NOT: CSE Server, CSE ve VCD Client için Centos 8 kullanmak zorunda değilsiniz diğer Linux dağıtımlarını da kullanabilirsiniz ama dağıtıma göre paket bağımlılıkları değiştiği için uygun ayarları yapmanız gerekebilir. (Örneğin Debian 10.3 en son Python 3.8.2 ile geldiğinden burada Python için ayrı bir efor harcamanıza gerek kalmıyor ama gerekli paketler sadece Python ile sınırlı değil)

Centos üzerinde Python, CSE CLI ve VCD CLI kurulumu;

# dnf groupinstall ‘development tools’

# dnf install -y zlib-devel gcc openssl-devel bzip2-devel libffi-devel expat-devel gdbm-devel ncurses-devel readline-devel sqlite-devel tk-devel xz-devel zlib-devel wget

# cd /usr/src

# wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz

# tar -xzf Python-3.8.2.tgz

# cd Python-3.8.2

# ./configure — enable-optimizations

# make altinstall

# python3.8 -V (versiyon doğrulamasını yapınız)

# pip3.8 -V (versiyon doğrulamasını yapınız)

# pip3.8 install — upgrade pip (Upgrade etmenizde fayda var)

# pip3.8 install virtualenv

# mkdir ~/CSE && cd ~/CSE

# python3.8 -m venv VCD

# source VCD/bin/activate

# python -V (versiyon doğrulamasını yapınız)

# pip -V (versiyon doğrulamasını yapınız)

# pip3.8 install — upgrade pip (Upgrade etmenizde fayda var)

Artık Container Service Extension (CSE) kurabiliriz

# pip install container-service-extension

# cse version

# vcd version

Image for post
Image for post

Upgrade için # pip install — upgrade container-service-extension komutunu kullanabilirsiniz.

VCD CLI kullanarak # vcd login vcdfqdn system administrator komutu ile Cloud Director sunucusuna bağlanıyoruz. Sonrasında Centos kullanıcı dizini üzerinde oluşmuş olan VCD-CLI klasörü içerisinde bulunan profiles.yaml dosyasını bir metin editörü ile açıp active: default ve profiles: satırlarının arasına aşağıdaki kodu ekliyoruz.

extensions:

- container_service_extension.client.cse

Artık CSE Server Cloud Director ile entegre olmaya hazır.

# cse sample -o config.yaml komutu ile ilgili konfigürasyon dosyasını oluşturup ve bir metin editörü ile kendi ortamınıza göre düzenleyiniz.

Image for post
Image for post

# ssh-keygen -t rsa -b 4096 -C “cse@vsphere.local” komutu ile bir Public Key oluşturunuz.

Kurulumdan önce # cse check config.yaml — check-install komutu ile yükleme doğrulama kontrolü yapabilirsiniz.

# cse install -c config.yaml — ssh-key ~/.ssh/id_rsa.pub komutu ile CSE Server kurulumunu başlatabilirsiniz. Yapılandırma dosyası AMQP, vCenter, Cloud Director ve Organization vDC ile gerekli bağlantı denetimlerini yapacak sonrasında AMQP sunucusu üzerinde yeni bir Exchange oluşturduktan sonra Kubernetes şablonlarını çekmek için GitHub üzerine bağlantı kuracak ve gerekli indirme işlemlerini yapacaktır.

# cse run — config config.yaml komutu ile CSE Server’ı başlatabilirsiniz.

Image for post
Image for post

NOT: /etc/systemd/system/cse.service üzerinde bir servis dosyası oluşturup Reboot sonrası CSE Server’ı otomatik olarak başlatabilirsiniz.

NOT: Şu an entegre etmiş olduğumuz Native Kubernetes CNI (Container Network Interface) olarak Weave kullanmaktadır. PKS Enterprise ile entegre ettiğinizde CNI olarak NSX Container Plugin (NCP) kullanabilirsiniz.

Gelelim CSE 2.6.0 ile çıkmış olan CSE UI plugin for VCD eklentisine, Cloud Director üzerinde Organization vDC’ler için bu Plug-in ile müşterileriniz kendi Kubernetes ortamlarını Native olarak Cloud Director Organization vDC arayüzü üzerinden oluşturabilirler. (Daha özelleştirilebilir ayarları için CSE CLI kullanmanız gerekebilir)

İlgili Plug-in dosyasını GitHub üzerinden indirebilirsiniz.

https://github.com/vmware/container-service-extension/raw/master/cse_ui

İndirmiş olduğunuz arşiv dosyasını Cloud Director üzerinde bulunan Customize Portal üzerinden ya da CSE Server üzerinden import edebilirsiniz.

Provider Admin olarak Import ettikten sonra ilgili müşterileriniz yetkilendirerek bu Plug-in paylaşabilirsiniz.

Image for post
Image for post

Daha sonra Organization vDC üzerinde Kubernetes ortamı için ilgili kaynak ayarlarını yapıyoruz.

Image for post
Image for post

Native Kubernetes Template’lerini seçtikten sonra kurulumu başlatmış oluyoruz.

Image for post
Image for post

Kurulum tamamlandıktan sonra Developer ekibi için gerekli olan kubeconfig dosyasını indirip kubectl ile Kubernetes kümesine erişebilirsiniz.

Image for post
Image for post

Son olarak CSE 2.6 yerleşik olarak Kubernetes, Weave ve Docker Engine güncellemelerini saniyelik kesintiler içerisinde yapabilir. Güncelleme işlemleri için tekrardan dağıtım yapmanıza gerek yoktur. CSE tarafından yapılan tüm konfigürasyonlar şifrelenebilir. Enterprise PKS ile entegre edildiği takdirde Master Node HA olarak deploy edilebilir.

Written by

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store