Azure IoT İşlemleri için bir küme hazırlayın

Azure Arc özellikli bir Kubernetes kümesi, Azure IoT İşlemleri'ı dağıtmak için bir önkoşuldur. Bu makale, Ubuntu, Windows, Azure Yerel ve vSphere Kubernetes Service (VKS) için rehberlik ile birlikte bu kümenin nasıl hazırlanacağını anlatır.

Azure IoT İşlemleri hızla dağıtmak ve test ortamında örnek bir iş yükü çalıştırmak istiyorsanız bkz. Quickstart: K3s ile GitHub Codespaces'ta Azure IoT İşlemleri çalıştırma.

Önkoşullar

Multi-node deployments için Ubuntu'da K3s, Azure Yerel'da AKS veya vSphere Kubernetes Service (VKS) kullanın. AKS Uç Temel Bileşenleri on Windows yalnızca tek düğümlü dağıtımları destekler.

Azure Arc etkin bir Kubernetes kümesi hazırlamak için şunları yapmanız gerekir:

  • Owner rolüne veya Contributor ve User Access Administrator rollerinin birleşimine sahip bir Azure aboneliği. Aboneliğinize gidip Azure portalının sol tarafındaki Erişim kontrolü (IAM) seçeneğini seçtikten sonra Erişimimi görüntüle öğesini seçerek erişim seviyenizi denetleyebilirsiniz. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir abonelik oluşturabilirsiniz.

  • Geliştirme makinenizde yüklü Azure CLI. Mevcut Azure CLI uzantılarını, connectedk8s uzantısı için gereken en düşük sürümü görmek üzere denetleyin. Sürümünüzü denetlemek ve az --version gerekirse güncelleştirmek için kullanınaz upgrade. Daha fazla bilgi için bkz. Azure CLI yükleme.

  • Azure CLI için connectedk8s uzantısı. Uzantıyı eklemek veya en son sürüme güncelleştirmek için aşağıdaki komutu kullanın:

    az extension add --upgrade --name connectedk8s
    
  • bir Azure kaynak grubu. Kaynak grubu başına yalnızca bir Azure IoT İşlemleri örneği desteklenir. Yeni bir kaynak grubu oluşturmak için az group create komutunu kullanın. Şu anda desteklenen Azure bölgelerin listesi için bkz. Supported regions.

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    

Bu makaledeki Azure CLI örnek, her değeri bir kez ayarlayabilmeniz ve ardından komutları kopyalayıp yapıştırmanız için ortam değişkenlerini kullanır as-is. Eğer hızlı başlangıçta Azure IoT İşlemleri Codespaces ortamını kullanıyorsanız, bu değişkenler zaten sizin için ayarlanmış ve bu adımı atlayabilirsiniz. Aksi takdirde, komutları çalıştırmadan önce shell'inizde aşağıdaki ortam değişkenlerini ayarlayın.

Aşağıdaki betikler en sık kullanılan ortam değişkenlerini ayarlar:

Ortam değişkeni Description
SUBSCRIPTION_ID Azure IoT İşlemleri örneğini içeren aboneliğin kimliği.
RESOURCE_GROUP Azure IoT İşlemleri örneğini içeren kaynak grubunun adı.
AIO_INSTANCE_NAME Azure IoT İşlemleri örneğinizin adı. Örneklerinizi listelemek için çalıştırın az iot ops list -o table.
CLUSTER_NAME Azure Arc özellikli Kubernetes kümesinin adı, örneğini barındırıyor.
LOCATION Yeni kaynaklar için kullanılacak Azure bölgesi, örneğin eastus.
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>

Sadece bu makalenin kullandığı değişkenleri ayarlamanız yeterlidir. Bu makale, seçtiğiniz kaynak adları için ek ortam değişkenleri kullanabilir. Makale, tanıtıldıkları yere nasıl yerleştirileceğini açıklıyor.

Küme oluşturun ve Azure Arc'ı etkinleştirin

Bu bölüm, Ubuntu, Windows, Azure Yerel ve vSphere Kubernetes Service (VKS) üzerinden doğrulanmış ortamlarda küme oluşturma adımlarını sunar.

Ubuntu'da bir K3s Kubernetes kümesi hazırlamak için:

  1. Tek düğümlü veya çok düğümlü bir K3s kümesi oluşturun. Örnekler için bkz . K3s hızlı başlangıç kılavuzu veya K3s ile ilgili projeler.

  2. K3s'ün kurulduğunu kubectlkontrol et. Aksi takdirde Kubectl'yi Linux'a yükleme yönergelerini izleyin.

    kubectl version --client
    
  3. Helm'i Yükleme yönergelerini izleyin.

  4. .kube/config içinde bir K3s yapılandırma YAML dosyası oluşturun:

    mkdir ~/.kube
    sudo KUBECONFIG=~/.kube/config:/etc/rancher/k3s/k3s.yaml kubectl config view --flatten > ~/.kube/merged
    mv ~/.kube/merged ~/.kube/config
    chmod  0600 ~/.kube/config
    export KUBECONFIG=~/.kube/config
    #switch to k3s context
    kubectl config use-context default
    sudo chmod 644 /etc/rancher/k3s/k3s.yaml
    
  5. Kullanıcı izleme/örnek sınırlarını artırmak için aşağıdaki komutu çalıştırın.

    echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf
    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    
  6. Daha iyi performans için dosya tanımlayıcısı sınırını artırın:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    
    sudo sysctl -p
    

K3s kümenizi ark olarak etkinleştirin

Kümenizi uzaktan yönetebilmeniz için Azure Arc'e bağlayın.

  1. Kümenize erişimi kubectl olan bir makineden, Azure aboneliği için gerekli rollere sahip Microsoft Entra kullanıcı hesabınızla Azure CLI giriş yapın:

    az login
    

    Herhangi bir noktada cihazınızın kaynağınıza erişmesi için yönetilmesi gerektiği hatası alırsanız, tekrar çalıştırın az login ve tarayıcı kullanarak etkileşimli olarak giriş yaptığınızdan emin olun.

  2. Giriş yaptıktan sonra, Azure CLI tüm aboneliklerinizi gösterir ve varsayılan aboneliğinizi yıldız *işaretiyle gösterir. Varsayılan aboneliğinizle devam etmek için Enter seçin. Aksi takdirde, kullanmak istediğiniz Azure aboneliğinin numarasını yazın.

  3. Gerekli kaynak sağlayıcılarını aboneliğinize kaydedin.

    Not

    Bu adımı abonelik başına sadece bir kez yapmanız gerekir. Kaynak sağlayıcılarını kaydetmek için, abonelikteki Katkıda Bulunan ve Sahip rollerinin içerdiği /register/action işlemini gerçekleştirme iznine sahip olmanız gerekir. Daha fazla bilgi için bkz. Azure kaynak sağlayıcıları ve türleri.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperations"
    az provider register -n "Microsoft.DeviceRegistry"
    az provider register -n "Microsoft.SecretSyncController"
    
  4. Kubernetes kümenizi Arc-enable ve Azure kaynak grubunuzun bir parçası olarak yönetmek için az connectedk8s connect komutunu kullanın.

    az connectedk8s connect --name $CLUSTER_NAME -l $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --enable-oidc-issuer --enable-workload-identity --disable-auto-upgrade
    

    Azure Arc planlanmamış güncelleştirmeleri ve Azure IoT İşlemleri bağımlılık olarak kullanan sistem Arc uzantılarını önlemek için, bu komut otomatik sürümü devre dışı bırakır. Bunun yerine, gerektiğinde aracıları el ile yükseltin.

    Önemli

    Ortamınız bir ara sunucu veya Azure Arc Ağ Geçidi kullanıyorsa, az connectedk8s connect komutunu proxy bilgilerinizle değiştirin:

    1. Dışa giden proxy sunucusu kullanarak bağlanma veya Kubernetes kümelerini Azure Arc Gateway kullanarak Azure Arc'a dâhil etme yönergelerini izleyin.
    2. 169.254.169.254--proxy-skip-range parametresine az connectedk8s connect komutuna ekleyin. Azure Cihaz Kayıt Defteri yetkilendirme için erişim belirteçlerini almak için bu yerel uç noktayı kullanır.

    Azure IoT İşlemleri, güvenilen sertifika gerektiren ara sunucuları desteklemez.

  5. Kümenin verici URL'sini alın.

    az connectedk8s show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsv
    

    Sonraki adımlarda kullanmak için bu komutun çıkışını kaydedin.

  6. Bir K3s yapılandırma dosyası oluşturun.

    sudo nano /etc/rancher/k3s/config.yaml
    
  7. Aşağıdaki içeriği config.yaml dosyasına ekleyin ve <SERVICE_ACCOUNT_ISSUER> yer tutucusunu kümenizin verici URL’si ile değiştirin.

    kube-apiserver-arg:
     - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
     - service-account-max-token-expiration=24h
    
  8. Dosyayı kaydedin ve nano düzenleyiciden çıkın.

  9. Azure Arc hizmetini Arc kümenizde özel konumla etkinleştirmek için, özel konum nesne kimliğini alın ve bunu OBJECT_ID ortam değişkeni olarak kaydedin. Komutu başarıyla çalıştırmak için Azure CLI'ya bir hizmet yöneticisi değil, bir Microsoft Entra kullanıcı hesabıyla giriş yapmanız gerekir. GUID değerini değiştirmeden aşağıdaki komutu tam olarak yazıldı olarak çalıştırın.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    

    Not

    Şu hatayı alırsanız: “'custom-locations' uygulamasının OID'i getirilemiyor.” Özelliği etkinleştirmeden devam edin. İşlemi tamamlamak için ayrıcalık yetersiz", ardından hizmet sorumlunuz özel konumun nesne kimliğini almak için gerekli izinlere sahip olmayabilir. Azure CLI'ya ön koşulları karşılayan bir Microsoft Entra kullanıcı hesabıyla giriş yapın. Daha fazla bilgi için bkz . Özel konumları oluşturma ve yönetme.

  10. Arc kümenizde özel konum özelliğini etkinleştirmek için az connectedk8s enable-features komutunu kullanın. Bu komut, önceki adımda kaydettiğiniz OBJECT_ID ortam değişkenini kullanarak custom-locations-oid parametresinin değerini ayarlar. Kubernetes kümesini dağıttığınız makinede şu komutu çalıştırın:

    az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    
  11. K3s'i yeniden başlatın.

    systemctl restart k3s
    

Azure Arc tarafından etkinleştirilen Azure Container Storage'ı yapılandırın

Veri akışı yerel depolama uç noktaları ve medya bağlayıcısı gibi özellikler, yerel verileri bulutla eşitlemek için isteğe bağlı olarak Azure Arc (ACSA) tarafından etkinleştirilen Azure Kapsayıcı Depolama'yı kullanır. ACSA, Azure IoT İşlemleri'ın bir parçası olarak kurulmadığı için ayrı olarak kurmalısınız.

Kubernetes kümenize ACSA'yı nasıl kuracağınızı öğrenmek için:

Sonraki adımlar

artık Azure Arc etkin bir Kubernetes kümeniz olduğuna göre, Azure IoT İşlemleri dağıtabilirsiniz.