Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Güvenlik güncelleştirmeleri, AKS kümenizin güvenliğini ve temel işletim sistemi için en son düzeltmelerle uyumluluğunu korumanın önemli bir parçasıdır. Bu güncelleştirmeler işletim sistemi güvenlik düzeltmelerini veya çekirdek güncelleştirmelerini içerir. Bazı güncelleştirmeler, işlemi tamamlamak için düğümün yeniden başlatılmasını gerektirir.
Bu makalede, otomatik çalışan bir güncelleştirme görevi oluşturmak amacıyla GitHub Actions ve Azure CLI kullanarak AKS düğümlerinin güncelleme sürecini nasıl otomatikleştirebileceğiniz gösterilmektedir.
Uyarı
Ayrıca düğüm görüntüsü yükseltmelerini otomatik olarak gerçekleştirebilir ve planlı bakımı kullanarak bu yükseltmeleri zamanlayabilirsiniz. Daha fazla bilgi için bkz Düğüm görüntülerini otomatik olarak yükseltme.
Başlamadan önce
- Bu makale, mevcut bir AKS kümeniz olduğunu varsayar. AKS kümesine ihtiyacınız varsa Azure CLI, Azure PowerShell veya Azure portalını kullanarak bir küme oluşturun.
- Bu makalede, eylemlerinizi barındırmak için bir GitHub hesabınız ve bir profil deponuz olduğu da varsayılır. Deponuz yoksa GitHub kullanıcı adınızla aynı adı taşıyan bir depo oluşturun.
- Azure CLI sürüm 2.0.59 veya üzerinin yüklü ve yapılandırılmış olması gerekir. Sürümü bulmak için
az --versionkomutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI'yı yükleme.
az aks upgrade ile düğümleri güncelleştirme
az aks upgrade komutu, güncelleştirmeleri sıfır kapalı kalma süresi ile uygulamanın bir yolunu sağlar. Komut aşağıdaki eylemleri gerçekleştirir:
- Kümenizin tüm düğümlerine en son güncelleştirmeleri uygular.
- Cordons (düğümü yeni iş yüklerinin zamanlanması için kullanılamaz hale getirir) ve düğümlere giden trafiği boşaltarak (mevcut iş yüklerini başka bir düğüme taşır).
- Düğümleri yeniden başlatır.
- Güncelleştirilmiş düğümlerin yeniden trafik almasını sağlar.
Farklı bir yöntem kullanarak güncelleştirdiğinizde AKS düğümlerinizi otomatik olarak yeniden başlatmaz.
Uyarı
az aks upgrade
--node-image-only bayrağıyla çalıştırıldığında yalnızca düğüm imajları yükseltilir. bayrağı olmadan komutunu çalıştırmak hem düğüm görüntülerini hem de Kubernetes denetim düzlemi sürümünü yükseltir. Daha fazla bilgi için yönetilen yükseltmeler düğümler belgeleri ve küme yükseltmeleri belgeleri‘ne bakın.
Tüm Kubernetes düğümleri standart bir Windows veya Linux tabanlı Azure sanal makinesinde (VM) çalışır. Linux tabanlı VM'ler, her gece güncelleştirmeleri otomatik olarak denetlemek üzere yapılandırılmış işletim sistemiyle bir Ubuntu görüntüsü kullanır.
komutunu kullandığınızda az aks upgrade Azure CLI, en son güvenlik ve çekirdek güncelleştirmeleriyle yeni düğümlerde bir artış oluşturur. Bu yeni düğümler başlangıçta, güncelleştirme tamamlanana kadar uygulamaların kendilerine zamanlanmasını önlemek için kordonlanır. Güncelleştirme tamamlandıktan sonra Azure, eski düğümleri izole edip engelini kaldırarak zamanlanmış tüm uygulamaları yeni düğümlere aktarır.
Yeni bir çekirdek güncelleştirmesi yüklendiğinde Linux yeniden başlatma gerektirdiğinden bu işlem Linux tabanlı çekirdekleri el ile güncelleştirmekten daha iyidir. İşletim sistemini el ile güncelleştirirseniz, vm'yi yeniden başlatmanız ve tüm uygulamaları el ile kordonlamanız ve boşaltmanız gerekir.
Zamanlanmış GitHub Eylemi oluşturma
cron , otomatik bir zamanlamada bir dizi komut veya iş çalıştırmanıza olanak tanıyan bir yardımcı programdır. AKS düğümlerinizi otomatik bir zamanlamaya göre güncelleştirecek bir iş oluşturmak için, eylemlerinizi barındıracak bir depoya ihtiyacınız vardır. GitHub Actions genellikle uygulamanızla aynı depoda yapılandırılır, ancak herhangi bir depoyu kullanabilirsiniz.
GitHub'daki deponuza gidin.
Eylemler'i seçin.
Yeni iş akışıİş akışını >kendiniz ayarlayın'ı seçin.
Her 15 günde bir saat 03:00'te çalışacak bir zamanlama tetikleyicisi ile Küme düğümü görüntülerini yükselt adlı bir GitHub Eylemi oluşturun. Aşağıdaki kodu YAML'ye kopyalayın:
name: Upgrade cluster node images on: schedule: - cron: '0 3 */15 * *'Ubuntu aracısı üzerinde çalışan ve düğüm yükseltme komutunu yürütmek için Azure CLI hesabınıza bağlanan upgrade-node adlı bir iş oluşturun. Aşağıdaki kodu,
onanahtarının altındaki YAML'ye kopyalayın.jobs: upgrade-node: runs-on: ubuntu-latest
İş akışında Azure CLI'yi ayarlama
Eylemler için Market'te Ara çubuğunda Azure Oturum Açma'yı arayın.
Azure Oturum Açma'ya tıklayın.
Yükleme'nin altında v1.4.6 gibi bir sürüm seçin ve yükleme kodu parçacığını kopyalayın.
YAML'ye
stepskurulum kodu parçacığından anahtarı ve aşağıdaki bilgileri ekleyin:name: Upgrade cluster node images on: schedule: - cron: '0 3 */15 * *' jobs: upgrade-node: runs-on: ubuntu-latest steps: - name: Azure Login uses: Azure/login@v1.4.6 with: creds: ${{ secrets.AZURE_CREDENTIALS }}
Azure CLI için kimlik bilgileri oluşturma
Yeni bir tarayıcı penceresinde komutunu kullanarak
az ad sp create-for-rbacyeni bir hizmet sorumlusu oluşturun. Emin olun ki*{subscriptionID}*değerini kendi abonelik kimliğiniz ile değiştirdiniz.Uyarı
Bu örnek
Contributorrolünü Abonelik kapsamına oluşturur. gereksinimlerinizi karşılayan rolü ve kapsamı sağlayabilirsiniz. Daha fazla bilgi için bkz. Azure yerleşik rolleri ve Azure RBAC kapsam düzeyleri.az ad sp create-for-rbac --role Contributor --scopes /subscriptions/{subscriptionID} -o jsonÇıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:
{ "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "displayName": "xxxxx-xxx-xxxx-xx-xx-xx-xx-xx", "password": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx", "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }Çıkışı kopyalayın ve GitHub deponuza gidin.
Ayarlar>Gizli bilgiler ve değişkenler>İşlemler>Yeni depo gizli bilgisi'ni seçin.
Ad için
AZURE_CREDENTIALSyazın.Gizli için, hizmet sorumlusunu oluştururken aldığınız çıktının içeriğini kopyalayın.
Gizli Ekle seçin.
Azure CLI komutlarını yürütme adımlarını oluşturma
İş akışı YAML dosyasının bulunduğu pencereye gidin.
Eylemler için Pazar Yeri'nde Ara çubuğunda Azure CLI Eylemi'ni arayın.
Azure CLI Eylemini seçin.
Yükleme'nin altında v1.0.8 gibi bir sürüm seçin ve yükleme kodu parçacığını kopyalayın.
Eylemin içeriğini aşağıdaki örneğe benzer şekilde adımın
*Azure Login*altındaki YAML'ye yapıştırın:name: Upgrade cluster node images on: schedule: - cron: '0 3 */15 * *' jobs: upgrade-node: runs-on: ubuntu-latest steps: - name: Azure Login uses: Azure/login@v1.4.6 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Upgrade node images uses: Azure/cli@v1.0.8 with: inlineScript: az aks upgrade --resource-group <resourceGroupName> --name <aksClusterName> --node-image-only --yesİpucu
--resource-groupve--nameparametrelerini komuttan ayırmak için,AZURE_CREDENTIALSiçin yaptığınız gibi yeni depo gizli anahtarları oluşturabilirsiniz.Bu parametreler için gizli diziler oluşturursanız,
<resourceGroupName>ve<aksClusterName>yer tutucularını gizli dizi karşılıklarıyla değiştirmeniz gerekir. Örneğin,${{secrets.RESOURCE_GROUP_NAME}}ve${{secrets.AKS_CLUSTER_NAME}}YAML'yi olarak
upgrade-node-images.ymlyeniden adlandırın.Değişiklikleri işle...'yi seçin, bir işleme iletisi ekleyin ve değişiklikleri işle'yi seçin.
GitHub Eylemini el ile çalıştırma
Zamanlanan çalıştırmaya ek olarak, yeni bir onworkflow_dispatch tetikleyici ekleyerek iş akışını el ile çalıştırabilirsiniz.
Uyarı
Kümedeki tüm düğüm havuzları yerine tek bir düğüm havuzunu yükseltmek istiyorsanız, düğüm havuzu adını belirtmek için parametresini --name komutuna ekleyinaz aks nodepool upgrade. Örneğin:
az aks nodepool upgrade --resource-group <resourceGroupName> --cluster-name <aksClusterName> --name <nodePoolName> --node-image-only
Tetikleyiciyi
workflow_dispatchanahtarınonaltına ekleyin:name: Upgrade cluster node images on: schedule: - cron: '0 3 */15 * *' workflow_dispatch:YAML aşağıdaki örneğe benzer görünmelidir:
name: Upgrade cluster node images on: schedule: - cron: '0 3 */15 * *' workflow_dispatch: jobs: upgrade-node: runs-on: ubuntu-latest steps: - name: Azure Login uses: Azure/login@v1.4.6 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Upgrade node images uses: Azure/cli@v1.0.8 with: inlineScript: az aks upgrade -g {resourceGroupName} -n {aksClusterName} --node-image-only --yes # Code for upgrading one or more node pools
Sonraki Adımlar
AKS yükseltmeleri hakkında daha fazla bilgi için aşağıdaki makalelere ve kaynaklara bakın:
Yükseltme en iyi yöntemleri ve diğer önemli noktalar hakkında ayrıntılı bilgi için bkz. AKS düzeltme eki ve yükseltme kılavuzu.