Merhaba, “Azure Kubernetes Service” makale serisine devam ediyoruz. Bu makalemizde AKS üzerinde SQL Server deployment adımlarını beraber inceleyeceğiz. ASK üzerinde bir servisi veya uygulamayı dakikalar içersinde hazır hale getirmek çok kolay ve hızlı. Şimdi hızlıca deployment adımlarına geçelim.
İlk makalede AKS deployment’ını yapmıştık ancak SQL deployment yaparken dikkat etmeniz gereken en önemli şey seçeceğiniz node’un kapasitesi. Ben 8 core altındaki node’lara deployment yapamadım bu yüzden aşağıdaki görseldeki node’u seçtim ve AKS deployment’ı buna göre yaptım.
İlk olarak “sa” kullanıcısı için bir parola oluşturuyorum.
kubectl create secret generic mssql --from-literal=MSSQL_SA_PASSWORD="C0ZumP@rk42*!"
İkinci adımda bir stroage oluşturuyorum. Burada çok önemli iki kavram var Persistent volume (Pv) ve Persistent volume Claim (Pvc) bu kavramları başka bir makalede daha detaylı inceleyeceğiz.
Aşağıdaki kod bloğunu “.yaml” uzantılı kaydediyoruz.
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: azure-disk
provisioner: kubernetes.io/azure-disk
parameters:
storageaccounttype: Standard_LRS
kind: Managed
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: mssql-data
annotations:
volume.beta.kubernetes.io/storage-class: azure-disk
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
kubectl apply -f pvc.yaml
Stroge kullanım için hazıır.
kubectl describe pvc mssql-data
Sırada SQL deployment için “.yaml” dosyasını oluşturuyorum. Deployment sırasında istediğiniz sürümü ve edition’ı seçebiliyoruz (“ Enterprise
, Standard
,Express
” ). Aşağıdaki dosya üzerinde gerekli düzenlemeleri yapıyor ve kaydediyoruz.
apiVersion: apps/v1
kind: Deployment
metadata:
name: mssql-deployment
spec:
replicas: 1
selector:
matchLabels:
app: mssql
template:
metadata:
labels:
app: mssql
spec:
terminationGracePeriodSeconds: 30
hostname: mssqlinst
securityContext:
fsGroup: 10001
containers:
- name: mssql
image: mcr.microsoft.com/mssql/server:2019-latest
resources:
requests:
memory: "2G"
cpu: "2000m"
limits:
memory: "2G"
cpu: "2000m"
ports:
- containerPort: 1433
env:
- name: MSSQL_PID
value: "Developer"
- name: ACCEPT_EULA
value: "Y"
- name: MSSQL_SA_PASSWORD
valueFrom:
secretKeyRef:
name: mssql
key: MSSQL_SA_PASSWORD
volumeMounts:
- name: mssqldb
mountPath: /var/opt/mssql
volumes:
- name: mssqldb
persistentVolumeClaim:
claimName: mssql-data
---
apiVersion: v1
kind: Service
metadata:
name: mssql-deployment
spec:
selector:
app: mssql
ports:
- protocol: TCP
port: 1433
targetPort: 1433
type: LoadBalancer
kubectl apply -f sqldeployment.yaml
Aşağıda görüldüğü gibi pod’umuz çalışır durumda.
Aşağıdaki komut ile servis bilgilerini öğreniyoruz ve external ip adresi ile SQL Server’a bağlantı sağlıyoruz.
kubectl get services
SQL Server Management Studio açıyor ve external ip adresini kullanarak erişimi sağlıyorum.
Test amaçlı “cozumpark” adında yeni bir database oluşturdum.
Aşağıda SQL versiyonunu görüyoruz.
Evet görüldüğü gibi basit bir kaç adımda AKS üzerinde SQL deployment’ı tamamlıyoruz. Keyifli okumalar,