
Quando executo, kos kubectl get storageclass
percebo que ele não está provisionado e tenho que adicioná-lo manualmente. Estou um pouco inseguro sobre o procedimento exato. A [Documentação][https://docs.k0sproject.io/main/storage/] diz que o k0s vem com o OpenEBS instalado. O que não tenho certeza é comoativar esta extensãono arquivo de configuração.
Meu arquivo de configuração existente tem apenas isso (presumo que este deva ser o arquivo de configuração padrão. Está correto?):
spec:
api:
externalAddress
Executei k0s stop
e alterei o arquivo de configuração da seguinte forma:
spec:
api:
externalAddress
extensions:
storage:
type: openebs_local_storage
Após essa alteração de configuração, ainda recebo o mesmo erro: nenhuma classe de armazenamento foi encontrada para o cluster. Preciso também reinstalar/instalar o k0s, estou um pouco inseguro porque o k0s.yaml existente parece ter muito poucos parâmetros de configuração em comparação com o exemplo fornecido no link.
EDITAR: UsandoDocumentaçãoProcedi à geração de um novo k0s.yaml que usa as configurações padrão existentes. Acontece que ele substitui o k0s.yaml existente (fornecido acima): Também efetuei alterações no novo arquivo yaml para produzir isto:
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
Após essa alteração procedo à reinstalação do cluster (com a nova configuração):
k0s install controller -c /etc/k0s/k0s.yaml
mas agora estou recebendo um erro:
Error: failed to install k0s service: failed to install service: Init already exists: /etc/systemd/system/k0scontroller.service
Responder1
Consegui reproduzir seu problema. Para reinstalar o cluster com a nova configuração de armazenamento OpenEBS, você precisará limpar sua configuração anterior:
- Pare o serviço k0s.
sudo k0s stop
- Redefina a instalação anterior que foi feita sem seu arquivo de configuração personalizado:
sudo k0s reset
- Reinstale o k0s com seu novo arquivo de configuração e com
--enable-worker
sinalizador -> para que o nó único k0s com funções de controlador e trabalhador seja instalado novamente:
sudo k0s install controller --enable-worker -c /etc/k0s/k0s.yaml
- Inicie o serviço k0s:
sudo k0s start
- Após alguns segundos, verifique se duas classes de armazenamento estão habilitadas no cluster para você usar:
sudo k0s kubectl get storageclass
As classes de armazenamento terão volumeBindingMode: WaitForFirstConsumer
- ou seja, haverá um atraso na vinculação do volume até que o pod do aplicativo seja agendado no nó.