作者:SRE运维博客博客地址:https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/220110850573/相关话题:https://www.cnsre.cn/tags/eks/
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"elasticfilesystem:DescribeAccessPoints",
"elasticfilesystem:DescribeFileSystems"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"elasticfilesystem:CreateAccessPoint"
],
"Resource": "*",
"Condition": {
"StringLike": {
"aws:RequestTag/efs.csi.aws.com/cluster": "true"
}
}
},
{
"Effect": "Allow",
"Action": "elasticfilesystem:DeleteAccessPoint",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/efs.csi.aws.com/cluster": "true"
}
}
}
]
}策略 然后在下一步中点击 创建策略
点击 json 然后将 IAM 策略 填入, 然后点击 下一步:标签
在下一步的标签中,可以根据自己的情况自行填写,然后点击 下一步:审核
名称中填写 AmazonEKS_EFS_CSI_Driver_Policy{{< notice warning "注意" >}}
你可以将 AmazonEKS_EFS_CSI_Driver_Policy 更改为其他名称,但如果更改,请确保在后续步骤中也做出相应更改。
{{< /notice >}}
AmazonEKS_EFS_CSI_Driver_Policy 附加在 eks_node 的角色中,确保eks node拥有efs的权限。
{{< notice warning "注意" >}}
如果你之前创建了 eks 那么在你的角色中会有一个名为 eksctl--nodegrou-NodeInstanceRole-xxxxxxxxx 的角色。
{{< /notice >}}
在角色中搜索 node 然后点击 eksctl--nodegrou-NodeInstanceRole-xxxxxxxxx
在角色中点击 附加策略
搜索之前创建的 EFS 策略 也就是 AmazonEKS_EFS_CSI_Driver_Policy 然后选中,点击最下方的附加策略。
kubectl apply -k "github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-1.3" serviceaccount/efs-csi-controller-sa created
serviceaccount/efs-csi-node-sa created
clusterrole.rbac.authorization.k8s.io/efs-csi-external-provisioner-role created
clusterrolebinding.rbac.authorization.k8s.io/efs-csi-provisioner-binding created
deployment.apps/efs-csi-controller created
daemonset.apps/efs-csi-node created
csidriver.storage.k8s.io/efs.csi.aws.com createdkubectl get pods -A|grep efs
kube-system efs-csi-controller-56f6dc4c76-2lvqf 3/3 Running 0 3m32s
kube-system efs-csi-controller-56f6dc4c76-dxkwl 3/3 Running 0 3m32s
kube-system efs-csi-node-9ttxp 3/3 Running 0 3m32s
kube-system efs-csi-node-hsn94 3/3 Running 0 3m32skubectl edit daemonsets.apps -n kube-system efs-csi-nodeaws-efs-csi-driver 驱动所在的位置
然后将镜像修改为 918309763551.dkr.ecr.cn-north-1.amazonaws.com.cn/eks/aws-efs-csi-driver:v1.3.3
具体如下
efs 点击确认然后进入 EFS 控制台
在控制台中点击 创建文件系统
名称: 根据自己的情况填写
vpc: 一定要创建在跟 eks 同一 VPC 下
可用性和持久性: 根据提示说明创建自己所需要的
如果有更多需求可以点击 自定义来设置更多 如:吞吐量、加密、备份等策略
最后点击 创建
EFS 中选择 网络 --> 安全组 然后复制安全组的ID sg-152XXX
在 EC2 中找到 网络与安全 选择 安全组 然后在搜索框中搜索 sg-152XXX 选中安全组。并选择 入站规则
在入站规则中允许来 EKS 集群来访问 NFS(2049)端口流量。ReadWriteMany 访问模式从多个 Pod 访问它。multiple_pods 示例目录。specs/pv.yaml 文件并将 volumeHandle 值替换为你的 Amazon EFS 文件系统 ID。5Gi。此值不会限制 Amazon EFS 文件系统的大小。specs 目录部署 efs-sc 存储类、efs-claim 持久性卷声明以及 efs-pv 持久性卷。default/efs-claim 声明的持久性卷。STATUS 变为 Bound 之前,请勿继续执行下一步。specs 目录部署 app1 和 app2 示例应用程序。app1 和 app2 Pod 的 STATUS 变为 Running 状态。Running 状态。VolumeHandle 列出。app1 Pod 是否成功将数据写入卷。app2 Pod 在卷中显示的数据与 app1 写入卷的数据相同。StorageClass 清单。
```
curl -o storageclass.yaml https://raw.githubusercontent.com/kubernetes-sigs/aws-efs-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/storageclass.yaml
```
2. 编辑相应文件,将 fileSystemId 的值替换为您的文件系统 ID。
3. 部署存储类。
```
kubectl apply -f storageclass.yaml
```PersistentVolumeClaim 的 Pod 来测试自动预置:74ccf9f566-q5989 替换成来自上一个命令输出中的一个 Pod 的值。Bound 至 PersistentVolumeClaim 的持久性卷:PersistentVolumeClaim 的详细信息。作者:SRE运维博客博客地址:https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/220110850573/相关话题:https://www.cnsre.cn/tags/eks/
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
对于Rails模型,是否可以/建议让一个类的成员不持久保存到数据库中?我想将用户最后选择的类型存储在session变量中。由于我无法从我的模型中设置session变量,我想将值存储在一个“虚拟”类成员中,该成员只是将值传递回Controller。你能有这样的类(class)成员吗? 最佳答案 将非持久属性添加到Rails模型就像任何其他Ruby类一样:classUser扩展解释:在Ruby中,所有实例变量都是私有(private)的,不需要在赋值前定义。attr_accessor创建一个setter和getter方法:classUs
我正在编写一个简单的静态Rack应用程序。查看下面的config.ru代码:useRack::Static,:urls=>["/elements","/img","/pages","/users","/css","/js"],:root=>"archive"map'/'dorunProc.new{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=6400'},File.open('archive/splash.html',File::RDONLY)]}endmap'/pages/search.
我去了这个website查看Rails5.0.0和Rails5.1.1之间的区别为什么5.1.1不再包含:config/initializers/session_store.rb?谢谢 最佳答案 这是删除它的提交:Setupdefaultsessionstoreinternally,nolongerthroughanapplicationinitializer总而言之,新应用没有该初始化器,session存储默认设置为cookie存储。即与在该初始值设定项的生成版本中指定的值相同。 关于
我正在关注Hartl的railstutorial.org并已到达11.4.4:Imageuploadinproduction.我做了什么:注册亚马逊网络服务在AmazonIdentityandAccessManagement中,我创建了一个用户。用户创建成功。在AmazonS3中,我创建了一个新存储桶。设置新存储桶的权限:权限:本教程指示“授予上一步创建的用户读写权限”。但是,在存储桶的“权限”下,未提及新用户名。我只能在每个人、经过身份验证的用户、日志传送、我和亚马逊似乎根据我的名字+数字创建的用户名之间进行选择。我已经通过选择经过身份验证的用户并选中了上传/删除和查看权限的框(而不
我正在使用mechanize登录网站,然后检索页面。我遇到了一些问题,我怀疑这是由于cookie中的某些值造成的。当Mechanize登录网站时,我假设它存储了cookie。如何通过Mechanize打印出存储在cookie中的所有数据? 最佳答案 代理有一个cookie方法。agent=Mechanize.newpage=agent.get("http://www.google.com/")agent.cookiesagent.cookies.to_scookie返回一个Mechanize::Cookiesobject
我以为它们存储在cookie中-但不,检查cookie没有任何结果。session也不存储它们。那么,我在哪里可以找到它们?我需要这个来直接设置它们(而不是通过flashhash)。 最佳答案 它们存储在inyoursessionstore.自rails2.0以来的默认设置是cookie存储,但请检查config/initializers/session_store.rb以检查您是否使用默认设置以外的东西。 关于ruby-on-rails-闪存消息存储在哪里?,我们在StackOverf
对于我正在编写的Rails3应用程序,我正在考虑从本地文件系统上的XML、YAML或JSON文件中读取一些配置数据。重点是:我应该把这些文件放在哪里?Rails应用程序中是否有用于存储此类内容的默认位置?附带说明一下,我的应用程序部署在Heroku上。 最佳答案 我经常做的是:如果文件是通用配置文件:我在目录/config中创建一个YAML文件,每个环境有一个上层key如果我为每个环境(大项目)创建一个文件:我为每个环境创建一个YAML并将它们存储在/config/environments/然后我在加载YAML的地方创建了一个初始化
有没有办法将RubyVM::InstructionSequence存储到文件中并稍后读取?我尝试了Marshal.dump但没有成功。我收到以下错误:`dump':no_dump_dataisdefinedforclassRubyVM::InstructionSequence(TypeError) 最佳答案 是的,有办法。首先,您需要使InstructionSequence的load方法可访问,默认情况下该方法是禁用的:require'fiddle'classRubyVM::InstructionSequence#RetrieveR
下面是我用来从应用程序中解析CSV的代码,但我想解析位于AmazonS3存储桶中的文件。当推送到Heroku时它也需要工作。namespace:csvimportdodesc"ImportCSVDatatoInventory."task:wiwt=>:environmentdorequire'csv'csv_file_path=Rails.root.join('public','wiwt.csv.txt')CSV.foreach(csv_file_path)do|row|p=Wiwt.create!({:user_id=>row[0],:date_worn=>row[1],:inven