{"id":2216,"date":"2025-01-23T13:26:33","date_gmt":"2025-01-23T04:26:33","guid":{"rendered":"https:\/\/www.kwonline.org\/memo2\/?p=2216"},"modified":"2025-01-23T13:26:54","modified_gmt":"2025-01-23T04:26:54","slug":"mount-efs-on-eks-node-with-pvc","status":"publish","type":"post","link":"https:\/\/www.kwonline.org\/memo2\/2025\/01\/23\/mount-efs-on-eks-node-with-pvc\/","title":{"rendered":"AWS EKS \u306b EFS \u3092\u30de\u30a6\u30f3\u30c8\u3059\u308b"},"content":{"rendered":"<p>&nbsp;<br \/>\n\u82e6\u6226\u3057\u305f\u306e\u3067\u30e1\u30e2\u3002<\/p>\n<p>\u65e2\u306b EFS \u306f\u540c\u3058 VPC \u4e0a\u306e EC2 \u30db\u30b9\u30c8\u306b\u30de\u30a6\u30f3\u30c8\u3057\u3066\u4f7f\u3048\u3066\u3044\u308b\u72b6\u614b\u3002<br \/>\n\u3067\u3001\u305d\u308c\u3092 EKS \u30ce\u30fc\u30c9\u306b\u3082\u30de\u30a6\u30f3\u30c8\u3057\u305f\u304b\u3063\u305f\u3002<\/p>\n<p>\u307e\u305a\u306f eksctl \u3067 EKS cluster \u3092\u3064\u304f\u308b\u305f\u3081\u306b eks-cluster-config.yaml \u3092\u66f8\u304f\u3002<\/p>\n<pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\r\napiVersion: eksctl.io\/v1alpha5\r\nkind: ClusterConfig\r\n\r\nmetadata:\r\n  name: my-cluster\r\n  region: ap-northeast-1\r\n  version: &quot;1.30&quot;\r\n\r\nvpc:\r\n  id: vpc-xxxxx\r\n  subnets:\r\n    private:\r\n      ap-northeast-1a:\r\n        id: subnet-yyyyy\r\n      ap-northeast-1c:\r\n        id: subnet-zzzzz\r\n\r\nnodeGroups:\r\n  - name: ng-1\r\n    instanceType: m5.large\r\n    desiredCapacity: 1\r\n    minSize: 1\r\n    maxSize: 1\r\n    privateNetworking: true\r\n    securityGroups:\r\n      attachIDs: &#x5B;sg-aaaaa]\r\n    ssh:\r\n      allow: true\r\n      publicKeyName: mykey001\r\n    volumeSize: 50\r\n    volumeType: gp2\r\n    labels:\r\n      role: worker\r\n<\/pre>\n<p>\u3064\u3065\u3044\u3066 kubectl \u3067\u30b9\u30c8\u30ec\u30fc\u30b8\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306e efs-storage-class.yaml \u3092\u66f8\u304f\u3002<\/p>\n<pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\r\napiVersion: storage.k8s.io\/v1\r\nkind: StorageClass\r\nmetadata:\r\n  name: efs-sc\r\nprovisioner: efs.csi.aws.com\r\nparameters:\r\n  provisioningMode: efs-ap\r\n  fileSystemId: fs-bbbbb\r\n  directoryPerms: &quot;777&quot;\r\n  gidRangeStart: &quot;500&quot;\r\n  gidRangeEnd: &quot;2000&quot;\r\n---\r\napiVersion: v1\r\nkind: PersistentVolume\r\nmetadata:\r\n  name: efs-pv\r\nspec:\r\n  capacity:\r\n    storage: 5Gi\r\n  volumeMode: Filesystem\r\n  accessModes:\r\n    - ReadWriteMany\r\n  persistentVolumeReclaimPolicy: Retain\r\n  storageClassName: efs-sc\r\n  csi:\r\n    driver: efs.csi.aws.com\r\n    volumeHandle: fs-bbbbb\r\n<\/pre>\n<p>\u305d\u3057\u305f\u3089 eksctl \u3067 EKS cluster \u3092\u4f5c\u6210\u3002<br \/>\n\u30af\u30e9\u30b9\u30bf\u3068\u30ce\u30fc\u30c9\u4f5c\u6210\u5f8c\u3001kubectl \u3092\u4f7f\u3046\u305f\u3081\u306b .kube\/config \u3092\u751f\u6210\u3059\u308b\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\neksctl create cluster -f eks-cluster-config.yaml\r\naws eks update-kubeconfig --region ap-northeast-1 --name my-cluster\r\n<\/pre>\n<p>\u30af\u30e9\u30b9\u30bf\u306b EFS CSI Driver \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nkubectl apply -k &quot;github.com\/kubernetes-sigs\/aws-efs-csi-driver\/deploy\/kubernetes\/overlays\/stable\/?ref=master&quot;\r\n<\/pre>\n<p>\u30c9\u30e9\u30a4\u30d0\u30fc\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u3089\u30b9\u30c8\u30ec\u30fc\u30b8\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nkubectl apply -f efs-storage-class.yaml\r\n<\/pre>\n<p>\u6700\u5f8c\u306b EFS \u306b\u66f8\u304d\u8fbc\u3080 Pod \u3092\u4f5c\u308b\u3002<br \/>\n\u305d\u306e\u305f\u3081\u306b test-pod.yaml \u3092\u66f8\u304f\u3002<\/p>\n<pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\r\napiVersion: v1\r\nkind: PersistentVolumeClaim\r\nmetadata:\r\n  name: efs-claim\r\nspec:\r\n  accessModes:\r\n    - ReadWriteMany\r\n  storageClassName: efs-sc\r\n  resources:\r\n    requests:\r\n      storage: 5Gi\r\n---\r\napiVersion: v1\r\nkind: Pod\r\nmetadata:\r\n  name: efs-test\r\nspec:\r\n  containers:\r\n    - name: app\r\n      image: almalinux\r\n      command: &#x5B;&quot;\/bin\/sh&quot;]\r\n      args: &#x5B;&quot;-c&quot;, &quot;while true; do echo $(date) &gt;&gt; \/data\/out.txt; sleep 5; done&quot;]\r\n      volumeMounts:\r\n        - name: persistent-storage\r\n          mountPath: \/data\r\n  volumes:\r\n    - name: persistent-storage\r\n      persistentVolumeClaim:\r\n        claimName: efs-claim\r\n<\/pre>\n<p>\u3044\u3056 pod \u3092\u8d77\u52d5\u3002<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nkubectl apply -f test-pod.yaml\r\n<\/pre>\n<p>\u3053\u308c\u3067 EFS \u306b out.txt \u304c\u66f8\u304d\u8fbc\u307e\u308c\u308c\u3070\u6210\u529f\u3002<br \/>\n&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; \u82e6\u6226\u3057\u305f\u306e\u3067\u30e1\u30e2\u3002 \u65e2\u306b EFS \u306f\u540c\u3058 VPC \u4e0a\u306e EC2 \u30db\u30b9\u30c8\u306b\u30de\u30a6\u30f3\u30c8\u3057\u3066\u4f7f\u3048\u3066\u3044\u308b\u72b6\u614b\u3002 \u3067\u3001\u305d\u308c\u3092 EKS \u30ce\u30fc\u30c9\u306b\u3082\u30de\u30a6\u30f3\u30c8\u3057\u305f\u304b\u3063\u305f\u3002 \u307e\u305a\u306f eksctl \u3067 EKS cluster \u3092 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,32,8],"tags":[],"class_list":["post-2216","post","type-post","status-publish","format-standard","hentry","category-aws","category-kubernetes","category-linux"],"_links":{"self":[{"href":"https:\/\/www.kwonline.org\/memo2\/wp-json\/wp\/v2\/posts\/2216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kwonline.org\/memo2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kwonline.org\/memo2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kwonline.org\/memo2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kwonline.org\/memo2\/wp-json\/wp\/v2\/comments?post=2216"}],"version-history":[{"count":6,"href":"https:\/\/www.kwonline.org\/memo2\/wp-json\/wp\/v2\/posts\/2216\/revisions"}],"predecessor-version":[{"id":2222,"href":"https:\/\/www.kwonline.org\/memo2\/wp-json\/wp\/v2\/posts\/2216\/revisions\/2222"}],"wp:attachment":[{"href":"https:\/\/www.kwonline.org\/memo2\/wp-json\/wp\/v2\/media?parent=2216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kwonline.org\/memo2\/wp-json\/wp\/v2\/categories?post=2216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kwonline.org\/memo2\/wp-json\/wp\/v2\/tags?post=2216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}