Skip to content
This repository was archived by the owner on Jan 11, 2023. It is now read-only.

Commit 8b5852e

Browse files
JiangtianLijackfrancis
authored andcommitted
Switch to RS3 Windows in Kubernetes cluster (#1686)
* Use RS3 Windows Server image * Fix HNS network config * Fix network setup * use master subnet gateway instead of pod gateway in hnsnetwork config * Adds proper management subnet injection. * Adds port mapping capability to the config for the new WinCNI. * Simplify mgmtsubnet config and remove unused kubeproxy parameter * Switch from preview image to public image * Use 1709 tag in Dockerfile * Use servercore for POD infra container since 1709 nanoserver doesn't have powershell * Remove patching winnat.sys * Validate Kubernetes Windows version * Update version support in windows script * Fix issue in restart kubelet/kubeproxy service * Update windows build script * Use nanoserver in POD infra container * Modify windows zip build process * Modify windows zip build script * Update windows zip name * Update windows zip location * Fix unit test * Update windows test image * Fix windows iis test
1 parent 25a3533 commit 8b5852e

File tree

15 files changed

+285
-184
lines changed

15 files changed

+285
-184
lines changed

docs/kubernetes/windows.md

+11-11
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44

55
Here are the steps to deploy a simple Kubernetes cluster with Windows:
66

7-
1. [install acs-engine](../acsengine.md#downloading-and-building-acs-engine)
8-
2. [generate your ssh key](../ssh.md#ssh-key-generation)
9-
3. [generate your service principal](../serviceprincipal.md)
7+
1. [install acs-engine](../acsengine.md#downloading-and-building-acs-engine)
8+
2. [generate your ssh key](../ssh.md#ssh-key-generation)
9+
3. [generate your service principal](../serviceprincipal.md)
1010
4. edit the [Kubernetes windows example](../../examples/windows/kubernetes.json) and fill in the blank strings
11-
5. [generate the template](../acsengine.md#generating-a-template)
12-
6. [deploy the output azuredeploy.json and azuredeploy.parameters.json](../acsengine.md#deployment-usage)
11+
5. [generate the template](../acsengine.md#generating-a-template)
12+
6. [deploy the output azuredeploy.json and azuredeploy.parameters.json](../acsengine.md#deployment-usage)
1313
7. Temporary workaround when deploying a cluster in a custom VNET with Kubernetes 1.6.0:
1414
1. After a cluster has been created in step 6 get id of the route table resource from Microsoft.Network provider in your resource group.
1515
The route table resource id is of the format:
@@ -46,13 +46,13 @@ Once your Kubernetes cluster has been created you will have a resource group con
4646

4747
1. 1 master accessible by SSH on port 22 or kubectl on port 443
4848

49-
2. a set of windows and linux nodes. The windows nodes can be accessed through an RDP SSH tunnel via the master node. To do this, follow these [instructions](../ssh.md#create-port-80-tunnel-to-the-master), replacing port 80 with 3389. Since your windows machine is already using port 3389, it is recommended to use 3390 to Windows Node 0, 10.240.245.5, 3391 to Windows Node 1, 10.240.245.6, and so on as shown in the following image:
49+
2. a set of windows and linux nodes. The windows nodes can be accessed through an RDP SSH tunnel via the master node. To do this, follow these [instructions](../ssh.md#create-port-80-tunnel-to-the-master), replacing port 80 with 3389. Since your windows machine is already using port 3389, it is recommended to use 3390 to Windows Node 0, 10.240.245.5, 3391 to Windows Node 1, 10.240.245.6, and so on as shown in the following image:
5050

51-
![Image of Windows RDP tunnels](../images/rdptunnels.png)
51+
![Image of Windows RDP tunnels](../images/rdptunnels.png)
5252

5353
The following image shows the architecture of a container service cluster with 1 master, and 2 agents:
5454

55-
![Image of Kubernetes cluster on azure with Windows](../images/kubernetes-windows.png)
55+
![Image of Kubernetes cluster on azure with Windows](../images/kubernetes-windows.png)
5656

5757
In the image above, you can see the following parts:
5858

@@ -80,7 +80,7 @@ After completing this walkthrough you will know how to:
8080
4. then click on the "Microsoft.Template"
8181
5. now you can copy the output FQDNs and sample SSH commands
8282

83-
![Image of docker scaling](../images/portal-kubernetes-outputs.png)
83+
![Image of docker scaling](../images/portal-kubernetes-outputs.png)
8484

8585
2. SSH to the master FQDN obtained in step 1.
8686

@@ -122,7 +122,7 @@ After completing this walkthrough you will know how to:
122122
spec:
123123
containers:
124124
- name: windowswebserver
125-
image: microsoft/windowsservercore
125+
image: microsoft/windowsservercore:1709
126126
command:
127127
- powershell.exe
128128
- -command
@@ -219,7 +219,7 @@ After completing this walkthrough you will know how to:
219219

220220
8. Type `watch kubectl get pods` to watch the deployment of the service that takes about 10 minutes. Once running, type `kubectl get svc` and for the app names `aspnet-webapi-todo` copy the external address and open in your webbrowser. As shown in the following image, the traffic flows from your webbrowser to the ASP.Net WebAPI frontend and then to the hybrid container.
221221

222-
![Image of hybrid traffic flow](../images/hybrid-trafficflow.png)
222+
![Image of hybrid traffic flow](../images/hybrid-trafficflow.png)
223223

224224
## Troubleshooting
225225

parts/kubernetesmastervars.t

+2-2
Original file line numberDiff line numberDiff line change
@@ -278,8 +278,8 @@
278278
"kubeBinariesVersion": "[parameters('kubeBinariesVersion')]",
279279
"windowsTelemetryGUID": "[parameters('windowsTelemetryGUID')]",
280280
"agentWindowsPublisher": "MicrosoftWindowsServer",
281-
"agentWindowsOffer": "WindowsServer",
282-
"agentWindowsSku": "2016-Datacenter-with-Containers",
281+
"agentWindowsOffer": "WindowsServerSemiAnnual",
282+
"agentWindowsSku": "Datacenter-Core-1709-with-Containers-smalldisk",
283283
"agentWindowsVersion": "[parameters('agentWindowsVersion')]",
284284
"singleQuote": "'",
285285
"windowsCustomScriptSuffix": " $inputFile = '%SYSTEMDRIVE%\\AzureData\\CustomData.bin' ; $outputFile = '%SYSTEMDRIVE%\\AzureData\\CustomDataSetupScript.ps1' ; Copy-Item $inputFile $outputFile ; Invoke-Expression('{0} {1}' -f $outputFile, $arguments) ; "

0 commit comments

Comments
 (0)