如何在AWS EKS托管的Pod内安装外部Windows文件共享?

时间:2019-05-18 00:11:23

标签: amazon-web-services kubernetes docker-volume eks

我们正在寻找可行的选项来映射 kubernetes + AWS-EKS 托管的Docker容器中的外部Windows文件共享,并且其中很少有选项。可以使用IP地址访问位于同一VPN中的Windows文件共享

在EKS上kubernetes esp本身不提供任何支持的情况下,我们尝试使用Flexvolumes和持久性卷。但这需要在节点上安装cifs驱动程序,据我所知,EKS不提供被管理节点。

是否不需要在节点级别安装自定义驱动器(包括CIF等)的任何选项?

2 个答案:

答案 0 :(得分:0)

您可以修改cloudformation堆栈以在启动后安装驱动程序,请参阅 https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/windows-public-preview/amazon-eks-cfn-quickstart-windows.yaml

它引用了https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/windows-public-preview/amazon-eks-windows-nodegroup.yaml,其中包含以下Powershell启动行

<powershell>
[string]$EKSBinDir = "$env:ProgramFiles\Amazon\EKS"
[string]$EKSBootstrapScriptName = 'Start-EKSBootstrap.ps1'
[string]$EKSBootstrapScriptFile = "$EKSBinDir\$EKSBootstrapScriptName"
[string]$cfn_signal = "$env:ProgramFiles\Amazon\cfn-bootstrap\cfn-signal.exe"
& $EKSBootstrapScriptFile -EKSClusterName ${ClusterName} ${BootstrapArguments} 3>&1 4>&1 5>&1 6>&1
$LastError = if ($?) { 0 } else { $Error[0].Exception.HResult }
& $cfn_signal --exit-code=$LastError `
  --stack="${AWS::StackName}" `
  --resource="NodeGroup" `
  --region=${AWS::Region}
</powershell>

添加您的自定义安装要求,并在启动节点时使用此新堆栈

答案 1 :(得分:0)

由于某些原因,我们最终最终使用了SharpCifs.Std的代码方法,包括:

  • 避免集群管理员参与任何可能的环境配置问题,尤其是在Kubernetes集群中安装基于Flexvolume的CIFS驱动程序。
  • 本机代码证明是更好的控制
  • 与nuget包一起提供
  • 与.NET Standard 2.x兼容,这意味着.NET Core 2.x
  • 文件共享操作不涉及读/写操作