Bu dokümanda, Amazon EKS (Elastic Kubernetes Service) üzerinde Apinizer kurulumu için gerekli adımlar anlatılmaktadır. İlk 6 bölümde, en baştan başlayarak adım adım AWS EKS kurulumu, kaynaklarının oluşturulması ve kullanılması adımları anlatılmaktadır. Eğer AWS üzerinde hazır bir EKS cluster’ı varsa doğrudan 7. bölümden başlanılabilir.
1. Giriş
Minimum Sistem Gereksinimi
AWS EKS Cluster’a Apinizer kurulumu için, Node Group içinde tanımlanacak Compute Node’ların toplam CPU Core’ları en az 6 core olmalıdır.t3.medium Örneği
t3.medium tipinde sunucu seçildiyse 3 tane olması gerekir.
t3.xlarge Örneği
t3.xlarge tipinde sunucu eklerseniz 2 tane yeterli olacaktır.
AWS EKS (Elastic Kubernetes Service) Nedir?
Amazon Elastic Kubernetes Service (Amazon EKS), kendi Kubernetes Control Plane (Master) veya node’larınızı (Worker Nodes) kurmanıza, çalıştırmanıza ve bakımını yapmanıza gerek kalmadan Kubernetes’i AWS’de çalıştırmak için kullanabileceğiniz yönetilen bir hizmettir. Kubernetes, kapsayıcılı uygulamaların dağıtımını, ölçeklenmesini ve yönetimini otomatikleştirmek için açık kaynaklı bir sistemdir.
2. EKS VPC ve Subnetleri Yapılandırın
AWS VPC ve Subnet Nedir?
Amazon AWS VPC (Virtual Private Cloud), AWS içinde yer alan bir özel bir sanal ağdır. Başka bir ifade ile, AWS’in network alt yapı bileşeni denilebilir. AWS üzerinde oluşturulacak tüm bileşenlerin birbirleri ile iletişim sağlamaları için Amazon AWS tarafından geliştirilmiş gelişmiş bir sanal ağ altyapısıdır. VPC içinde kendi kullanımımıza özel network’ler, subnetler, gateway’ler oluşturabilir. Bunlara ait Route tabloları ile kullanım farklı network’ler ve subnet aralarındaki bağlantılar sağlanabilir.

AWS VPC Oluşturma ve Yapılandırma
Aşağıdaki adımları takip ettiğinizde EKS için uygun olan network yapısı otomatik olarak kurulacaktır. Detaylar için: AWS CloudFormation Console
3. EKS IAM Rolleri Yapılandırma
AWS Identity and Access Management (IAM) Role Nedir?
AWS Identity and Access Management’ı (IAM) kullanarak, AWS hizmetlerine ve kaynaklarına kimlerin hangi koşullarda erişebileceğini belirleyebilirsiniz. IAM, AWS hesabınızın bir özelliğidir ve ek ücret olmadan sunulur. IAM yapısı itibariyle bir instance, bir veri tabanı gibi çalışan bir şey değil tamamıyla yetkileri bizler için yöneten kimin hangi servise ne tür bir şekilde erişebileceğinden, kullanılan AWS hesabına erişimi olan bütün kullanıcıları yönetebilmektedir. IAM ana konsept itibariyle 6 ana başlığı kendi içerisinde yönetmektedir:- Kullanıcılar
- Gruplar
- Roller
- IAM Access Policies
- API Keys
- Password policy, MFA

Detaylı bilgi için: AWS IAM Nedir?
AWS IAM Oluşturma ve Yapılandırma
Sol menüden Roles sayfasına giderek yeni Role oluşturulur.
1. EKS Cluster’ın Kullanacağı Rolü Oluşturma
Rol oluşturmak için sırasıyla verilen görsellerdeki işlemler gerçekleştirilmelidir.




2. EKS Cluster Worker Node Group’ların Kullanacağı Rolü Oluşturma



4. EKS Master Node Kurulumu
AWS EKS (Elastic Kubernetes Service) Oluşturma ve Yapılandırma
Yukarıdaki adımları tamamladıktan sonra, AWS EKS kurulumuna başlanılabilir. Arama bölümüne EKS yazarak sürece devam edilir.

1
Kümeyi yapılandırma
Cluster adı, Kubernetes versiyonu ve IAM rolü seçilir.

2
Ağ iletişimini belirtme
VPC ve subnet’ler seçilir. EKS için en az 2 subnet seçilmesi önerilir.





3
Günlüğe kaydetmeyi yapılandırma
CloudWatch Log Group seçilir veya yeni bir log group oluşturulur. Bu bölüm, isteğe uygun şekilde yapılandırılabilir.

4
İncele ve oluştur
Son olarak tanımlanan bilgilerin görülmektedir. Bu aşamada bir yanlışlık görülmemektedir. Create diyerek cluster oluşturmaya başlanır.



EKS Cluster’ı oluşturmaktadır. Bu işlem tahmini 5 dakika sürüyor. Bu işlem devam ederken, Client bilgisayarımızdan EKS’ya erişip yönetebilmemiz gerekli araçlarını indirerek yapılandırabilinir.
5. AWS CLI ve kubectl’i Kurma ve Yapılandırma
Aşağıdaki adreslerden gerekli olan araçları indirin. Bu dökümanda Client bilgisayar olarak Windows kullanılacağı için Windows’a uygun olan versiyonlar indirilmektedir.AWS CLI Kurulumu
İndirilen .msi uzantılı aracı kurduktan sonra, aşağıdaki gibi Cluster bilgilerinize uygun olarak yapılandırılır. Detaylar için: AWS CLI Getting Started Guide1
IAM service'e giderek Credential bilgilerini alma
IAM Console’dan Access Key ve Secret Key bilgileri alınır.
Gelen ekrandan Manage access keys butonuna tıklayarak Access bilgilerine gidilir.

Aşağıdaki gelen pencerede Access Key ve Secret bilgileri görülür. Pencereyi kapatmadan önce bu bilgiler bir yere kayıt edilmelidir.




2
Windows CLI'da AWS konfigürasyonu yapma

KUBECTL Kurulumu
Kubectl, cluster versiyonu ile aynı olacak şekilde indirilmelidir. Detaylar için: AWS EKS kubectl Installation Guide1
KUBECTL'i indirme
Kubectl Windows için indirilir ve PATH’e eklenir.
2
Windows client makinesinde EKS Cluster'a bağlanmak için gerekli bilgileri tanımlama
Bize gerekli olan eu-central-1 olan bölümdür.


6. EKS Worker Node’ları Oluşturma
Bu bölümde, EKS için Worker Node’ların oluşturulması anlatılmaktadır. Tekrardan AWS Console’a giderek aşağıdaki adımlar uygulanmalıdır.1
Node Group Oluşturma
EKS Console’dan “Add Node Group” seçeneği ile yeni bir node group oluşturulur.

2
Node Group Yapılandırma
Node group için:

- Node group adı
- IAM rolü (daha önce oluşturulan worker node rolü)
- Instance type (örn: t3.medium, t3.xlarge)
- Disk boyutu


3
Hesaplama ve Ölçeklendirme Yapılandırmasını Ayarlama
Node group için minimum, maksimum ve desired node sayıları belirlenir.



4
Ağ İletişimini Belirtme
Subnet’ler seçilir ve SSH key pair belirlenir.

5
İncele ve Oluştur
Son olarak tanımlanan bilgilerin görülmektedir. Bu aşamada bir yanlışlık görülmüyorsa Create diyerek cluster oluşturmaya başlanır.





7. EKS Kurulumu Test ve Örnek Deployment
Bu aşamadan, daha önce kurulumunu ve tanımlamalarını yapılan kubectl ile kubernetes cluster’ı kontrol edip ve örnek bir nginx uygulaması ile test edilmesi anlatılmaktadır.AWS EKS Ortam Test
Aşağıdaki komutları takip ederek kubernetes cluster kaynakları kontrol edilmelidir.
Örnek Uygulama Yükleme ve Test Etme
Bu bölümde, örnek olarak aşağıdaki .yaml dosyasında tanımlanmış olan Nginx uygulaması, kubernetes cluster’ına yüklenmesi anlatılmaktadır ve expose edildikten sonra test edilmektedir.8. EKS’ye Apinizer’ın Kurulumu
Bu başlık altında anlatılanlar Apinizer kurulum dokümanlarından farklı olarak Apinizer’ı servis olarak açmanın tanımını anlatmaktadır.Apinizer Yönetim Konsolu kurulumu
Apinizer için .yaml dosyası oluşturulup AWS EKS cluster’ına yüklenmelidir. Kurulum ve Konfigürasyon dokümanına belirtildiği gibi Replicaset MongoDB ve Elasticsearch’e ihtiyaç vardır.- MongoDB için MongoDB Atlas adresine giderek bir hesap oluşturun ve kısıtlı bir DB boyutuna kadar ücretsiz olarak kullanılabilir. Apinizer MongoDB’de sadece konfigürasyon tanımlarını tuttuğu için büyük boyutlu bir veritabanına ihtiyacı yoktur.
- Benzer şekilde Elasticsearch içinde Elastic Cloud adresine giderek cloud ortamında bir elastic servisi kullanarak Apinizer tanımlanabilir.
Apinizer Yönetim Konsolu için Erişim Servisi Oluşturma
Kurulum tamamlandıktan sonra Apinizer Yönetim Konsolu’na erişim için bir servis gerekmektedir. Aşağıdaki adımlar takip ederek bir servis oluşturulur. Dış IP alımında bazen bir iki dakika geçmesi gerekebilir.Apinizer Yönetim Konsolu Giriş
Adım 2’deki servis erişim adresi, tarayıcının adres çubuğuna yazılarak giriş yapılır. Default kullanıcı adı şifre için Apinizer destek ekibine ulaşabilirsiniz.
9. Apinizer Konfigurasyonları
Log Sunucularının Tanımlanması
Apinizer, API trafiğini ve metrik bilgilerini, Elasticsearch veri tabanında tutar. Kurulum işlemine devam edebilmek için Elasticsearch cluster tanımlarının yapılması gerekmektedir. Apinizer Yönetim Konsolu uygulamasında menüden Administration → Server Management → Elasticsearch Kümeleri sayfasına gidilir. Elasticsearch cluster tanımlama ayarlarını içeren görsele aşağıda yer verilmiştir:

Ortam (Environment) Tanımlama
Bir API Proxy’nin erişilebilir olması için en az bir ortamın yüklenmesi (deploy) gerekmektedir. Apinizer, bir API Proxy’nin birden fazla ortama yüklenmesine de izin verir. Apinizer Yönetim Konsolu uygulamasında menüden Administration → Server Management → Gateway Environment sayfasına gidilir. Ortam tanımlama ayarlarını içeren görsele aşağıda yer verilmiştir:


Ortamı yükleme işlemi tahminen 3 dakika içinde EKS’ya yüklenmiş olacaktır.
Gateway Runtime ortamı tanımlama ve yayın işlemleri ile ilgili detaylı bilgi almak için Gateway Runtime’ları sayfasına bakınız.
Ortamı (Environment) Servis Olarak Açma
Son olarak yayınladığımız Ortamda çalışacak API’lere erişmek için bir servis oluşturulması gerekiyor.

10. Apinizer’da İlk API’yi Yayınlama ve Test Etme
En son adımda örnek bir API tanım dosyası üzerinden Apinizer’a bir API’yi API Proxy olarak açılması anlatılmaktadır. API Proxy’nin kayıt edileceği proje, navbar menüsünden seçilir.








API Proxy ile ilgili detaylı bilgi için Geliştirici Kılavuzuna (Developer Guide) bakınız.Test Konsoluyla ilgili detaylı bilgi almak için Test Console sayfasına bakınız.

