だいごろうのブログ

熊本出身で大阪、東京、パリを転勤して、今は福岡でデータエンジニアです

[MEMO] katacodaでLearn Kubernetes ver5 CRI-O and Kubeadm / Stateful Services on Kubernetes

Getting Started With CRI-O and Kubeadm

Container Runtime Interface (CRI) らしい。

なんで、CRIって必要なんだろうと思って調べてみた。これがわかりやすい。 コンテナランタイムの動向を整理してみた件 - Qiita

Docker以外のContainer RuntimeをKubernetesに導入、実装しようと思うと、現状敷居が高いらしく、1枚間に挟むことで、HighLevelのレイヤーができるみたい。

まぁ、いまのところ深くは勉強しないつもりだけど、Docker以外にもRuntimeはいろいろと出てきているみたいで、KubernetesがDocker以外にも導入しやすくしたことで、今後議論の余地が生まれそうだなぁ。

Running Stateful Services on Kubernetes

Running Stateful Services on Kubernetes | Kubernetes | Katacoda

このチャプターは、DockerでNFSのサーバを立てて、--net=hostとすることで、NFSののプロトコルをローカルホストで受けれるようにし、k8sからマウントするみたいだ。

引用

docker run -d --net=host \
   --privileged --name nfs-server \
   katacoda/contained-nfs-server:centos7 \
   /exports/data-0001 /exports/data-0002

PersistentVolume

まだ、今回は読んでないけど、あとで読む Persistent Volumes - Kubernetes

PersistentVolumeで、NFSのサーバをマウントしてる感じかな

  • persistentVolumeReclaimPolicyは選べる Retainedだとのこり、 Recycled だと消える。
kind: PersistentVolume
metadata:
  name: your-nfs
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    server: ${IP}
    path: ${PATH}

PersistentVolumeClaim

自動でPersistentVolumeをマウントするっぽい?

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: your-claim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

で次に、podの定義にこれを追加する。

  spec:
      volumeMounts:
        - name: mount-volume-name
          mountPath: /mount/path
  volumes:
    - name: mount-volume-name
      persistentVolumeClaim:
        claimName: your-claim

もし、PersistentVolumeClaimにPersistentVolumeがアサインされておらず、Pendingなら、PodもPending状態になる。