Прикрепите общий доступ к FSx с помощью модулей Windows

#powershell #kubernetes #kubernetes-pod

Вопрос:

Я пытаюсь подключить общий ресурс AWS FSx к своим модулям Windows. когда я выполняю внутри запущенных модулей Windows и запускаю команду net use или New-Psdrive, я могу заставить ее работать. Однако, если я попытаюсь сделать это с помощью файла манифеста развертывания, это не сработает. Модули работают, однако я не вижу подключенного к ним накопителя Ps.

 apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: win-webserver
  name: win-webserver
  namespace: win-fsx
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:ltsc2019
        command:
        - powershell.exe
        - -command
        - "$secpasswd = ConvertTo-SecureString “password” -AsPlainText -Force; $mycreds = New-Object System.Management.Automation.PSCredential (“username”, $secpasswd); New-PSDrive –Name “P” –PSProvider FileSystem –Root “\\fsxshare\share” –Persist -Credential $mycreds; <#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