48 lines
2.2 KiB
YAML
48 lines
2.2 KiB
YAML
# Source: https://kubernetes.io/docs/setup/production-environment/windows/user-guide-windows-containers/
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: win-webserver
|
|
labels:
|
|
app: win-webserver
|
|
spec:
|
|
ports:
|
|
# the port that this service should serve on
|
|
- port: 80
|
|
targetPort: 80
|
|
selector:
|
|
app: win-webserver
|
|
type: NodePort
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: win-webserver
|
|
name: win-webserver
|
|
spec:
|
|
replicas: 2
|
|
selector:
|
|
matchLabels:
|
|
app: win-webserver
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: win-webserver
|
|
name: win-webserver
|
|
spec:
|
|
containers:
|
|
- name: windowswebserver
|
|
image: "mcr.microsoft.com/windows/servercore:{{ .Values.image.tag }}"
|
|
command:
|
|
- powershell.exe
|
|
- -command
|
|
- "<#code used from https://gist.github.com/19WAS85/5424431#> ; $$listener = New-Object System.Net.HttpListener ; $$listener.Prefixes.Add('http://*:80/') ; $$listener.Start() ; $$callerCounts = @{} ; Write-Host('Listening at http://*:80/') ; while ($$listener.IsListening) { ;$$context = $$listener.GetContext() ;$$requestUrl = $$context.Request.Url ;$$clientIP = $$context.Request.RemoteEndPoint.Address ;$$response = $$context.Response ;Write-Host '' ;Write-Host('> {0}' -f $$requestUrl) ; ;$$count = 1 ;$$k=$$callerCounts.Get_Item($$clientIP) ;if ($$k -ne $$null) { $$count += $$k } ;$$callerCounts.Set_Item($$clientIP, $$count) ;$$ip=(Get-NetAdapter | Get-NetIpAddress); $$header='<html><body><H1>Windows Container Web Server</H1>' ;$$callerCountsString='' ;$$callerCounts.Keys | % { $$callerCountsString+='<p>IP {0} callerCount {1} ' -f $$ip[1].IPAddress,$$callerCounts.Item($$_) } ;$$footer='</body></html>' ;$$content='{0}{1}{2}' -f $$header,$$callerCountsString,$$footer ;Write-Output $$content ;$$buffer = [System.Text.Encoding]::UTF8.GetBytes($$content) ;$$response.ContentLength64 = $$buffer.Length ;$$response.OutputStream.Write($$buffer, 0, $$buffer.Length) ;$$response.Close() ;$$responseStatus = $$response.StatusCode ;Write-Host('< {0}' -f $$responseStatus) } ; "
|
|
nodeSelector:
|
|
kubernetes.io/os: windows
|
|
tolerations:
|
|
- key: cattle.io/os
|
|
operator: "Equal"
|
|
value: "windows"
|
|
effect: NoSchedule
|