Azure Kubernetes Service'te (AKS) Linux düğümlerine güvenlik ve çekirdek güncelleştirmeleri uygulama

Kümelerinizi korumak için güvenlik güncelleştirmeleri AKS'deki Linux düğümlerine otomatik olarak uygulanır. Bu güncelleştirmeler işletim sistemi güvenlik düzeltmelerini veya çekirdek güncelleştirmelerini içerir. Bu güncelleştirmelerden bazıları, işlemi tamamlamak için düğümün yeniden başlatılmasını gerektirir. AKS, güncelleştirme işlemini tamamlamak için bu Linux düğümlerini otomatik olarak yeniden başlatmaz.

Windows Server düğümlerini güncel tutma işlemi biraz farklıdır. Windows Server düğümleri günlük güncelleştirmeleri almaz. Bunun yerine, en son temel Window Server görüntüsü ve düzeltme ekleriyle yeni düğümleri dağıtan bir AKS yükseltmesi gerçekleştirirsiniz. Windows Server düğümlerini kullanan AKS kümeleri için bkz . AKS'de düğüm havuzunu yükseltme.

Bu makalede, yeniden başlatma gerektiren Linux düğümlerini izlemek için açık kaynak kured 'in (KUbernetes REboot Daemon) nasıl kullanılacağı ve ardından çalışan podların yeniden zamanlanması ve düğüm yeniden başlatma işleminin otomatik olarak nasıl işlendiği gösterilmektedir.

Not

Kured Cloud Native Computing Foundation'da açık kaynak bir projedir. Lütfen sorunları kured GitHub'a yönlendirin. CNCF Slack'teki #kured kanalında ek destek bulunabilir.

Önemli

Aks belgeleri ve örnekleri boyunca açık kaynak yazılımdan bahsedilmektedir. Dağıttığınız yazılımlar AKS hizmet düzeyi sözleşmelerinin, sınırlı garantinin ve Azure desteği dışında tutulur. AKS ile birlikte açık kaynak teknolojisini kullanırken, bir plan geliştirmek için ilgili toplulukların ve proje bakımcılarının sağlanan destek seçeneklerine başvurun.

Örneğin, Ray GitHub deposu yanıt süresi, amacı ve destek düzeyine göre değişen çeşitli platformları açıklar.

Microsoft, AKS'de dağıttığımız açık kaynak paketleri oluşturma sorumluluğunu üstlenir. Bu sorumluluk derleme, tarama, imzalama, doğrulama ve düzeltme işleminin tam sahipliğini ve kapsayıcı görüntülerindeki ikili dosyalar üzerindeki denetimi içerir. Daha fazla bilgi için bkz. AKS ve AKS destek kapsamı için güvenlik açığı yönetimi.

Başlamadan önce

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 --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

AKS düğümü güncelleştirme deneyimini anlama

AKS kümesinde Kubernetes düğümleriniz Azure sanal makineleri (VM) olarak çalışır. Bu Linux tabanlı VM'ler bir Ubuntu veya Azure Linux görüntüsü kullanır ve işletim sistemi her gün güncelleştirmeleri otomatik olarak denetlemek üzere yapılandırılır. Güvenlik veya çekirdek güncelleştirmeleri varsa, bunlar otomatik olarak indirilir ve yüklenir.

AKS düğümü güncelleştirme ve kured ile yeniden başlatma işlemi

Çekirdek güncelleştirmeleri gibi bazı güvenlik güncelleştirmeleri, işlemi sonlandırmak için düğümün yeniden başlatılmasını gerektirir. Yeniden başlatma gerektiren bir Linux düğümü /var/run/reboot-required adlı bir dosya oluşturur. Bu yeniden başlatma işlemi otomatik olarak gerçekleşmez.

Düğüm yeniden başlatma işlemlerini işlemek için kendi iş akışlarınızı ve işlemlerinizi veya işlemi düzenlemeyi kullanabilirsiniz kured . ile kured, kümedeki her Linux düğümünde bir pod çalıştıran bir DaemonSet dağıtılır. DaemonSet'teki bu podlar /var/run/reboot-required dosyasının varlığını izler ve ardından düğümleri yeniden başlatmak için bir işlem başlatır.

Düğüm görüntüsü yükseltmeleri

Katılımsız yükseltmeler Linux düğümü işletim sistemine güncelleştirmeler uygular, ancak kümeniz için düğüm oluşturmak için kullanılan görüntü değişmeden kalır. Kümenize yeni bir Linux düğümü eklenirse, düğümü oluşturmak için özgün görüntü kullanılır. Bu yeni düğüm, her gün otomatik denetim sırasında kullanılabilen tüm güvenlik ve çekirdek güncelleştirmelerini alır, ancak tüm denetimler ve yeniden başlatmalar tamamlanana kadar eşleşmeyen kalır.

Alternatif olarak, kümeniz tarafından kullanılan düğüm görüntülerini denetlemek ve güncelleştirmek için düğüm görüntüsü yükseltmeyi kullanabilirsiniz. Düğüm görüntüsü yükseltme hakkında daha fazla bilgi için bkz . Azure Kubernetes Service (AKS) düğüm görüntüsü yükseltme.

Düğüm yükseltmeleri

AKS'de bir kümeyi yükseltmenizi sağlayan başka bir işlem daha vardır. Yükseltme genellikle yalnızca düğüm güvenlik güncelleştirmelerini uygulamak yerine daha yeni bir Kubernetes sürümüne geçmektir. AKS yükseltmesi aşağıdaki eylemleri gerçekleştirir:

  • En son güvenlik güncelleştirmeleri ve Kubernetes sürümü uygulanmış yeni bir düğüm dağıtılır.
  • Eski bir düğüm kordonlanır ve boşaltılır.
  • Podlar yeni düğümde zamanlanır.
  • Eski düğüm silinir.

Yükseltme olayı sırasında aynı Kubernetes sürümünde kalamazsınız. Kubernetes'in daha yeni bir sürümünü belirtmeniz gerekir. Kubernetes'in en son sürümüne yükseltmek için AKS kümenizi yükseltebilirsiniz.

AKS kümesinde kured dağıtma

DaemonSet'i kured dağıtmak için aşağıdaki resmi Kured Helm grafiğini yükleyin. Bu, bir rol ve küme rolü, bağlamalar ve bir hizmet hesabı oluşturur, ardından kullanarak kuredDaemonSet'i dağıtır.

# Add the Kured Helm repository
helm repo add kubereboot https://kubereboot.github.io/charts/

# Update your local Helm chart repository cache
helm repo update

# Create a dedicated namespace where you would like to deploy kured into
kubectl create namespace kured

# Install kured in that namespace with Helm 3 (only on Linux nodes, kured is not working on Windows nodes)
helm install my-release kubereboot/kured --namespace kured --set controller.nodeSelector."kubernetes\.io/os"=linux

Prometheus veya Slack ile tümleştirme gibi için ek parametreler kuredde yapılandırabilirsiniz. Yapılandırma parametreleri hakkında daha fazla bilgi için bkz . kured Helm grafiği.

Küme düğümlerini güncelleştirme

Varsayılan olarak AKS'deki Linux düğümleri güncelleştirmeleri her akşam denetler. Beklemek istemiyorsanız, doğru şekilde çalıştığını denetlemek kured için el ile bir güncelleştirme gerçekleştirebilirsiniz. İlk olarak, AKS düğümlerinizden birine SSH adımlarını izleyin. Linux düğümüne SSH bağlantısına sahip olduktan sonra güncelleştirmeleri denetleyin ve aşağıdaki gibi uygulayın:

sudo apt-get update && sudo apt-get upgrade -y

Düğüm yeniden başlatma gerektiren güncelleştirmeler uygulandıysa, /var/run/reboot-required dosyasına bir dosya yazılır. Kured varsayılan olarak her 60 dakikada bir yeniden başlatma gerektiren düğümleri denetler.

Yeniden başlatma işlemini izleme ve gözden geçirme

DaemonSet'teki çoğaltmalardan biri düğümü yeniden başlatmanın gerekli olduğunu algıladığında Kubernetes API'sini kullanarak düğüme bir kilit yerleştirilir. Bu kilit, düğümde daha fazla pod zamanlanmasını engeller. Kilit aynı anda yalnızca bir düğümün yeniden başlatılması gerektiğini de gösterir. Düğüm devre dışı bırakıldığında çalışan podlar düğümden boşaltılır ve düğüm yeniden başlatılır.

kubectl get node komutunu kullanarak düğümlerin durumunu izleyebilirsiniz. Aşağıdaki örnek çıktıda, düğüm yeniden başlatma işlemine hazırlanırken SchedulingDisabled durumuna sahip bir düğüm gösterilmektedir:

NAME                       STATUS                     ROLES     AGE       VERSION
aks-nodepool1-28993262-0   Ready,SchedulingDisabled   agent     1h        v1.11.7

Güncelleştirme işlemi tamamlandıktan sonra parametresiyle --output wide kubectl get node komutunu kullanarak düğümlerin durumunu görüntüleyebilirsiniz. Bu çıkış, aşağıdaki örnek çıktıda gösterildiği gibi temel düğümlerin KERNEL-VERSION'unda bir fark görmenize olanak tanır. aks-nodepool1-28993262-0 önceki bir adımda güncelleştirildi ve çekirdek sürümü 4.15.0-1039-azure'ı gösteriyor. Güncelleştirilmedi aks-nodepool1-28993262-1 düğümü çekirdek sürümü 4.15.0-1037-azure'u gösterir.

NAME                       STATUS    ROLES     AGE       VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
aks-nodepool1-28993262-0   Ready     agent     1h        v1.11.7   10.240.0.4    <none>        Ubuntu 16.04.6 LTS   4.15.0-1039-azure   docker://3.0.4
aks-nodepool1-28993262-1   Ready     agent     1h        v1.11.7   10.240.0.5    <none>        Ubuntu 16.04.6 LTS   4.15.0-1037-azure   docker://3.0.4

Sonraki adımlar

Bu makalede, güvenlik güncelleştirmesi işleminin bir parçası olarak Linux düğümlerini otomatik olarak yeniden başlatmak için nasıl kullanılacağı kured ayrıntılı olarak anlatılmaktadır. Kubernetes'in en son sürümüne yükseltmek için AKS kümenizi yükseltebilirsiniz.

Windows Server düğümlerini kullanan AKS kümeleri için bkz . AKS'de düğüm havuzunu yükseltme.

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.