> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure AKS

> Microsoft AKS (Azure Kubernetes Service) üzerinde Apinizer kurulumunu ve yapılandırmasını sağlar. AKS cluster kurulumu, kaynaklarının oluşturulması ve Apinizer'ın AKS üzerinde kurulum adımlarını sunar. Harici MongoDB ve Elasticsearch sunucu yapılandırmalarını içerir.

<Note>
  İçeriğin ilk bölümlerimde, en baştan başlayarak adım adım; AKS kurulumu, kaynaklarının oluşturulması, kullanılması ve harici MongoDb ile ElasticSearch sunucusu adımları anlatılmaktadır.

  Eğer AKS üzerinde hazır bir küme (cluster) varsa doğrudan [5. adım olan AKS'ye Apinizer'ın Kurulumu](#aksye-apinizerın-kurulumu) bölümünden başlanılabilir.
</Note>

## 1. Giriş

### Microsoft AKS (Azure Kubernetes Service) Nedir?

Azure, mevcut uygulamaları barındırarak yeni uygulama geliştirme süreçlerini kolaylaştıran eksiksiz bir bulut platformudur.

Azure Kubernetes Service (AKS), kapsayıcılı uygulamaları çalıştırmak için önceden yapılandırılmış bir sanal makine kümesi oluşturma, yapılandırmayı ve yönetmeyi sağlar.

Bir AKS kümesini dağıttığınızda Master node'lar ve diğer tüm kubernetes node'ları sizin yerinize dağıtılır ve yapılandırılır.

## 2. AKS, AKS CLI ve kubectl Kurma ve Yapılandırma

### AKS Cluster Kurulumu

Azure kullanım kolaylığını hedef alan bir yapı içerdiğinden, eğer özel bir ayar istenmiyorsa varsayılan ayarlarla ilerleyerek rahatlıkla kurulum yapılabilir.

<Frame caption="AKS Cluster Oluşturma">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/01-aks-cluster-create.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=6fb77c6028269128596449d070336218" alt="AKS Cluster Oluşturma" width="800" data-path="images/setup/bulut/microsoft-aks/01-aks-cluster-create.png" />
</Frame>

Kubernetes cluster oluşturmak için aşağı görselde seçili olan linkler sırasıyla tıklanır.

<Frame caption="AKS Cluster Oluşturma Linkleri">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/02-aks-cluster-links.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=6dc5b98a663bbd7c5a7c8748d73d067d" alt="AKS Cluster Oluşturma Linkleri" width="800" data-path="images/setup/bulut/microsoft-aks/02-aks-cluster-links.png" />
</Frame>

Oluşturulacak kümeye (cluster) verilecek isim mevcut bir seçim yoksa yeni bir kaynak grubu (Resource group) oluşturulabilir.

Kubernetes sürümü olarak 1.18 veya 1.20 ana (major) tipi seçilebilir.

<Frame caption="AKS Cluster Yapılandırması">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/03-aks-cluster-config.jpg?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=353f4dbba060cf39a0e4211e3676b034" alt="AKS Cluster Yapılandırması" width="600" data-path="images/setup/bulut/microsoft-aks/03-aks-cluster-config.jpg" />
</Frame>

#### Node Havuzu Ekleme

Node Havuzu (Node Pool), küme içindeki node'larla ilgili ayarları içerir. Mevcut bir node tanımı seçebilir ya da yeni bir tanım oluşturulabilir.

<Frame caption="Node Havuzu Ekleme">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/04-node-pool.jpg?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=38fb8a7145be7b679b686bfa17c29e59" alt="Node Havuzu Ekleme" width="600" data-path="images/setup/bulut/microsoft-aks/04-node-pool.jpg" />
</Frame>

Node havuzuna verilecek isim ile birlikte seçilebilecek ayarları içeren ekran görüntüsü aşağıdadır:

<Frame caption="Node Havuzu Yapılandırması">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/05-node-pool-config.jpg?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=22be6ed365958617eb2a8c3c60f9492f" alt="Node Havuzu Yapılandırması" width="600" data-path="images/setup/bulut/microsoft-aks/05-node-pool-config.jpg" />
</Frame>

#### Kimlik Doğrulama Ayarları

Kimlik Doğrulama (Authentication) kısmında, kümenizi nasıl kısıtlamak istediğinizi ayarlayabilirsiniz.

<Frame caption="Kimlik Doğrulama Ayarları">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/06-authentication.jpg?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=d49b0504146b18c21f5bfd1ee2636e8c" alt="Kimlik Doğrulama Ayarları" width="600" data-path="images/setup/bulut/microsoft-aks/06-authentication.jpg" />
</Frame>

#### Ağ Oluşturma Ayarları

Ağ Oluşturma (Networking) sekmesi, ağ ayarlarını Kubenet'e mi Azure CNI'ya mı bırakacağınız, DNS isminizi hangi taslakta istediğiniz ve erişimle ilgili güvenlik ve ağ ayarlarını içerir.

<Frame caption="Ağ Oluşturma Ayarları">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/07-networking.jpg?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=8a99d150534cad7932b47449e1e2428a" alt="Ağ Oluşturma Ayarları" width="600" data-path="images/setup/bulut/microsoft-aks/07-networking.jpg" />
</Frame>

#### Entegrasyon Ayarları

Entegrasyon (Integrations) sekmesinde, Azure'un sağladığı bazı faydalı entegresyonlarla ilgili kararlarınız ayarlanır.

<Frame caption="Entegrasyon Ayarları">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/08-integrations.jpg?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=69ef45c99a69abdf432eefcd8d00dd97" alt="Entegrasyon Ayarları" width="600" data-path="images/setup/bulut/microsoft-aks/08-integrations.jpg" />
</Frame>

Son adımda, yaptığınız ayarlar bir denetim mekanizmasından geçer ve onayınıza sunulur.

<Frame caption="AKS Cluster İnceleme ve Onay">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/09-review.jpg?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=f993a1e053b7900623e8a625e69f97d6" alt="AKS Cluster İnceleme ve Onay" width="600" data-path="images/setup/bulut/microsoft-aks/09-review.jpg" />
</Frame>

İşlemi tamamladığınızda, aşağıdaki gibi bir ekranla karşılaşılır.

<Frame caption="AKS Cluster Hazır">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/10-cluster-ready.jpg?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=02c11d83c1ee65171ce4186f615ef43c" alt="AKS Cluster Hazır" width="1000" data-path="images/setup/bulut/microsoft-aks/10-cluster-ready.jpg" />
</Frame>

Kümenizi oluşturduktan sonra bilgisayarınıza kurulacak AKS CLI ve kubernetes ile ilgili sistem kontrol edilebilir.

## 3. AKS CLI Kurulumu

Azure CLI, Windows, MacOS ve Linux ortamlarında yüklenebilir. Ayrıca bir Docker kapsayıcısında çalıştırılabilir.

Azure CLI'nin işletim sistemine uygun sürümü şu adresten indirilerek kurulabilir: [Azure CLI Installation Guide](https://docs.microsoft.com/tr-tr/cli/azure/install-azure-cli)

Sonrasında aşağıdaki komut ve sonrasındaki işlemle birlikte bilgisayarınızdaki istemci hesabınıza bağlanır.

```bash theme={null}
az login
```

<Steps>
  <Step title="Azure CLI ile oturum açma">
    CLI varsayılan tarayıcınızı açabilir ve bir Azure oturum açma sayfası yükler.

    Aksi takdirde, bir tarayıcı sayfası açın ve şu linke gidin: [https://aka.ms/devicelogin](https://aka.ms/devicelogin). Terminalinizde görünen yetkilendirme kodunu girin.

    Web tarayıcısı yoksa veya Web tarayıcısı açılamazsa, **az login --use-device-code** komutuyla cihaz kod akışını kullanın.
  </Step>

  <Step title="Tarayıcıda oturum açma">
    Tarayıcıda hesabınızın kimlik bilgileriyle oturum açın.
  </Step>
</Steps>

Sonrasında Kubernetes komut satırı aracı kubectl'i indirmeli ve yüklenmelidir.

```bash theme={null}
az aks install-cli
```

Yönetilen bir Kubernetes kümesi için erişim kimlik bilgileri alınmalıdır.

Varsayılan olarak, kimlik bilgileri **.kube/config** dosyasında birleştirilir, bu nedenle kubectl bunları kullanabilir.

Yönetilen kümenin adı ve kaynak grubunun adını kullanarak varsayılan grubu yapılandırabilirsiniz:

```bash theme={null}
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
```

Erişimin doğru şekilde sağlanıp sağlanmadığı aşağıdaki komutla kontrol edilir.

```bash theme={null}
kubectl get nodes
```

## 4. Cloud MongoDb ve ElasticSearch Kurma ve Ayarlama

Kurulum ve Konfigürasyon dokümanında belirtildiği gibi **Replicaset MongoDB** ve **Elasticsearch**'e ihtiyaç vardır. Bunlar herhangi bir sanal sunucuya kurabileceğini gibi cloud olarak da kullanabilir ya da mevcut olarak zaten var ise bir sonraki adıma geçilebilir.

Bu bölümde uygulamaların kendi ortamlarındaki cloud sistemler kullanılmıştır.

* MongoDB için [MongoDB Atlas](https://account.mongodb.com/account/register) 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.

* Elasticsearch için [Elastic Cloud](https://cloud.elastic.co/registration) adresi üzerinden **cloud** ortamında bir **elastic servisi** kullanarak Apinizer tanımlanabilir.

### MongoDB Cloud Ayarları

MongoDB'nin kendi sitesinden bir hesap oluşturduktan sonra istenilen isimde bir veritabanı oluşturup, bununla ilgili ayarların düzenlenmesi gerekiyor.

Erişim izni için **Ağ Erişimi (Network Access)** menüsünden **Add IP Address** butonuna tıklanır.

<Frame caption="MongoDB Ağ Erişimi">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/11-mongodb-network-access.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=235be6bca170984c4b6f9d8c5a4ffa74" alt="MongoDB Ağ Erişimi" width="800" data-path="images/setup/bulut/microsoft-aks/11-mongodb-network-access.png" />
</Frame>

Ardından istenilen ip'ler ya da aşağı görselde seçili olan **Allow Access From Anywhere** seçeneği gibi her yerden erişimi açık olacak şekilde alanlar doldurulur.

<Frame caption="MongoDB IP Erişim İzni">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/12-mongodb-allow-access.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=58a0f57a0591c57024bb259542657bc3" alt="MongoDB IP Erişim İzni" width="600" data-path="images/setup/bulut/microsoft-aks/12-mongodb-allow-access.png" />
</Frame>

### MongoDB connection string alma:

Oluşturulan veri tabanına olan bağlantıyı sağlayacak **bağlantı ifadesini (Connection String)** almak için **Veritabanları (Databases)** sayfasında dönüp ve **Bağlan (Connect)** linkine basılır.

Buradan kendiniz herhangi bir MongoDb veritabanı düzenleyicisine bağlanmak için gerekli bilgiyi alabilir ya da Apinizer uygulamasını bağlamak için **Uygulamanızı Bağlayın (Connect your application)** tuşuna basılabilir.

<Frame caption="MongoDB Bağlantı Ayarları">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/13-mongodb-connect.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=57308c51831b52fa0ed68bdeb61fa0f7" alt="MongoDB Bağlantı Ayarları" width="1000" data-path="images/setup/bulut/microsoft-aks/13-mongodb-connect.png" />
</Frame>

Açılan ekranda **Sürücü (Driver)** olarak Java'yı, **Sürüm (Version)** olarak da **"3.4"** veya daha üstü bir seçim yapıldığında ekranın alttında bir yazı belirir.

<Frame caption="MongoDB Connection String">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/14-mongodb-connection-string.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=8574bed6afa0e0e92037ab4043c63977" alt="MongoDB Connection String" width="600" data-path="images/setup/bulut/microsoft-aks/14-mongodb-connection-string.png" />
</Frame>

Bu yazı, daha sonraki bölümlerde **apinizer-deployment.yaml** dosyasına yazarak Apinizer'ı MongoDB'ye bağlayacağınız bağlantı tanımıdır.

## 5. AKS'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 AKS cluster'ına yüklenmelidir.

Örnek bir **apinizer-deployment.yaml** dosyası ayarları aşağıdadır:

```yaml theme={null}
apiVersion: v1
kind: Namespace
metadata:
  name: apinizer
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: manager
  namespace: apinizer
spec:
  replicas: 1
  selector:
    matchLabels:
      app: manager
      version: 'v1'
  template:
    metadata:
      labels:
        app: manager
        version: 'v1'
    spec:
      containers:
      - name: manager
        image: apinizercloud/manager:2023.01.1
        imagePullPolicy: IfNotPresent
        env:
        - name: SPRING_PROFILES_ACTIVE
          value: prod
        - name: SPRING_DATA_MONGODB_DATABASE
          value: apinizerdb-aws
        - name: SPRING_DATA_MONGODB_URI
          value: 'mongodb://apinizer:<PASSWORD>@apinizercluster-shard-00-00.wp2bb.mongodb.net:25080,apinizercluster-shard-00-01.wp2bb.mongodb.net:25080,apinizercluster-shard-00-02.wp2bb.mongodb.net:25080/ApinizerDb?ssl=true&replicaSet=atlas-dvz21z-shard-0&authSource=admin&retryWrites=true&w=majority'
        - name: JAVA_OPTS
          value: ' -Xmx1400m -Xms1400m'
        resources:
          requests:
            memory: '2Gi'
            cpu: '1'
          limits:
            memory: '2Gi'
            cpu: '1'
        ports:
        - name: http
          containerPort: 8080
```

```powershell theme={null}
kubectl apply -f apinizer-deployment.yaml
kubectl get pods -n apinizer
```

Apinizer Yönetim Konsolu AKS ortamına yüklendikten sonra, MongoDB veritabanına **apinizerdb** isminde bir veritabanı oluşacaktır. **general\_settings** tablosuna Apinizer tarafından size verilen lisans anahtarı girilmelidir.

Apinizer Yönetim Konsolu üzerinden Kubernetes kaynaklarına erişim ve yönetim için aşağıdaki izinlerin tanımlanması yapılmalıdır.

Örnek bir **service.yaml** dosyası ayarları aşağıdadır:

```yaml theme={null}
apiVersion: v1
kind: Namespace
metadata:
  name: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
```

Örnek bir **adminuser.yaml** dosyası ayarları aşağıdadır:

```yaml theme={null}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system
```

```powershell theme={null}
kubectl apply -f service.yaml
kubectl apply -f adminuser.yaml
kubectl create clusterrolebinding permissive-binding --clusterrole=cluster-admin --user=admin --user=kubelet --group=system:serviceaccounts
kubectl create clusterrolebinding apinizer -n kube-system --clusterrole=cluster-admin --serviceaccount=kube-system:apinizer
```

### 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 edilerek bir servis oluşturulur. Dış IP alımında bazen bir iki dakika geçmesi gerekebilir.

```powershell theme={null}
kubectl expose -n apinizer deployment.apps/manager --port=80 --target-port=8080 --name=apinizer-console-service --type=LoadBalancer
kubectl get svc -n apinizer
```

## 6. Apinizer Yönetim Konsolu Giriş

Adım 2'deki servis erişim adresini, tarayıcının adres çubuğuna yazarak giriş yapılır.

Default kullanıcı adı şifre için Apinizer destek ekibine ulaşabilirsiniz.

Bu ayarlara göre oluşan Apinizer Yönetim Konsolu Adresi: `http://<EXTERNAL-IP>/`

<Frame caption="Apinizer Yönetim Konsolu Giriş">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/15-apinizer-console-login.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=df8d7e6d617955057f292c230ff0cc50" alt="Apinizer Yönetim Konsolu Giriş" width="600" data-path="images/setup/bulut/microsoft-aks/15-apinizer-console-login.png" />
</Frame>

## 7. 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:**

<Frame caption="Elasticsearch Cluster Tanımlama">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/16-elasticsearch-cluster.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=bb564f7f5ca6b7fb83aee1b5714431ab" alt="Elasticsearch Cluster Tanımlama" width="800" data-path="images/setup/bulut/microsoft-aks/16-elasticsearch-cluster.png" />
</Frame>

Elasticsearch sunucu bağlantısını, Apinizer ile test etmek için **Test Connection** butonu kullanılabilir.

<Frame caption="Elasticsearch Bağlantı Testi">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/17-elasticsearch-test.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=10330e8cc3683bcd97c0111a6b1b7742" alt="Elasticsearch Bağlantı Testi" width="600" data-path="images/setup/bulut/microsoft-aks/17-elasticsearch-test.png" />
</Frame>

### 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:**

<Frame caption="Ortam Tanımlama">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/18-environment-create.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=09d0aeb4be27b3b6beaf34df5cd19350" alt="Ortam Tanımlama" width="800" data-path="images/setup/bulut/microsoft-aks/18-environment-create.png" />
</Frame>

Aşağıdaki değerler sunucuların varsayılan değerleridir. Cluster kaynaklarınıza uygun olarak değiştirebilir.

<Frame caption="Ortam Yapılandırması">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/19-environment-config.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=63a4cf4494bd514df65683648fa38d94" alt="Ortam Yapılandırması" width="800" data-path="images/setup/bulut/microsoft-aks/19-environment-config.png" />
</Frame>

**Create Environment** butonuna tıklanarak ortam tanımlama işlemi tamamlanır.

Ortamların listelendiğinde ekranda ilgili ortamın durumunu gösteren **Unpublished** butonuna tıklanarak **Prod** tipindeki ortam AKS'ye deploy edilmektedir.

<Frame caption="Ortam Yayınlama">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/20-environment-publish.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=78bec82af23f0b80b88488adcf4fabf9" alt="Ortam Yayınlama" width="600" data-path="images/setup/bulut/microsoft-aks/20-environment-publish.png" />
</Frame>

Ortamı yükleme işlemi tahminen 3 dakika içinde AKS'ya yüklenmiş olacaktır.

Ortam tanımlama ve yayın işlemleri ile ilgili detaylı bilgi almak için [Environment dokümantasyonuna](/tr/concepts/temel-kavramlar/ortam-nedir.mdx) 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.

```powershell theme={null}
kubectl expose -n prod deployment.apps/worker --port=80 --target-port=8091 --name=apinizer-worker-service --type=LoadBalancer
kubectl get svc -n prod
```

AKS tarafından üretilen **LoadBalancer (EXTERNAL-IP)** değerini, tanımlanan **Prod** ortamının **Access URL** değeri olarak atanmalıdır.

İlk olarak, ortamın düzenlendiği sayfanın **Environment Info** tablosundaki düzenleme butonuna tıklanır.

<Frame caption="Ortam Düzenleme">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/21-environment-edit.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=1075b99c9d1777ad1543c007e82f16a0" alt="Ortam Düzenleme" width="1000" data-path="images/setup/bulut/microsoft-aks/21-environment-edit.png" />
</Frame>

Sonrasında edit tuşuna tıklanarak ortamın Access URL bilgisi değiştirilir.

<Frame caption="Ortam Access URL">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/22-environment-access-url.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=b983b960a61ba07a90ade7b569d3e300" alt="Ortam Access URL" width="400" data-path="images/setup/bulut/microsoft-aks/22-environment-access-url.png" />
</Frame>

## 8. 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.

<Frame caption="API Proxy Proje Seçimi">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/23-api-proxy-project.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=712a2a8f9c6d75e525b1420676ef41eb" alt="API Proxy Proje Seçimi" width="600" data-path="images/setup/bulut/microsoft-aks/23-api-proxy-project.png" />
</Frame>

Apinizer Yönetim Konsolu uygulamasındaki proje menüsündenden **Development → API Proxies** sayfasına gidilir.

Yeni API Proxy tanımlamak için **Proxy** butonuna tıklanır.

<Frame caption="API Proxies Sayfası">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/24-api-proxies.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=30d2ec41aedf7f29ba73bae8902f6c3d" alt="API Proxies Sayfası" width="200" data-path="images/setup/bulut/microsoft-aks/24-api-proxies.png" />
</Frame>

Aşağıdaki görselde seçili link ile API Proxy'nin nereden oluşturulacağı kaynağı seçilir.

<Frame caption="API Kaynak Seçimi">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/25-api-source.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=baf28b301078e65d3d20b1e8b05dc8e4" alt="API Kaynak Seçimi" width="1000" data-path="images/setup/bulut/microsoft-aks/25-api-source.png" />
</Frame>

API Tanım dosyasının linki girilerek **Parse** edilir.

<Frame caption="API Parse">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/26-api-parse.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=6f9dda2d548803dea9f5479d962e8cee" alt="API Parse" width="1000" data-path="images/setup/bulut/microsoft-aks/26-api-parse.png" />
</Frame>

API Proxy bilgileri girilerek **Save** butonuna tıklanır.

<Frame caption="API Proxy Kaydetme">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/27-api-save.jpg?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=ca31972c053ed305fabd4d39f54b48f3" alt="API Proxy Kaydetme" width="800" data-path="images/setup/bulut/microsoft-aks/27-api-save.jpg" />
</Frame>

API Proxy'yi yüklemek (deploy) için aşağıdaki görselde seçili olan **Deploy** butonu kullanılır.

<Frame caption="API Proxy Deploy">
  <img src="https://mintcdn.com/apinizer/n7lg0UCnwxDLvPwK/images/setup/bulut/microsoft-aks/28-api-deploy.png?fit=max&auto=format&n=n7lg0UCnwxDLvPwK&q=85&s=b350de417ba3c3599d6258991a9f50d7" alt="API Proxy Deploy" width="600" data-path="images/setup/bulut/microsoft-aks/28-api-deploy.png" />
</Frame>

Yükleme işlemi onaylanır.

<Frame caption="API Deploy Onayı">
  <img src="https://mintcdn.com/apinizer/rfZaKpIysRC7U9dY/images/setup/bulut/microsoft-aks/29-api-deploy-confirm.png?fit=max&auto=format&n=rfZaKpIysRC7U9dY&q=85&s=d49b6e519b15ea08de002af47eea6e96" alt="API Deploy Onayı" width="400" data-path="images/setup/bulut/microsoft-aks/29-api-deploy-confirm.png" />
</Frame>

API Proxy'nin **Develop** tabından test edilmek istenen uç noktaya (endpoint) gelip, **Test Endpoint** butonuna tıklanır.

<Frame caption="API Test Endpoint">
  <img src="https://mintcdn.com/apinizer/rfZaKpIysRC7U9dY/images/setup/bulut/microsoft-aks/30-api-test-endpoint.png?fit=max&auto=format&n=rfZaKpIysRC7U9dY&q=85&s=0b33b6d83301fd2da3d468565ac9234a" alt="API Test Endpoint" width="800" data-path="images/setup/bulut/microsoft-aks/30-api-test-endpoint.png" />
</Frame>

Test etme dialogunu içeren görsele aşağıda verilmiştir.

<Frame caption="API Test Dialog">
  <img src="https://mintcdn.com/apinizer/rfZaKpIysRC7U9dY/images/setup/bulut/microsoft-aks/31-api-test-dialog.png?fit=max&auto=format&n=rfZaKpIysRC7U9dY&q=85&s=cf81761e79b8a829c821d25786ac1e43" alt="API Test Dialog" width="800" data-path="images/setup/bulut/microsoft-aks/31-api-test-dialog.png" />
</Frame>

API Proxy ile ilgili detaylı bilgi için [Geliştirici Kılavuzuna](/tr/develop/quick-start.mdx) bakınız.

Test Konsoluyla ilgili detaylı bilgi almak için [Test Konsolu dokümantasyonuna](/tr/develop/test-debug-araclari/test-console.mdx) bakınız.
