110 lines
2.5 KiB
Markdown
110 lines
2.5 KiB
Markdown
|
> 本文作者:丁辉
|
|||
|
|
|||
|
# Helm部署OpenEBS存储
|
|||
|
|
|||
|
## 介绍
|
|||
|
|
|||
|
**OpenEBS是一种开源云原生存储解决方案,托管于CNCF基金会**。OpenEBS 管理每个 Kubernetes 节点上可用的存储,并使用该存储为有状态工作负载提供[本地](https://openebs.io/docs#local-volumes)或[分布式(也称为复制)](https://openebs.io/docs#replicated-volumes)持久卷。
|
|||
|
|
|||
|
## 安装 OpenEBS
|
|||
|
|
|||
|
[官方主页](https://openebs.io/)
|
|||
|
|
|||
|
[Github仓库](https://github.com/openebs/charts)
|
|||
|
|
|||
|
[Helm安装文档](https://openebs.github.io/charts/)
|
|||
|
|
|||
|
1. 添加仓库
|
|||
|
|
|||
|
```bash
|
|||
|
helm repo add openebs https://openebs.github.io/charts
|
|||
|
helm repo update
|
|||
|
```
|
|||
|
|
|||
|
2. 编辑 values.yaml 文件
|
|||
|
|
|||
|
```bash
|
|||
|
vi openebs-values.yaml
|
|||
|
```
|
|||
|
|
|||
|
内容如下
|
|||
|
|
|||
|
```yaml
|
|||
|
localprovisioner:
|
|||
|
enableDeviceClass: false
|
|||
|
```
|
|||
|
|
|||
|
3. 安装
|
|||
|
|
|||
|
[Github-Charts参数文档](https://github.com/openebs/charts/tree/d-master/charts/openebs)
|
|||
|
|
|||
|
```bash
|
|||
|
helm install openebs --namespace openebs openebs/openebs --create-namespace -f openebs-values.yaml
|
|||
|
```
|
|||
|
|
|||
|
4. 检查 storageclass
|
|||
|
|
|||
|
```bash
|
|||
|
kubectl get sc
|
|||
|
```
|
|||
|
|
|||
|
> 存在 openebs-hostpath 则👌
|
|||
|
|
|||
|
5. 运行容器使用 openebs-hostpath 测试
|
|||
|
|
|||
|
[openebs-hostpath官方文档](https://openebs.io/docs/user-guides/localpv-hostpath)
|
|||
|
|
|||
|
```bash
|
|||
|
kubectl apply -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/openebs-pod.yaml
|
|||
|
```
|
|||
|
|
|||
|
> 容器启动后查看结果
|
|||
|
>
|
|||
|
> ```bash
|
|||
|
> kubectl exec hello-local-hostpath-pod -- cat /mnt/store/greet.txt
|
|||
|
> ```
|
|||
|
>
|
|||
|
> 卸载测试容器
|
|||
|
>
|
|||
|
> ```bash
|
|||
|
> kubectl delete -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/openebs-pod.yaml
|
|||
|
> ```
|
|||
|
|
|||
|
## 设置 openebs-hostpath 为默认存储类
|
|||
|
|
|||
|
```bash
|
|||
|
kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
|
|||
|
```
|
|||
|
|
|||
|
> 取消 openebs-hostpath 为默认存储类
|
|||
|
>
|
|||
|
> ```bash
|
|||
|
> kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
|
|||
|
> ```
|
|||
|
|
|||
|
## 卸载 OpenEBS
|
|||
|
|
|||
|
```bash
|
|||
|
helm uninstall openebs -n openebs
|
|||
|
```
|
|||
|
|
|||
|
# 问题记录
|
|||
|
|
|||
|
MountVolume.NewMounter initialization failed for volume "pvc-某某" : path "/var/openebs/local/pvc-某某" does not exist
|
|||
|
|
|||
|
> 在将创建本地 PV 主机路径的节点上设置目录, 该目录将被称为 `BasePath` 默认位置是 `/var/openebs/local`
|
|||
|
|
|||
|
- Rke1 集群配置
|
|||
|
|
|||
|
修改 `cluster.yml` 文件, 后更新 rke 集群
|
|||
|
|
|||
|
```yml
|
|||
|
services:
|
|||
|
kubelet:
|
|||
|
extra_binds:
|
|||
|
- /var/openebs/local:/var/openebs/local
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
|