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
<h1align="center"style="margin-top: 0;">Using Azure Public DNS provider</h1>
2
+
3
+
This document outlines how to configure k8gb to use the Azure Public DNS provider. Azure Private DNS is not supported as it does not support NS records at this time. For private DNS scenarios in Azure, please refer to the [Windows DNS](deploy_azuredns.md) documentation and consider implementing it using VM-based DNS services such as Windows DNS or BIND.
4
+
5
+
### external-dns credentials for Azure DNS
6
+
7
+
In this example, we will use a registered app in Microsoft Entra ID and it's corresponding Client ID / Client Secret to authenticate with the Azure DNS zone. All of the [supported authentication fields supported by external-dns](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/azure.md#configuration-file) are supported by k8gb and can be used in the `azuredns` section of the `k8gb` Helm chart values.yaml file.
8
+
9
+
## Sample solution
10
+
11
+
In this sample solution we will deploy two private AKS clusters in different regions. A workload will be deployed to both clusters and exposed to the internet with the help of k8gb and Azure Public DNS.
12
+
13
+
## Reference Setup
14
+
15
+
The reference setup includes two private AKS clusters that can be deployed on two different regions for load balancing or to provide a failover solution.
16
+
17
+
Configurable resources:
18
+
19
+
* Resource groups
20
+
* VNet and subnets
21
+
* Managed Identity
22
+
* Clusters
23
+
24
+
## Run the sample
25
+
26
+
* To run the provided sample, please use the provided Makefile [here](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/azuredns/).
27
+
* Deploys all the required infrastructure and configurations
28
+
* Before executing, please fill all the local variables in the scripts with the correct naming for the resources in order to avoid having problems with your Azure policies
29
+
* Scripts will use Az CLI, please ensure that it is installed and logged when trying to execute the command
30
+
*[Microsoft Learn](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli"Install Az CLI")
31
+
32
+
### Deploy infrastructure
33
+
34
+
This action will create resource groups, vnets and private AKS clusters to run all required workloads
35
+
36
+
```sh
37
+
make deploy-infra
38
+
```
39
+
40
+
### Setup clusters
41
+
42
+
Install required Ingress controller in both clusters in order to deploy K8GB and demo application
43
+
44
+
```sh
45
+
make setup-clusters
46
+
```
47
+
48
+
### Install K8gb
49
+
50
+
This action will install K8gb in both clusters using the provided [sample](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/azuredns/k8gb/) values.yaml for each cluster. Please ensure that the are correctly updated before execution
51
+
52
+
```sh
53
+
make deploy-k8gb
54
+
```
55
+
56
+
### Install demo app
57
+
58
+
Deploys the sample Podinfo workload with failover GLSB configured using annotations in the Ingress resource [samples](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/azuredns/demo/).
59
+
Ensure that the hosts on the samples are correctly updated before execution
60
+
61
+
```sh
62
+
make deploy-demo
63
+
```
64
+
65
+
### Destroy lab
66
+
67
+
* Destroys the lab environment created for this sample
Copy file name to clipboardExpand all lines: docs/deploy_windowsdns.md
+28-25Lines changed: 28 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,20 +1,18 @@
1
-
<h1align="center"style="margin-top: 0;">Using K8GB on Azure</h1>
1
+
<h1align="center"style="margin-top: 0;">Using K8GB with a GSS-TSIG compatible DNS provider</h1>
2
2
3
-
## Sample solution
3
+
## Sample solution: Azure based private deployment with Windows DNS integration
4
4
5
-
Sample solution will create a common hub and spoke architecture with two AKS clusters in different regions
6
-
7
-

8
-
9
-
# Azure based deployment with Windows DNS integration
5
+
In this sample solution we will create a common hub and spoke architecture with two private AKS clusters in different regions. The same pattern can be used with any other Kubernetes distribution and any other DNS provider that supports GSS-TSIG.
10
6
11
7
Here we provide an example of k8gb deployment in Azure environment with Windows DNS as edgeDNS provider.
12
8
13
9
## Reference Setup
14
10
15
-
The reference setup includes two AKS clusters that can deployed on two different regions for load balancing or provide a failover solution.
11
+
The reference setup includes two private AKS clusters that can be deployed on two different regions for load balancing or to provide a failover solution.
16
12
17
-
The solution design can be found [here](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/azure/).
13
+

14
+
15
+
The solution design can be found [here](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/windowsdns/).
18
16
19
17
Configurable resources:
20
18
@@ -30,15 +28,15 @@ Configurable resources:
30
28
* There are several tutorials available online, but this Microsoft Learn article will probably help you out
31
29
*[Microsoft Learn](https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/deploy/install-active-directory-domain-services--level-100-"Install Active Directory")
32
30
33
-
* To run the provided sample, please use the provided Makefile [here](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/azure/).
31
+
* To run the provided sample, please use the provided Makefile [here](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/windowsdns/).
34
32
* Deploys all the required infrastructure and configurations
35
-
* Before execute, please fill all the local variables in the scripts with the correct naming for the resources in order to avoid having problems with your azure policies
36
-
* Scripts will use AZ CLI, ensure that is installed and logged when trying to execute the command
37
-
*[Microsoft Learn](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli"Install AZ CLI")
33
+
* Before executing, please fill all the local variables in the scripts with the correct naming for the resources in order to avoid having problems with your Azure policies
34
+
* Scripts will use Az CLI, please ensure that it is installed and logged when trying to execute the command
35
+
*[Microsoft Learn](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli"Install Az CLI")
38
36
39
-
### Deploy infrastructure
37
+
### Deploy infrastructure
40
38
41
-
This action will create resource groups, vnets, peering between vnets and AKS clusters to run all required workloads
39
+
This action will create resource groups, vnets, peering between vnets and private AKS clusters to run all required workloads
42
40
43
41
```sh
44
42
make deploy-infra
@@ -54,19 +52,21 @@ make setup-clusters
54
52
55
53
### Configure GSS-TSIG authentication for DNS updates
56
54
57
-
Before deploying K8GB and the demo workload, ensure required configurations on Windows DNS
55
+
Before deploying K8GB and the demo workload, ensure required configurations on Windows DNS
58
56
59
57
#### Domain Controller config
60
58
61
59
* Ensure that the Network Security is configured only for AES256
* Ensure that the DNS Zone has the option "Allow zone transfers" check with the option "To any server" under the tab Zone Transfers on the zone properties
68
68
69
-

69
+

70
70
71
71
* Create a new Active Directory user
72
72
* The user should be created with "Encryptions options" for Kerberos AES256 encryption
@@ -78,7 +78,7 @@ Before deploying K8GB and the demo workload, ensure required configurations on W
78
78
* ExternalDNS configuration
79
79
* For communication with WindowsDNS, ExternalDNS should be configured with the RFC2136 provider with GSS-TSIG option
80
80
*[External DNS - RFC2126](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/rfc2136.md"RFC2136 documentation")
81
-
* A sample values.yaml for K8GB configuration can be found [here](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/azure/k8gb/).
81
+
* A sample values.yaml for K8GB configuration can be found [here](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/windowsdns/k8gb/).
82
82
* Ensure that the following properties are updated with your values:
83
83
* dnsZone
84
84
* edgeDNSZone
@@ -87,12 +87,13 @@ Before deploying K8GB and the demo workload, ensure required configurations on W
87
87
* kerberos-username
88
88
* kerberos-password
89
89
* kerberos-realm
90
-
* At this moment ExternalDNS doesn't provide a way to use secrets as the source for the kerberos-password setting, so if you store the manifest in a git repo, please ensure that only required persons can access it
90
+
* At this moment ExternalDNS doesn't provide a way to use secrets as the source for the kerberos-password setting, so you must ensure this is stored in a secure way
91
+
91
92
```yaml
92
93
rfc2136:
93
94
enabled: true
94
95
rfc2136Opts:
95
-
- host: AD-DC.mbcpk8gb.local #when using gssTsig, use the FQDN of the host, not an IP
96
+
- host: AD-DC.k8gb.local #when using gssTsig, use the FQDN of the host, not an IP
96
97
- port: 53
97
98
rfc2136auth:
98
99
insecure:
@@ -107,28 +108,30 @@ rfc2136:
107
108
gssTsigCreds:
108
109
- kerberos-username: ad-user-account
109
110
- kerberos-password: ad-user-account-password
110
-
- kerberos-realm: mbcpcloud.lab
111
+
- kerberos-realm: cloud.lab
111
112
```
112
113
113
114
### Install K8gb
114
115
115
-
This action will install K8gb in both clusters using the provided [sample](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/azure/k8gb/) values.yaml for each cluster. Please ensure that the are correctly updated before execution
116
+
This action will install K8gb in both clusters using the provided [sample](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/windowsdns/k8gb/) values.yaml for each cluster. Please ensure that the are correctly updated before execution
116
117
117
118
```sh
118
119
make deploy-k8gb
119
120
```
120
121
121
122
### Install demo app
122
123
123
-
Deploys the sample Podinfo workload with failover GLSB configured using annotations in the Ingress resource [samples](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/azure/demo/).
124
+
Deploys the sample Podinfo workload with failover GLSB configured using annotations in the Ingress resource [samples](https://github.com/k8gb-io/k8gb/tree/master/docs/examples/windowsdns/demo/).
124
125
Ensure that the hosts on the samples are correctly updated before execution
125
126
126
127
```sh
127
128
make deploy-demo
128
129
```
129
130
130
131
### Destroy lab
132
+
131
133
* Destroys the lab environment created for this sample
0 commit comments