首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在现有的k0s集群上配置存储类

如何在现有的k0s集群上配置存储类
EN

Server Fault用户
提问于 2022-01-29 15:05:35
回答 1查看 882关注 0票数 1

当我运行kos kubectl get storageclass时,我注意到它没有提供,我必须手动添加它。虽然我对确切的程序不太确定。文档说,k0s附带安装了OpenEBS。我不确定的是如何在配置文件中启用这个扩展名。

我现有的配置文件只有这个(我假设这应该是默认的配置文件。是这样吗?):

代码语言:javascript
复制
spec:
  api:
    externalAddress

我运行了k0s stop,然后按照以下方式修改了配置文件:

代码语言:javascript
复制
spec:
  api:
    externalAddress
  extensions:
    storage:
      type: openebs_local_storage

在这个配置更改之后,我仍然得到相同的错误--它们不是为集群找到的存储库。我是否也需要重新安装/安装k0s,这有点不确定,因为与链接中给出的示例相比,现有的k0s.yaml似乎只有很少的配置参数。

编辑:使用文档,我已经开始生成一个使用现有默认设置的新k0s.yaml。原来它覆盖了现有的k0s.yaml (上面给出):我还对新的yaml文件进行了更改,以生成以下内容:

代码语言:javascript
复制
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

在进行此更改后,我将继续重新安装集群(使用新配置):

代码语言:javascript
复制
k0s install controller -c /etc/k0s/k0s.yaml

但我现在发现了一个错误:

代码语言:javascript
复制
Error: failed to install k0s service: failed to install service: Init already exists: /etc/systemd/system/k0scontroller.service
EN

回答 1

Server Fault用户

回答已采纳

发布于 2022-02-15 00:33:30

我能够重现您的问题--为了用OpenEBS存储的新配置重新安装集群,您需要清理先前的设置:

  1. 停止k0s服务。
代码语言:javascript
复制
sudo k0s stop
  1. 重置以前在没有自定义配置文件的情况下完成的安装:
代码语言:javascript
复制
sudo k0s reset
  1. 使用新的配置文件重新安装k0s,并使用--enable-worker标志->重新安装,以便重新安装具有控制器和工作函数的单节点k0s:
代码语言:javascript
复制
sudo k0s install controller --enable-worker -c /etc/k0s/k0s.yaml
  1. 启动k0s服务:
代码语言:javascript
复制
sudo k0s start
  1. 几秒钟后,检查集群上是否启用了两个存储类,以便您使用:
代码语言:javascript
复制
sudo k0s kubectl get storageclass

存储类将具有volumeBindingMode: WaitForFirstConsumer --这意味着卷绑定的延迟,直到应用程序pod被安排在节点上。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1091569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档