
Когда я запускаю, 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
решение1
Мне удалось воспроизвести вашу проблему — чтобы переустановить кластер с новой конфигурацией хранилища OpenEBS, вам необходимо очистить предыдущую настройку:
- Остановите службу k0s.
sudo k0s stop
- Сбросьте предыдущую установку, которая была выполнена без вашего настроенного файла конфигурации:
sudo k0s reset
- Переустановите k0s с новым файлом конфигурации и
--enable-worker
флагом ->, чтобы снова установить k0s с одним узлом и функциями контроллера и рабочих функций:
sudo k0s install controller --enable-worker -c /etc/k0s/k0s.yaml
- Запустите службу k0s:
sudo k0s start
- Через несколько секунд проверьте, что в кластере включены два класса хранения, которые вы можете использовать:
sudo k0s kubectl get storageclass
Классы хранения будут иметь volumeBindingMode: WaitForFirstConsumer
задержку привязки тома, пока модуль приложения не будет запланирован на узле.