You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/linux/sql-server-linux-containter-ha-overview.md
+20-21Lines changed: 20 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,10 +47,13 @@ SQL Server vNext supports availability groups on containers in a Kubernetes. For
47
47
48
48
In the image above, a four-node kubernetes clusters host an availability group with three replicas.
49
49
50
-
* One node contains a Kubernetes [*deployment*](http://kubernetes.io/docs/concepts/workloads/controllers/deployment/). The deployent includes the operator and a configuration map. Together these provide the containers, software, and instructions required to deploy SQL Server containers for an availability group.
51
-
* The other three nodes each contain a [StatefulSet](http://kubernetes.io/docs/concepts/workloads/controllers/statefulset/). The StatefulSet contains a SQL Server container, an availability group agent, and a health agent in a Kubernetes [pod](http://kubernetes.io/docs/concepts/workloads/pods/pod-overview/).
52
-
*
53
-
The pod belongs to a Kubernetes [StatefulSet](http://kubernetes.io/docs/concepts/workloads/controllers/statefulset/). Each StatefulSet is configured on one node. A Kubernetes [ConfigMap](http://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/) describes the deployment. A separate ConfigMap describes the availability group. Each of the SQL Server nodes, and the availability group use Kubernetes [secrets] to store credentials and certificates required by the availability group.
50
+
* One node contains a Kubernetes [*deployment*](http://kubernetes.io/docs/concepts/workloads/controllers/deployment/). The deployent includes the operator and a configuration map. Together these provide the container image, software, and instructions required to deploy SQL Server containers for an availability group.
51
+
* The other three nodes each contain a [*StatefulSet*](http://kubernetes.io/docs/concepts/workloads/controllers/statefulset/). The StatefulSet contains a [*pod*](http://kubernetes.io/docs/concepts/workloads/pods/pod-overview/).
52
+
* The pod contains the SQL Server container and an availability group agent. The SQL Server container runs one instance of SQL Server.
53
+
* The Kubernetes cluster has two [*ConfigMaps*](http://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/) describes the deployment.
54
+
* One ConfigMap provides information to the deployment for the operator.
55
+
* The other ConfigMap provides information about the availability group.
56
+
* The cluster stores [*secrets*](http://kubernetes.io/docs/concepts/configuration/secret/) for the passwords, certificates, keys, and other sensitive information.
54
57
55
58
### SQL Server Kubernetes operator
56
59
@@ -60,44 +63,40 @@ The StatfulSet contains:
60
63
61
64
* mssql-server container
62
65
63
-
*health monitor agent conainer
66
+
*AG Agent container
64
67
65
-
* AG Agent container to each pod
68
+
The code for the operator, agents and SQL Server is packaged in a Docker image called `mssql-server-k8s-agents`. This image contains following binaries:
66
69
67
-
The StatefulSet includes the following Kubernetes components:
68
-
69
-
*`mssql-server-k8s-agents` image contains following binaries:
70
-
71
-
*`mssql-server-k8s-operator`
70
+
*`mssql-server-k8s-operator`
72
71
73
72
This process is deployed as a separate Kubernetes deployment. It registers the custom Kubernetes [custom resource](http://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) called `SqlServer` (sqlservers.mssql.microsoft.com). Then it listens for such resources being created or updated in the Kubernetes cluster. For every such event, it creates or updates the Kubernetes resources for the corresponding instance (i.e. StatefulSet, mssql-server-k8s-init-sql job).
74
73
75
-
*`mssql-server-k8s-sqlhealth-agent`
74
+
*`mssql-server-k8s-sqlhealth-agent`
76
75
77
76
This web server serves Kubernetes [liveness probes](http://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) to determine the health of a SQL Server instance. Monitors the health of the local SQL Server instance by calling `sp_server_diagnostics` and comparing the results with your monitor policy.
78
77
79
-
*`mssql-server-k8s-ag-agent-supervisor`
78
+
*`mssql-server-k8s-ag-agent-supervisor`
80
79
81
80
This process spawns `mssql-server-k8s-ag-agent` processes as child processes and terminates them as necessary, based on which AGs the local SQL Server instance is meant to be part of.
82
81
83
-
*`mssql-server-k8s-ag-agent`
82
+
*`mssql-server-k8s-ag-agent`
84
83
85
84
This process monitors the health of an AG replica on a single SQL Server instance and performs failovers.
86
85
87
-
*`mssql-server-k8s-init-sql`
86
+
*`mssql-server-k8s-init-sql`
88
87
89
88
This Kubernetes [job](http://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/) applies a desired state configuration to a SQL Server instance. The job is created by the operator every time a SqlServer resource is created or updated. It ensures that the target SQL Server instance corresponding to the custom resource has the desired configuration described in the resource.
90
89
91
-
For example if any of the following settings are required, it completes them:
92
-
* Update the SA password
93
-
* Creates the SQL login for the agents
94
-
* Creates the DBM endpoint
90
+
For example, if any of the following settings are required, it completes them:
91
+
* Update the SA password
92
+
* Creates the SQL login for the agents
93
+
* Creates the DBM endpoint
95
94
96
-
*`mssql-server-k8s-rotate-creds`
95
+
*`mssql-server-k8s-rotate-creds`
97
96
98
97
This Kubernetes job implements the rotate credentials task. Create this job to request updates to the SA password, agent SQL login password, DBM cert, etc. The SA password is specified as the job parameters. The others are auto-generated.
99
98
100
-
*`mssql-server-k8s-failover`
99
+
*`mssql-server-k8s-failover`
101
100
102
101
A Kubernetes job that implements the manual failover workflow
0 commit comments