株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

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から手動でデプロイする必要がある

kubectl get storageclass

出力結果

名前提供者の年齢
gp2(デフォルト)kubernetes.io/aws-ebs 11h

EFSCSIドライバーをデプロイ

kubectl apply -k "github.com/kubernetes-sigs/aws-efs-csi-driver
/deploy/kubernetes/overlays/stable/?ref=master"

DeamonSetがデプロイされているか確認

kubectl get daemonsets efs-csi-node --namespace = kube-system

出力結果

名前必要な現在の準備ができて最新の利用可能なノードセレクターの年齢
efs-csi-node 2 2 0 2 0 beta.kubernetes.io/os=linux 91s

CSIドライバーがデプロイされているか確認

kubectl get csidrivers.storage.k8s.io

出力けっか

で作成された名前
efs.csi.aws.com 2019-10-27T08:08:04Z

EKSが動作しているVPCIDを確認

aws eks describe-cluster --name k8s-cluster --query 
cluster.resourcesVpcConfig.vpcId --output text

出力結果

vpc-059ad19ca888486c4

IP範囲(CIDRブロック)を確認

aws ec2 describe-vpcs --vpc-ids vpc-059ad19ca888486c4

出力結果

            "CidrBlockAssociationSet":[
                {
                    "AssociationId": "vpc-cidr-assoc-0a2a4f054ca33b5f0"、
                    "CidrBlock": "192.168.0.0/16"、
                    "CidrBlockState":{
                        「状態」:「関連」
                    }
                }

セキュリティグループの作成

image.png

インバウンドルールの作成

image.png

EFSの作成

image.png

サンプルアプリを活用して動作確認

ドライバーのクローン

git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git

ディレクトリ移動

cd aws-efs-csi-driver / examples / kubernetes / multiple_pods /

ファイルシステムID確認

aws efs describe-file-systems --query "FileSystems [*]。FileSystemId"-出力テキスト

出力結果

fs-32b4854b

pv.yamlのvolumeHandleを上記のファイルシステムIDへ変更

specs / pv.yaml
apiVersion  V1の
種類 PersistentVolume 
メタデータ
  名前 EFS-PV 
仕様
  容量
    ストレージ 5Gi 
  volumeMode  ファイルシステム
  accessModes 
    -  ReadWriteMany 
  persistentVolumeReclaimPolicy  保持
  storageClassName  EFS-SCの
  CSIを
    ドライバ efs.csi.aws.com 
    volumeHandle  FS- 32b4854b

pv、pvc.storageclass、sampleappデプロイ

kubectl apply -f specs /

出力結果

persistentvolumeclaim / efs-claimが作成されました
ポッド/アプリ1が作成されました
ポッド/アプリ2が作成されました
persistentvolume / efs-pvが作成されました
storageclass.storage.k8s.io/efs-scが作成されました

pvがデプロイされているか確認

kubectl get pv

出力結果

名前容量アクセスモードRECLAIMポリシーステータスクレームストレージクラス理由年齢
efs-pv 5Gi RWX Retain Bound default / efs-claim efs-sc 93s

pvの詳細情報表示

kubectlはpv efs-pvを記述します

出力結果
EFSファイルシステムはVolumeHandleで表示

名前: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:<なし>
イベント:<なし>

ポッドがボリュームにデータを書き込までいるかを確認

kubectl exec -ti app1-tail /data/out1.txt

出力結果

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もついでに確認しておく

kubectl exec -ti app2-tail /data/out1.txt

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)