背景
個人的にインフラの知識以上にこれからのアプリケーションが動く環境を作ってデプロイしたりしてこれからの知識を身に着けたい。そしてより一層、自分の知識のアップデートをしたいと思いました。
その中でこの本に出会い、これから少しずつやったことを残し、未来の自分への手紙としてもあり、見つめ直せればと思いました。
引用や参考と今回の自分の勉強用の書籍の紹介
技術評論社『Kubernetes実践入門』のサンプルコード
Kubernetes実践入門 プロダクションレディなコンテナ&アプリケーションの作り方
実際の学びについて
書籍を読みながら、章ごとに少しずつ進めていきたいと思います。
GitHub のソースコードも使いながら学んで行きたいと思います。
この章の勉強は本当に書籍の写経が主になるかもしれません・・・
勉強開始
外部ストレージの割当
apiVersion: v1
kind: PersistentVolume
metadata:
name: backup
spec:
capacity:
storage: 10Gi
accessModes: #(a)
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain #(b)
storageClassName: nfs #(c)
mountOptions:
- hard
nfs: #(d)
path: /Users/share
server: 192.168.3.4
a. accessModes について
値 | 説明 |
---|---|
ReadWriteOnce | 1つのノードから Read/Write でマウントできる |
ReadOnlyMany | 複数のノードから Read Only でマウントできる |
ReadWriteMany | 1つのノードから Read/Write でマウントできる |
b. persistentVolumeReclaimPolicy について
PersistentVolumeClaim が削除されたときにどうするのかの動作ポリシーのこと
値 | 説明 |
---|---|
Retain | データの削除を行わず、データを保持する |
Recycle | データを削除する |
Retain | データと関連するストレージリソースを削除する |
c. storageClassName について
StorageClass の名前を定義できるもののこと
d. nfs について
ストレージの設定のこと
$ kubectl apply -f mysql-pv.yaml
persistentvolume/backup created
$ kubectl get persistentvolume
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
backup 10Gi RWX Retain Available nfs 63s
PersistentVolumeClaim の設定
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: backup-mysql
spec:
accessModes: # mysql-pv.yaml の accessModes と合わせる
- ReadWriteMany
resources: # mysql-pv.yaml の storage と合わせる
requests:
storage: 10Gi
storageClassName: nfs # mysql-pv.yaml の storageClassName と合わせる
$ kubectl apply -f mysql-pvc.yaml
persistentvolumeclaim/backup-mysql created
$ kubectl get persistentvolumeclaims
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
backup-mysql Bound backup 10Gi RWX nfs 58s
$ kubectl get persistentvolume
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
backup 10Gi RWX Retain Bound default/backup-mysql nfs 9m9s
kubectl get persistentvolume
で CLAIM が設定されているのを確認
次は 3.7.5 章をやっていきます。
StatefulSet を使った MySQL の Mater-Slave 構成を学んで行きたいと思います
現時点で github から前もって動かして確認したらマウントが出来なかったり、script がうまく動かないとかで書籍と同じ動きにならないので困って居ます
StayHome でやっていこうと思ったのに進まないので誰か質問に乗って欲しいです!
最後に
今回は、ストレージを使うためには persistentvolume
を設定し persistentvolumeclaim
で紐付けを行い使うという内容と仕組みを学べたとおもいます。
マウントができる様になりました。
やったこと
ちょっとだけかきかえました
/System/Volumes/Data/Users/user_name/study/share 192.168.3.4 -mapall=501:20
/System/Volumes/Data/Users/ から始めないとだめみたいで、このサイトを参考にしました
macOS CatalinaからNFS exportsするには
macOS 10.15 Catalina
これも試行錯誤で行いました(不要だったらごめんなさい)
#
# nfs.conf: the NFS configuration file
#
nfs.server.mount.require_resv_port = 0 # 追加
今までの投稿
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Pod編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)NameSpace 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Label 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)ReplicaSet 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Deployment 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Service 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)ConfigMap 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Secret 編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)操作編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート2
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート3(Label操作)
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート3(OwnerReference 操作)
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)マニュフェスト編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)マニュフェスト(ConfigMap)編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編 パート2
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編 パート3
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)通信編 パート4
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)公開編パート1(NodePort)
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)公開編パート2(LoadBalancer)
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)公開編パート3(Ingress)
- 初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)外部ストレージ編