カスタムSQL Serverデータベースコンテナイメージを作成しました。ローカルマシン(Windows用Docker for Windows)のコンテナとして実行できます。そのコンテナを実行した後、サーバー名を127.0.0.1:1433としてSQL Server Management Studioから正常に接続できます。Management StudioからKubernetes on Azure(ACS)のSQL Serverコンテナに接続できません
私は、AzureのKubernetesでStatefulSetと同じコンテナを実行しようとしています。
以下はKubernetesのリソースです。
シークレット
apiVersion: v1
kind: Secret
metadata:
name: sqlsecret
type: Opaque
data:
sapassword: base64encodedvalue
ストレージクラス(StatefulSet - 外部ストレージ)(SQL ServerのSAパスワードの場合)
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: azurestorageclass
provisioner: kubernetes.io/azure-disk
parameters:
skuName: Standard_LRS
location: southeastasia
storageAccount: myaccount
外部サービス(だけでなくヘッドレスサービスをしようとしましたが、私は外部から接続する必要がありますポッドからも)
apiVersion: v1
kind: Service
metadata:
name: sqlservice
labels:
name: sqlservice
spec:
ports:
- port: 1433
targetPort: 1433
externalIPs:
- Kubernetes-Cluster-LB-Public-IP-Address-From-Azure-Portal
selector:
role: sqlservice
最後にステートフルセット。
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: sqlserverstatefulset
spec:
serviceName: "sqlservice"
replicas: 1
template:
metadata:
labels:
role: sqlservice
spec:
terminationGracePeriodSeconds: 10
containers:
- name: sqlinux
image: custom-image-from-docker-hub
env:
- name: SA_PASSWORD
valueFrom:
secretKeyRef:
name: sqlsecret
key: sapassword
- name: ACCEPT_EULA
value: "Y"
ports:
- containerPort: 1433
volumeMounts:
- name: sql-persistent-storage
mountPath: /data/db
volumeClaimTemplates:
- metadata:
name: sql-persistent-storage
annotations:
volume.beta.kubernetes.io/storage-class: "azurestorageclass"
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 100Gi
このコマンドを実行してローカルマシンからこれらのリソースをプロビジョニングします(コンテキストがAzureクラスタを指している)。
kubectl create -f c:\sqlkube.yaml
私のすべてのリソースは正常にプロビジョニングされています。すべて緑色で、Kubernetesダッシュボード(kubctl proxy
)では赤色ではありません。 1433をサーバー名としてSQL Server Management Studioで、私が手に:私はLBの公開IPアドレスを入力したとき
は、私はまた、1433
しかし健康プローブを設定し、ポートのためのAzureのロードバランサのためのバランスのルールをロードしています次のエラー。
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - The wait operation timed out.) (Microsoft SQL Server, Error: 258)
何が欠けていますか?