Genel Bakış
Bu yazıda, Azure Arc servisine genel bir bakış atacağız. Öncelikle Azure Arc’ın ne olduğundan ve ne için kullanıldığından bahsettikten sonra, Azure Arc’ın bize sunduğu hizmetlere biraz daha derinlemesine göz atıp nasıl kullanıldığına dair küçük bir demo gerçekleştireceğiz.
Azure Arc Nedir?
Azure Arc, dağıtık ortamlarınızı tek bir çatı altında toplayarak yönetimi kolaylaştıran bir hizmettir. Azure Arc sayesinde sadece Azure’a dahil olan kaynaklarınızı değil multi-cloud, on-premises ve edge ortamlarınızı da kolayca yönetebilecek ve Azure’un sağladığı imkanlardan faydalanabileceksiniz.

Azure Arc Kullanım Alanları
Cloud, on-prem ve edge kaynaklarınızı tek bir noktadan yönetebilir, hızla artan ihtiyaçlarınıza karşılık büyüyen Windows&Linux sunucularınızı ve Kubernetes clusterlarınızı kontrol altına alabilirsiniz.
Kubernetes uygulamalarınızı Github ve Azure Policy ile yönetebilir, onların stabil bir şekilde ölçeklendiğinden emin olabilirsiniz.
Azure’un size sağladığı bir çok hizmet ve yenilikten tüm çalışma ortamlarınızda faydalanabilir, verinizin ve uygulamalarınızın güvenliğinden emin olabilirsiniz.
Azure Arc Nasıl Çalışır?
Azure, Connected Machine Agent ile on-prem veya hybrid cloud üstündeki makinelerinizi yönetebilir, size istatistik sunabilir veya Azure Policy uygulayabilir.
Azure bir kere bu kaynaklarınızın varlığını öğrendikten sonra cluster yapınızı optimize edebilir ve ihtiyaç durumunda otomatik ölçeklendirme işlemlerinizi yönetebilir.
Azure tüm bu farklı ortamlarınızdaki kaynaklarınızı yönetmeniz için size tek bir arayüz sağlar. Alışkın olduğunuz Azure Portal üstünden tüm işlemlerinizi yapabilir ve tüm yapınızı yönetebilirsiniz.

Ayrıca Azure Security Center ile bu farklı ortamlarınızın da güvenliğini sağlayabilir ve tehdit içeren unsurlara karşı önlemler alabilirsiniz ve tüm bunlar için sürekli çevrimiçi olmanız gerekmez. Yerel Azure Arc veri yöneticisi ile –provisioning, esnek ölçekleme, yedekleme ve monitörleme gibi özellikler de dahil olmak üzere- tüm bu imkanları çevrimdışı iken de kullanmaya devam edebilirsiniz.

Azure Arc Hizmetleri
Azure Arc ile Azure dışındaki ortamlarınızda yönetebileceğiniz üç kaynak türü bulunmaktadır:
- Sunucular: Fiziksel veya sanal tüm sunucularınızı, linux veya windows olması farketmeksizin Azure Arc ile yönetebilirsiniz.
- Kubernetes Clusterları: Bir çok Kubernetes dağıtımını desteklemektedir.
- Azure Data servisleri: Azure SQL Database ve PostgreSQL Hyperscale servislerini yönetebilirsiniz.

Azure Arc sayesinde on-premise gibi Azure dışı ortamlarınızı yönetirken Azure’un sağladığı yönetim kolaylığından, monitörleme ve yükseltme gibi hizmetlerinden ve güvenlik araçlarından faydalanabilir, tüm bu işlemler için Azure Portal, Azure CLI veya Azure Powershell kullanabilirsiniz.
Azure Arc enabled Servers
Bu hizmet sayesinde Azure dışındaki ortamlarda kullandığınız fiziksel ve sanal sunucularınızı Azure’a dahil edebilirsiniz. Bir sunucuyu Azure’a dahil ettiğiniz zaman, Azure tarafından bir Resource ID atanır ve aboneliğinize dahil bir Resource Group altındaki herhangi bir Resource olarak muamele yapılır. Bu tarz makinelere Connected Machine(Bağlı Sunucu) adı verilir. Bağlı sunucularınıza artık Azure Policy veya “Tag” uygulayabilirsiniz.
Bunun için sunucunuza Connected Machine Agent kurulması gerekmektedir. Bu agent’ın desteklediği işlemler aşağıdaki gibidir:
- Azure Policy Guest Configurations eklentisi ile Azure’daki bir makineye uyguladığınız gibi policy uygulayabilirsiniz.
- Azure Monitor for VMs ile bağlı sunucunuzun kaynak tüketimlerini ve üstünde çalıştırdığı servisleri gibi bileşenleri monitörleyebilirsiniz.
- Azure Automation State Configuration veya Log Analytics gibi farklı Azure VM eklentilerinin kurulumunu rahatlıkla gerçekleştirebilirsiniz.
Azure Arc enabled Kubernetes
Azure Arc sayesinde Kubernetes clusterlarınızı Azure’a ekleyebilirsiniz. Bunu yaptığınızda clusterınıza Azure tarafından bir Resource Manager ID verilir ve Azure Portalda bunu görebilirsiniz. Artık clusterınızı diğer resourcelarınız gibi yönetebilir ve onlara birtakım tagler uygulayabilirsiniz.
Clusterınızı Azure’a dahil etmek için yine Azure Arc’ın agentlarını yüklemeniz gerekir. Bu agentların görevi Azure bağlantısını sağlamak, log ve metrikleri toplamak, konfigürasyon taleplerini takip etmektir.
Azure Arc takımı aşağıdaki Kubernetes dağıtımlarını test etmiş ve onaylamıştır:
- RedHat OpenShift 4.3
- Rancher RKE 1.0.8
- Canonical Charmed Kubernetes 1.18
- AKS Engine
- AKS Engine on Azure Stack Hub
- Cluster API Provider Azure
Bunların haricinde Azure Arc enabled Kubernetes, Cloud Native Computing Foundation (CNCF) sertifikasına sahip VMware vSphere cluster veya Google Kubernetes Engine (GKE) gibi diğer tüm Kubernetes clusterlarını da desteklemektedir.
Azure Arc enabled Kubernetes servisi ile aşağıdaki imkanlara sahip olursunuz:
- Azure dışı clusterlarınızı bağlayarak envanter, gruplama ve etiketleme gibi işlemler yapabilirsiniz
- GitOps temelli bir konfigürason yönetimi ile uygulamalarınızı yerleştirebilir ve yönetebilirsiniz
- Azure Monitor for Containers ile clusterınızı görüntüleyebilirsiniz
- Azure Policy for Kubernetes ile clusterınıza birtakım policy uygulayabilirsiniz
Azure Arc-enabled Data Services
Azure Arc sayesinde on-premise gibi Azure dışı ortamlarınızda, seçtiğiniz bir Kubernetes altyapısı ile Azure Data servislerinizi yerleştirebilir, bu servislerin esnek ölçeklenmesi gibi bir çok Azure imkanından faydalanabilirsiniz. Ayrıca Azure Arc Data Controller sayesinde çevrimdışı ortamlarınızda da bu servisten faydalanabilirsiniz.
Azure Data servislerinden henüz Azure SQL Managed Instance ve Azure Database for PostgreSQL Hyperscale şuan için kullanıma uygun durumdadır, diğerleri için de çalışmalar sürmektedir.
NOT: Bu servislerin tamamı henüz geliştirme aşamasındadır ve önizleme olarak kullanıma sunulmuştur.
Nasıl Yapılır?
Şimdi adım adım yerelimizdeki bir sunucuyu Azure’a dahil edip neler yapabildiğimize bakalım. Bunun için Azure’a dahile edeceğimiz makineye Connected Machine Agent’ı kurmamız gerekiyor.
Bunu yapmanın da bir kaç yolu mevcut; Azure Portaldan kurulum için bir betik oluşturup bu betiği sunucumuzda çalıştırarak adımların tamamlanmasını bekleyebiliriz veya Azure Active Directory’de bir Service Principal tanımlayarak yüksek sayıdaki makineleri toplu bir şekilde Azure’a bağlayabiliriz veya yine toplu sayıda işlem için Powershell DSC modülünü kullanabiliriz.
Şimdiki örneğimizde Azure Portaldan oluşturacağımız bir betik ile bir adet makinemizi Azure’a dahil edeceğiz.
- Öncelikle web tarayıcınızdan Azure Portal’ı açın ve üstteki arama çubuğuna “Azure Arc” yazın. Çıkan arama sonuçları arasında “Makineler-Azure Arc” şeklinde bir seçenek göreceksiniz.
- “Makineler-Azure Arc” sayfasında sol üstten “Ekle” ye tıklayarak yeni bir makine ekleyebilirsiniz.
- Şimdi sizden –yukarıda bahsettiğim gibi- bir yöntem seçmenizi isteyecektir. Biz burada “Etkileşimli betiği kullanarak makine ekleme” seçeneği ile devam edeceğiz. “Betik Oluştur” a tıklayın.
- “Betik Oluştur” sayfasında sizden birtakım bilgiler talep edilecektir. Öncelikle yeni makinenizi dahil edeceğiniz aboneliğinizi ve bu kaynağın yerleştirileceği kaynak grubunu seçmeniz gerekiyor. Sonrasında bu makinenin meta datasının tutulacağı Azure bölgesini ve makinenizin işletim sistemini seçin. Son olarak eğer kullanıyorsanız proxy adresinizi girin ve “Gözden geçir ve oluştur” a tıklayın.
- “Gözden geçir ve oluştur” sayfasında girdiğiniz bilgileri görebilirsiniz.

- Sayfayı aşağıya doğru kaydırdığınızda da sizin için hazırlanmış betiği görebilirsiniz. Bu betik sizin için otomatik olarak yükleyiciyi indirir ve gerekli işlemleri tamamlar. Dilerseniz betiği buradan kopyalayarak makinenizde çalıştırabilirsiniz veya alttaki “İndir” butonuna tıklayarak yerel bilgisayarınıza kaydedebilirsiniz.

Şimdi tek yapmamız gereken, sunucumuza bağlanıp bu betiği çalıştırmak. Lakin bu işlemleri gerçekleştirmek için yönetici izinlerine sahip olmanız gerektiğini unutmayın.
- İşletim sisteminiz windows ise “Yönetici olarak” bir powershell penceresi açın ve betiği çalıştırın. Eğer linux kullanıyorsanız bir terminal penceresi açtıktan sonra “sudo” kullanarak veya “su – ” ile root kullanıcısına geçtikten sonra betiği çalıştırın.
Şimdi örnek olarak bir linux sunucuyu Azure’a dahil edelim. Azure Portal’da oluşturulan betiği adım adım uygulayalım. Öncelikle yükleme paketini indirelim:

Şimdi de paketimizi yükleyelim:

Gördüğünüz üzere yükleme betiği, işletim sistemini kendisi tespit etti: CentOS 8. Sonrasında Microsoftun paket repositorysinden “azcmagent” paketini buldu ve yükledi.
Sıra geldi makinemizi Azure’a bağlamaya:
Bu işlem sırasında bizden makinemizi onaylamamız için bir web tarayıcısından verilen adrese girip istenilen kodu yazmamız istendi.


Ve bu kadar. Tüm işlemler tamamlandı. Şimdi Azure Portalı açıp makinemizin durumunu kontrol edelim:

Gördüğünüz üzere makinemizi artık “Makineler-Azure Arc” sayfasında görebiliyoruz. Sağ tarafta da kurulum betiğini oluşturmak için girdiğimiz bilgiler bulunmaktadır.
Şimdi bir de kaynaklarımızı kontrol edelim:

Artık bu makinemiz, Azure üstünde oluşturacağımız herhangi bir sanal makineden farklı değildir ve onu istediğimiz gibi yönetebiliriz.

Makinemizin Genel Bakış sayfasını açtığımızda onunla ilgili tüm bilgilere ulaşabilir, soldaki menüden Azure üstünde oluşturduğumuz diğer kaynaklara uyguladığımız işlemleri uygulayabiliriz.
