资讯 更多 >>
AWS简单搭建使用EKS二 天天最新
长5305mm,后排座椅可放平,配5.6L...
世界热讯:想取保候审怎么办手续
秦钰恒:黄金日内反复三连空,美盘...
【省青商会·团体会员动态】潮州市...
【环球新要闻】独家资金:今日主力...
天天速讯:广东自己约科目四成功了,...
环球实时:米米号是啥
美国首任国家网络总监正式卸任-动态
烟台到大连的船票时刻表查询_烟台到大连
动态更多 >>
湖南房地产市场平稳发展 长沙...
新智认知: 新智认知数字科技股份有...
郑州银行董秘回复:我行董事长是否...
你们,温暖了2021
西安市新增27个中风险地区 目前有1...
广西新增本土确诊病例1例
哈尔滨市全域均为低风险地区
寒潮将影响我国中东部地区 四川盆...
昆明至哈尔滨一航班发现1名入境复阳...
陕西研考:封控区内考生在原报考点...
会展 更多 >>
美籍酿酒师在崇礼:中国是第二故乡...
河南项城报告2名疑似新冠肺炎病例 ...
浙江绍兴确诊病例首次零新增 上虞...
广西东兴实行全员居家隔离 启动口...
新疆全方位推进乡村振兴 “富春山...
云南瑞丽市主城区全员核酸检测结果...
内蒙古满洲里累计治愈出院本土确诊...
孙海洋夫妻驱车山东阳谷:还在为孙...
大国工匠追梦“玉米强国”40载:用...
让南海“海洋热带雨林”斑斓多彩
专题报道 
当前位置: 资讯 > >> 正文
 
AWS简单搭建使用EKS二 天天最新
来源:腾讯云     时间:2023-02-17 03:07:59

背景:

紧接AWS简单搭建使用EKS一,eks集群简单搭建完成。需要搭建有状态服务必然就用到了storageclass 存储类,这里用ebs记录以下

AWS简单搭建使用EKS二

存储类选型:

参照官方文档:https://kubernetes.io/zh-cn/docs/concepts/storage/storage-classes/#the-storageclass-resource

image.png

关于eks的存储类:

参照:存储类


(相关资料图)

image.png

个人这里习惯用EBS块存储!

使用 AWS CLI 创建 Amazon EBS CSI 插件 IAM 角色

参照:https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/csi-iam-role.html

查看集群的 OIDC 提供商 URL

查看集群的 OIDC 提供商 URL,将 my-cluster 替换为您的集群名称。如果命令的输出为 None,请查看先决条件:

image.png
image.png

这里采用了AWS CLI方式添加:

aws eks describe-cluster \  --name my-cluster \  --query "cluster.identity.oidc.issuer" \  --output text
image.png

输出内容如下:

https://oidc.eks.cn-north-1.amazonaws.com.cn/id/xxxxxxxxx

注意: url中的 加粗黑体的关键词 https://oidc.eks.cn-north-1.amazonaws.com.cn/id/xxxxxxxxx

创建 IAM 角色

生成aws-ebs-csi-driver-trust-policy.json

将以下内容复制到名为** _aws-ebs-csi-driver-trust-policy_.json 的文件中。请将 _111122223333_ 替换为您的账户 ID,将_region-code_替换为您的 AWS 区域,并将 _EXAMPLED539D4633E53DE1B71EXAMPLE**_ 替换为上一步骤中返回的值。如果您的集群位于 AWS GovCloud(美国东部)或 AWS GovCloud(美国西部)AWS 区域,则将 arn:aws: 替换为 arn:aws-us-gov:

{  "Version": "2012-10-17",  "Statement": [    {      "Effect": "Allow",      "Principal": {        "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"      },      "Action": "sts:AssumeRoleWithWebIdentity",      "Condition": {        "StringEquals": {          "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com",          "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa"        }      }    }  ]}

由于实例在中国区我的json内容如下:

image.png

注意箭头指向的关键词的替换!

创建角色

aws iam create-role \  --role-name AmazonEKS_EBS_CSI_DriverRole \  --assume-role-policy-document file://"aws-ebs-csi-driver-trust-policy.json"
image.png

AWS 托管策略附加到角色

注意arn:aws地域区分 arn:aws-cn

aws iam attach-role-policy \  --policy-arn arn:aws-cn:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \  --role-name AmazonEKS_EBS_CSI_DriverRole
image.png

官方有使用自定义 KMS 密钥进行加密的步骤,不需要忽略:

image.png
kubectl annotate serviceaccount ebs-csi-controller-sa \    -n kube-system \    eks.amazonaws.com/role-arn=arn:aws-cn:iam::xxxxxxxx:role/AmazonEKS_EBS_CSI_DriverRole

注:这个不用执行的其实有问题了在说

管理 Amazon EKS 附加组件

参照:添加 Amazon EBS CSI 附加组件

aws eks create-addon --cluster-name xxxx --addon-name aws-ebs-csi-driver \  --service-account-role-arn arn:aws:iam::xxxx:role/AmazonEKS_EBS_CSI_DriverRole
image.png

aws cli版本有问题貌似?参照https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html更新aws cliV2

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install
image.png
image.png
/usr/local/bin/aws eks create-addon --cluster-name xxxx --addon-name aws-ebs-csi-driver   --service-account-role-arn arn:aws-cn:iam::xxxx:role/AmazonEKS_EBS_CSI_DriverRole

注意arn:aws-cn地域

image.png
kubectl get pods -n kube-system
image.png

eks控制台点开对应集群-插件标签,可以看到多了aws-ebs-csi-driver的插件(插件名称可以自定义)

image.png

这个时候获取storageclass依然是没有的:

[root@ip-10-0-28-172 ~]# kubectl get scNo resources found

部署示例应用程序并验证 CSI 驱动程序是否正常运行

参照:部署示例应用程序并验证 CSI 驱动程序是否正常运行

将 Amazon EBS 容器存储接口 (CSI) 驱动程序 GitHub 存储库克隆到您的本地系统。git clone https://github.com/kubernetes-sigs/aws-ebs-csi-driver.git切换到dynamic-provisioning 示例目录cd aws-ebs-csi-driver/examples/kubernetes/dynamic-provisioning/从 manifests 目录部署 ebs-sc 存储类、ebs-claim 持久性卷声明和 app 示例应用程序kubectl apply -f manifests/kubectl get sckubectl get pods
image.png
简单验证查看与验证
image.png
kubectl exec -it app -- cat /data/out.txt
image.png
删除实例cd manifestskubectl delete -f pod.yamlkubectl delete -f claim.yaml关于storageclass紧接上文manifests目录下,cat storageclass.yaml,其他配置默认就好,name可以修改成自己新要的名字,这里就默认ebs-sc了。后续有状态服务sc默认名为ebs-sc
image.png
kubectl get sc
image.png

注意:sc =storageclass

关键词: https 网络安全 JSON Kubernetes

热门推荐
猜你喜欢