Amazon EFSCSIドライバー
EKSからEFSを操作するためのツール的な?
参考
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/storage-classes.html
https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/efs-csi.html
StorageClassがデプロイされているか確認
1.14以降であればデフォルトでデプロイされている
未満であれば、上記URLから手動でデプロイする必要がある
1 |
kubectl get storageclass |
出力結果
1 2 |
名前提供者の年齢 gp2(デフォルト)kubernetes.io/aws-ebs 11h |
EFSCSIドライバーをデプロイ
1 2 |
kubectl apply -k "github.com/kubernetes-sigs/aws-efs-csi-driver /deploy/kubernetes/overlays/stable/?ref=master" |
DeamonSetがデプロイされているか確認
1 |
kubectl get daemonsets efs-csi-node --namespace = kube-system |
出力結果
1 2 |
名前必要な現在の準備ができて最新の利用可能なノードセレクターの年齢 efs-csi-node 2 2 0 2 0 beta.kubernetes.io/os=linux 91s |
CSIドライバーがデプロイされているか確認
1 |
kubectl get csidrivers.storage.k8s.io |
出力けっか
1 2 |
で作成された名前 efs.csi.aws.com 2019-10-27T08:08:04Z |
EKSが動作しているVPCIDを確認
1 2 |
aws eks describe-cluster --name k8s-cluster --query cluster.resourcesVpcConfig.vpcId --output text |
出力結果
1 |
vpc-059ad19ca888486c4 |
IP範囲(CIDRブロック)を確認
1 |
aws ec2 describe-vpcs --vpc-ids vpc-059ad19ca888486c4 |
出力結果
1 2 3 4 5 6 7 8 |
"CidrBlockAssociationSet":[ { "AssociationId": "vpc-cidr-assoc-0a2a4f054ca33b5f0"、 "CidrBlock": "192.168.0.0/16"、 "CidrBlockState":{ 「状態」:「関連」 } } |
セキュリティグループの作成
インバウンドルールの作成
EFSの作成
サンプルアプリを活用して動作確認
ドライバーのクローン
1 |
git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git |
ディレクトリ移動
1 |
cd aws-efs-csi-driver / examples / kubernetes / multiple_pods / |
ファイルシステムID確認
1 |
aws efs describe-file-systems --query "FileSystems [*]。FileSystemId"-出力テキスト |
出力結果
1 |
fs-32b4854b |
pv.yamlのvolumeHandle
を上記のファイルシステムIDへ変更
specs / pv.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<span class="na">apiVersion </span><span class="pi">:</span> <span class="s">V1の</span> <span class="na">種類</span><span class="pi">:</span> <span class="s">PersistentVolume </span> <span class="na">メタデータ</span><span class="pi">:</span> <span class="na">名前</span><span class="pi">:</span> <span class="s">EFS-PV </span> <span class="na">仕様</span><span class="pi">:</span> <span class="na">容量</span><span class="pi">:</span> <span class="na">ストレージ</span><span class="pi">:</span> <span class="s">5Gi </span> <span class="na">volumeMode </span><span class="pi">:</span> <span class="s">ファイルシステム</span> <span class="na">accessModes </span><span class="pi">:</span> <span class="pi">- </span> <span class="s">ReadWriteMany </span> <span class="na">persistentVolumeReclaimPolicy </span><span class="pi">:</span> <span class="s">保持</span> <span class="na">storageClassName </span><span class="pi">:</span> <span class="s">EFS-SCの</span> <span class="na">CSIを</span><span class="pi">:</span> <span class="na">ドライバ</span><span class="pi">:</span> <span class="s">efs.csi.aws.com </span> <span class="na">volumeHandle </span><span class="pi">:</span> <span class="s">FS- 32b4854b</span> |
pv、pvc.storageclass、sampleappデプロイ
1 |
kubectl apply -f specs / |
出力結果
1 2 3 4 5 |
persistentvolumeclaim / efs-claimが作成されました ポッド/アプリ1が作成されました ポッド/アプリ2が作成されました persistentvolume / efs-pvが作成されました storageclass.storage.k8s.io/efs-scが作成されました |
pvがデプロイされているか確認
1 |
kubectl get pv |
出力結果
1 2 |
名前容量アクセスモードRECLAIMポリシーステータスクレームストレージクラス理由年齢 efs-pv 5Gi RWX Retain Bound default / efs-claim efs-sc 93s |
pvの詳細情報表示
1 |
kubectlはpv efs-pvを記述します |
出力結果
EFSファイルシステムはVolumeHandle
で表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
名前:efs-pv ラベル:<なし> アノテーション:kubectl.kubernetes.io/last-applied-configuration: {"apiVersion": "v1"、 "kind": "PersistentVolume"、 "metadata":{"annotations":{}、 "name": "efs-pv"}、 "spec":{"accessModes" :[ "ReadWriteMany"]、 "capaci ... pv.kubernetes.io/bound-by-controller:はい ファイナライザ:[kubernetes.io/pv-protection] StorageClass:efs-sc ステータス:バインド 主張:default / efs-claim 再利用ポリシー:保持 アクセスモード:RWX VolumeMode:ファイルシステム 容量:5Gi ノードアフィニティ:<なし> メッセージ: ソース: タイプ:CSI(Container Storage Interface(CSI)ボリュームソース) ドライバー:efs.csi.aws.com VolumeHandle:fs-32b4854b ReadOnly:false VolumeAttributes:<なし> イベント:<なし> |
ポッドがボリュームにデータを書き込までいるかを確認
1 |
kubectl exec -ti app1-tail /data/out1.txt |
出力結果
1 2 3 4 5 6 7 8 9 10 |
2019年10月21日(月)02:44:10 UTC 2019年10月21日(月)02:44:15 UTC 2019年10月21日(月)02:44:20 UTC 2019年10月21日(月)02:44:25 UTC 2019年10月21日(月)02:44:30 UTC 2019年10月21日(月)02:44:35 UTC 2019年10月21日(月)02:44:40 UTC 2019年10月21日(月)02:44:45 UTC 2019年10月21日(月)02:44:50 UTC 2019年10月21日(月)02:44:55 UTC |
Pod2もついでに確認しておく
1 |
kubectl exec -ti app2-tail /data/out1.txt |