ポッドの終了後もデータを利用できるように、ポッドのデータを永続的なボリュームに配置することをお勧めします。 Kubernetes(k8s)では、NFSベースの永続ボリュームをポッド内で使用できます。この記事では、永続ボリュームと永続ボリュームクレームを設定する方法を学習し、次に、k8sポッドでクレーム名を介して永続ボリュームを使用する方法について説明します。
機能するk8sクラスターとNFSサーバーがあると想定しています。ラボのセットアップの詳細は次のとおりです
- NFSサーバーIP=192.168.1.40
- NFS共有=/opt / k8s-pods / data
- K8sクラスター=1つのマスターノードと2つのワーカーノード
注: NFSサーバーがワーカーノードから到達可能であることを確認し、テストのために各ワーカーにnfs共有を1回マウントしてみてください。
この共有は記事の後半でnginxポッドにマウントされるため、nfs共有内にファイルを作成します。
[[email protected]〜] $ echo "Hello、NFS Storage NGINX"> /opt/k8s-pods/data/index.html
NFSベースのPV(永続ボリューム)を構成する
K8sでNFSベースの永続ボリュームを作成するには、マスターノードに次の内容のyamlファイルを作成します。
[[email protected]〜] $ vim nfs-pv.yamlapiVersion:v1kind:PersistentVolumemetadata:name:nfs-pvspec:capacity:storage:10Gi volumeMode:Filesystem accessModes:-ReadWriteMany persistVolumeReclaimPolicy:Recycle storageClassName:nfs --nfsvers =4.1 nfs:パス:/ opt / k8s-pods / dataサーバー:192.168.1.40
ファイルを保存して終了します
次に、上記で作成したyamlファイルを使用して永続ボリュームを作成し、実行します
[[email protected]〜] $ kubectl create -f nfs-pv.yamlpersistentvolume / nfs-pv created [[email protected]〜] $
次のkubectlコマンドを実行して、永続ボリュームのステータスを確認します
<前> [[Eメール保護]〜] $ kubectl GET pvNAME CAPACITYアクセス・モードRECLAIMポリシーステータスクレームSTORAGECLASS理由AGEnfs-PV 10Gi RWXリサイクル可能なNFSの20代$ [[メール]〜保護]上記の出力は、PVが正常に作成され、使用可能であることを確認します。
永続的なボリュームクレームの構成
ポッド内に永続ボリュームをマウントするには、永続ボリュームの要求を指定する必要があります。それでは、次のyamlファイルを使用して永続的なボリュームクレームを作成しましょう
[[email protected]〜] $ vi nfs-pvc.yamlapiVersion:v1kind:PersistentVolumeClaimmetadata:name:nfs-pvcspec:storageClassName:nfs accessModes:-ReadWriteMany resources:requests:storage:10Gi
ファイルを保存して終了します。
下のkubectlコマンドを実行して、上記のyamlファイルを使用してpvcを作成します。
[[email protected]〜] $ kubectl create -f nfs-pvc.yamlpersistentvolumeclaim / nfs-pvc created [[email protected]〜] $
上記を実行した後、コントロールプレーンは、同じストレージクラス名でクレーム要件を満たす永続ボリュームを探し、クレームを永続ボリュームにバインドします。例を以下に示します。
[[email protected]〜] $ kubectl get pvc nfs-pvcNAME VOLUME CAPACITY CAPACITY ACCESS MODES STORAGECLASS AGEnfs-pvc Bound nfs-pvc protected nfs-pv 10Gi kubectl GET PV NFS-pvNAME容量アクセス・モードRECLAIMポリシーステータスクレームSTORAGECLASS理由AGEnfs-PV 10Gi RWXリサイクルバウンドデフォルト/ NFS-PVC NFS 18メートル[[Eメール保護]〜] $
上記の出力は、クレーム(nfs-pvc)が永続ボリューム(nfs-pv)にバインドされていることを確認します。
これで、ポッドの横でnfsベースの永続ボリュームを使用する準備が整いました。
ポッド内でNFSベースの永続ボリュームを使用する
yamlファイルの下を使用してnginxポッドを作成すると、「/ usr / share / nginx/html」に永続的なボリュームクレームがマウントされます
[[email protected]〜] $ vi nfs-pv-podapiVersion:v1kind:Podmetadata:name:nginx-pv-podspec:volumes:-name:nginx-pv-storage persistVolumeClaim:claimName:nfs-pvc container:名前:nginx画像:nginxポート:-containerPort:80名前: "nginx-server" volumeMounts:-mountPath: "/ usr / share / nginx / html"-v-vファイルを保存して閉じます。
上記のyamlファイルを使用してポッドを作成し、実行します
[[email protected]〜] $ kubectl create -f nfs-pv-pod.yamlpod / nginx-pv-pod created [[email protected]〜] $ [[email protected]〜] $ kubectl get pod nginx-実行wideNAME READYステータスが再起動AGE IP NODEノミネートNODE準備GATESnginx-PV-ポッド1/1 -o PV-ポッド0 66S 172.16.140.28 K8Sはワーカー-2 <なし> <なし> $ [[メール]は〜保護されていません] pre>注: ポッドの詳細を取得するには、kubectl describe pod
上記のコマンド出力は、ポッドが正常に作成されたことを確認します。次に、curlコマンドを使用してnginxページにアクセスしてみます
[[email protected]〜] $ curl http://172.16.140.28Hello、NFS Storage NGINX [[email protected]〜] $上記のcurlコマンドの出力は、NFS共有に存在するindex.htmlファイルのコンテンツを取得しているときに、永続ボリュームがポッド内に正しくマウントされていることを確認します。
これで記事は終わりです。Kubernetesポッド内でNFSベースの永続ボリュームを構成して使用する方法について基本的なアイデアが得られたと思います。
また読む :Kubeadmを使用してHAでKubernetes(k8s)クラスタを設定する方法
また読む :KubernetesにHelmをインストールして使用する方法
Linux