当我运行时,kos kubectl get storageclass
我注意到它没有被配置,我必须手动添加它。我不太确定确切的程序。[文档][https://docs.k0sproject.io/main/storage/] 说 k0s 安装了 OpenEBS。我不确定如何在配置文件中启用此扩展。
我现有的配置文件只有这个(我假设这应该是默认配置文件。这是正确的吗?):
spec:
api:
externalAddress
我已经运行k0s stop
然后修改了配置文件如下:
spec:
api:
externalAddress
extensions:
storage:
type: openebs_local_storage
在此配置更改之后,我仍然收到相同的错误,他们没有为集群找到存储类。我是否还需要重新安装/安装 k0s,我有点不确定,因为与链接中给出的示例相比,现有的 k0s.yaml 似乎只有很少的配置参数。
编辑:使用文档我已经开始生成一个使用现有默认设置的新 k0s.yaml。原来它覆盖了现有的 k0s.yaml(如上所示):我还对新的 yaml 文件进行了更改以生成此文件:
apiVersion: k0s.k0sproject.io/v1beta1
kind: ClusterConfig
metadata:
creationTimestamp: null
name: k0s
spec:
api:
address: 10.XXX.XXX.XXX
k0sApiPort: 9443
port: 6443
sans:
- 10.XX.XX.XXX
- 172.XX.XX.XXX
- 10.XX.XX.XXX
- 10.XX.XX.XXX
- fe80::XXX:XXX:XXX:XXX
- fe80::XXX:XXX:XXX:XXX
- fe80::XXX:XXX:XXX:XXX
- fe80::XXX:XXX:XXX:XXX
- fe80::XXX:XXX:XXX:XXX
- fe80::XXX:XXX:XXX:XXX
tunneledNetworkingMode: false
controllerManager: {}
extensions:
helm:
charts: null
repositories: null
storage:
create_default_storage_class: true
type: openebs_local_storage
images:
calico:
cni:
image: docker.io/calico/cni
version: v3.21.2
kubecontrollers:
image: docker.io/calico/kube-controllers
在此更改之后,我继续重新安装集群(使用新配置):
k0s install controller -c /etc/k0s/k0s.yaml
但我现在收到一个错误:
Error: failed to install k0s service: failed to install service: Init already exists: /etc/systemd/system/k0scontroller.service
我能够重现您的问题 - 为了使用 OpenEBS 存储的新配置重新安装集群,您需要清理之前的设置:
--enable-worker
-> 以便再次安装具有控制器和工作程序功能的单节点 k0s:存储类将具有
volumeBindingMode: WaitForFirstConsumer
- 意思是,在节点上调度应用程序 pod 之前,卷绑定存在延迟。