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.
Bu makalede Kubernetes araçlarıyla Azure Arc için Azure SQL Yönetilen Örneği dağıtma adımları gösterilmektedir.
Önkoşullar
Zaten bir veri denetleyicisi oluşturmuş olmanız gerekir.
Kubernetes araçlarını kullanarak SQL yönetilen örneği oluşturmak için Kubernetes araçlarının yüklü olması gerekir. Bu makaledeki örneklerde kubectl kullanılacaktır, ancak Kubernetes dashboard’u, oc veya helm gibi diğer Kubernetes araçlarıyla, bu araçlar ve Kubernetes yaml/json hakkında bilginiz varsa, benzer yaklaşımlar kullanılabilir.
Genel bakış
SQL Yönetilen Örnek oluşturmak için yapmanız gerekenler:
- Sistem yöneticinizin oturum açma bilgilerini ve parolasını güvenli bir şekilde depolamak için bir Kubernetes gizli anahtarı oluşturun.
-
SqlManagedInstanceözel kaynak tanımına dayanan bir SQL Yönetilen Örneği özel kaynağı oluşturun
Bu öğelerin her ikisini de bir yaml dosyasında tanımlayın.
Yaml dosyası oluşturma
Şablon yaml dosyasını başlangıç noktası olarak kullanarak kendi özel SQL yönetilen örneği yaml dosyanızı oluşturun. Bu dosyayı yerel bilgisayarınıza indirin ve bir metin düzenleyicisinde açın. Yaml dosyaları için söz dizimi vurgulama ve lint özelliklerini destekleyen VS Code gibi bir metin düzenleyicisi kullanın.
Not
2022'nin Şubat ayından itibaren, yedeklemeler için ReadWriteMany (RWX) özellikli depolama sınıfı belirtilmelidir. Erişim modları hakkında daha fazla bilgi edinin.
Yedeklemeler için depolama sınıfı belirtilmezse Kubernetes'teki varsayılan depolama sınıfı kullanılır. Varsayılan RWX özellikli değilse, SQL Yönetilen Örnek kurulumu başarılı olmayabilir.
Örnek yaml dosyası
Aşağıdaki yaml dosyası örneğine bakın:
apiVersion: v1
data:
password: <your base64 encoded password>
username: <your base64 encoded username>
kind: Secret
metadata:
name: sql1-login-secret
type: Opaque
---
apiVersion: sql.arcdata.microsoft.com/v12
kind: SqlManagedInstance
metadata:
name: sql1
annotations:
exampleannotation1: exampleannotationvalue1
exampleannotation2: exampleannotationvalue2
labels:
examplelabel1: examplelabelvalue1
examplelabel2: examplelabelvalue2
spec:
dev: true #options: [true, false]
licenseType: LicenseIncluded #options: [LicenseIncluded, BasePrice]. BasePrice is used for Azure Hybrid Benefits.
tier: GeneralPurpose #options: [GeneralPurpose, BusinessCritical]
security:
adminLoginSecret: sql1-login-secret
scheduling:
default:
resources:
limits:
cpu: "2"
memory: 4Gi
requests:
cpu: "1"
memory: 2Gi
services:
primary:
type: LoadBalancer
storage:
#backups:
# volumes:
# - className: azurefile # Backup volumes require a ReadWriteMany (RWX) capable storage class
# size: 5Gi
data:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
datalogs:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
logs:
volumes:
- className: default # Use default configured storage class or modify storage class based on your Kubernetes environment
size: 5Gi
Oturum açma bilgilerini ve parolayı özelleştirme
Kubernetes gizli dizisi, biri kullanıcı adı ve diğeri parola için olmak üzere base64 ile kodlanmış bir dize olarak depolanır. Bir sistem yöneticisinin oturum açma bilgilerini ve parolasını base64 ile kodlamanız ve bunları data.password ve data.username konumundaki yer tutuculara yerleştirmeniz gerekir. Şablonda sağlanan < ve > simgelerini eklemeyin.
Not
En iyi güvenlik için, oturum açma için değerinin sa kullanılmasına izin verilmez.
Parola karmaşıklığı ilkesini izleyin.
İstediğiniz kullanıcı adını ve parolayı base64 kodlamak için çevrimiçi bir araç kullanabilir veya platformunuza bağlı olarak CLI araçlarını kullanabilirsiniz.
PowerShell
[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('<your string to encode here>'))
#Example
#[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('example'))
Linux/macOS
echo -n '<your string to encode here>' | base64
#Example
# echo -n 'example' | base64
Adı özelleştirme
Şablonun name özniteliği için değeri sql1 vardır. Bu değeri değiştirebilirsiniz, ancak DNS adlandırma standartlarına uyan karakterler içermelidir. Ayrıca sırrın adını da eşleşecek şekilde değiştirmeniz gerekir. Örneğin, SQL yönetilen örneğinin adını sql2 olarak değiştirirseniz, gizlinin adını sql1-login-secret'den sql2-login-secret'ye değiştirmelisiniz.
Kaynak gereksinimlerini özelleştirme
Kaynak gereksinimlerini (RAM ve çekirdek sınırları ve istekleri) gerektiği gibi değiştirebilirsiniz.
Not
Kubernetes kaynak idaresi hakkında daha fazla bilgi edinebilirsiniz.
Kaynak sınırları ve istekleri için gereksinimler:
- Çekirdek sınırı değeri faturalama amacıyla gereklidir .
- Kaynak isteklerinin ve sınırlarının geri kalanı isteğe bağlıdır.
- Çekirdek sınırı ve isteği, belirtilmişse pozitif bir tamsayı değeri olmalıdır.
- Belirtilmişse çekirdek isteği için en az 1 çekirdek gereklidir.
- Bellek değeri biçimi Kubernetes gösterim notasyonunu izler.
- Belirtilirse bellek isteği için en az 2 GB gerekir.
- Genel bir kılavuz olarak, üretim kullanım örnekleri için her 1 çekirdek için 4 GB RAM'e sahip olmanız gerekir.
Hizmet türünü özelleştirme
İsterseniz hizmet türü NodePort olarak değiştirilebilir. Rastgele bir bağlantı noktası numarası atanır.
Depolamayı özelleştirme
Depolama için depolama sınıflarını ortamınızla eşleşecek şekilde özelleştirebilirsiniz. Hangi depolama sınıflarının kullanılabilir olduğundan emin değilseniz, bunları görüntülemek için komutunu kubectl get storageclass çalıştırın.
Şablonun varsayılan değeri vardır default.
Örneğin:
storage:
data:
volumes:
- className: default
Bu örnek, adlı default bir depolama sınıfı olduğu anlamına gelir. Varsayılan olan bir depolama sınıfı olmadığı anlamına gelir. İsterseniz depolama alanınızın boyutunu da değiştirebilirsiniz. Daha fazla bilgi için bkz . depolama yapılandırması.
SQL yönetilen örneği oluşturma
Artık SQL Yönetilen Örneği YAML dosyasını özelleştirdiğinize göre, aşağıdaki komutu çalıştırarak SQL Yönetilen Örneğini oluşturabilirsiniz.
kubectl create -n <your target namespace> -f <path to your yaml file>
#Example
#kubectl create -n arc -f C:\arc-data-services\sqlmi.yaml
Oluşturma durumunu izleme
SQL yönetilen örneğinin oluşturulması birkaç dakika sürer. Aşağıdaki komutlarla başka bir terminal penceresinde ilerleme durumunu izleyebilirsiniz:
Not
Aşağıdaki örnek komutlarda, adı sql1 olan bir SQL yönetilen örneği ve adı arc olan bir Kubernetes ad alanı oluşturduğunuz varsayılır. Farklı bir ad alanı/SQL yönetilen örneği adı kullandıysanız, arc ve sqlmi öğelerini adlarınızla değiştirebilirsiniz.
kubectl get sqlmi/sql1 --namespace arc
kubectl get pods --namespace arc
Ayrıca belirli bir podun oluşturma durumunu da de kontrol edebilirsiniz.
kubectl describe pod ...'i çalıştırın. Sorunları gidermek için bu komutu kullanın. Örneğin:
kubectl describe pod/<pod name> --namespace arc
#Example:
#kubectl describe pod/sql1-0 --namespace arc
Dağıtım sorunlarını giderme
Dağıtımda herhangi bir sorunla karşılaşırsanız lütfen sorun giderme kılavuzuna bakın.
İlgili içerik
Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneğine bağlanın