Upgrade to Pro — share decks privately, control downloads, hide ads and more …

KubernetesでCephクラスタ用のストレージをどう管理するか 分割と配置の最適化への取り組み

KubernetesでCephクラスタ用のストレージをどう管理するか 分割と配置の最適化への取り組み

CloudNative Days Tokyo 2020発表資料。
k8sの各ノードのストレージでCephクラスタを組むにあたり、TopoLVMにより動的にボリュームを切り出した点と、PodTopologySpreadConstraintsによりボリュームを最適に分散配置した点を解説する。

morimoto-cybozu

September 08, 2020
Tweet

Other Decks in How-to & DIY

Transcript

  1. 14 ラック1 zone: rack1 host: r1-s1 ラック2 ラック3 OSD zone:

    rack1 host: r1-s2 zone: rack2 host: r2-s1 zone: rack2 host: r2-s2 zone: rack3 host: r3-s1 zone: rack3 host: r3-s2 OSD OSD OSD OSD OSD OSD OSD OSDボリュームを分散配置したい
  2. 24 ラック1 zone: rack1 host: r1-s1 ラック2 ラック3 zone: rack1

    host: r1-s2 zone: rack2 host: r2-s1 zone: rack2 host: r2-s2 zone: rack3 host: r3-s1 zone: rack3 host: r3-s2 skewは満たせるはずなのに…… Pod Pod Pod Pod Pod Pod Pod Pod Pod やや重いPodだが resourceには余裕あり
  3. 25 ラック1 zone: rack1 host: r1-s1 ラック2 ラック3 zone: rack1

    host: r1-s2 zone: rack2 host: r2-s1 zone: rack2 host: r2-s2 zone: rack3 host: r3-s1 zone: rack3 host: r3-s2 OSD OSD OSD OSD OSD OSD OSD skewは満たせるはずなのに…… Pod OSD まるでspreadしていない! Pod Pod Pod Pod Pod Pod Pod Pod
  4. kube-schedulerをチューニング 1.18設定 28 apiVersion: kubescheduler.config.k8s.io/v1alpha2 kind: KubeSchedulerConfiguration leaderElection: leaderElect: true

    clientConnection: kubeconfig: /etc/kubernetes/scheduler.conf profiles: - schedulerName: default-scheduler plugins: score: disabled: - name: PodTopologySpread enabled: - name: PodTopologySpread weight: 500