起因
尝试安装 tidb,结果好像一直加载不出来存储
1
2
3
4
|
root@ubuntu-71:~# k get pvc -A
NAMESPACE NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
tidb-cluster pd-basic-pd-0 Pending <unset> 80m
tidb-cluster tidb-dashboard-data-basic-tidb-dashboard-0 Pending <unset> 80m
|
资料收集
通过阅读 官方文档,得知存储也需要自己配置。
原来 k3s 预先做好了这么多事情,感动🥹🥹。
我想的是先实现 k3s 的功能,所以尽量模仿 k3s 的组件来搭建,暂时不要引入而外的复杂性。
通过查阅 k3s 的文档,得知 k3s 用的默认存储是 local-path-provisioner。
安装 local-path-provisioner
那就简单了,安装文档进行安装就行了
直接 apply 这个 manifest
1
|
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.28/deploy/local-path-storage.yaml
|
设置为默认 storageclass
我们添加进去的 local-path 并不会立刻接管集群的 pv 创建。而是静静的呆在哪里,需要其他的 pvc 指定需要 local-path 来进行分配,lp 才会去干活。
所以说,这里我直接把 local-path 设置为默认的 storageclass,就可以接管所有的 pvc 了。
参考教程
1
|
kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
|
检查
然后再回来看,就发现 pvc 已经正常分配了
1
2
3
4
|
root@ubuntu-71:~# k get pvc -A
NAMESPACE NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
tidb-cluster pd-basic-pd-0 Bound pvc-a1aa8a68-029b-497d-aaf3-c86c9e4d5485 1Gi RWO local-path <unset> 123m
tidb-cluster tidb-dashboard-data-basic-tidb-dashboard-0 Bound pvc-cde91829-5ad6-404e-81e7-6db080c6327b 10Gi RWO local-path <unset> 123m
|
Longhorn
也简单看了一下 longhorn 的介绍,装了个玩玩。
先看 安装要求,
1
|
curl -sSfL https://raw.githubusercontent.com/longhorn/longhorn/v1.6.2/scripts/environment_check.sh | bash
|
使用脚本可以自动检查,然后根据脚本检查的结果安装缺少的组件就行了
我选择使用 helm 安装,非常的简单:https://longhorn.io/docs/1.6.2/deploy/install/install-with-helm/
1
2
3
|
helm repo add longhorn https://charts.longhorn.io
helm repo update
helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace --version 1.6.2
|
还可以去看 ui:https://longhorn.io/docs/1.6.2/deploy/accessing-the-ui
总结
要自己搞的东西好多啊,好像还有个 cert-manager,要配置自动给 ingress 发证书。还要自己装 metrics server,不然 hpa 用不了。(怎么这么多事情,早知道就直接用 k3s 了)