
실행해 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
노드에 애플리케이션 포드가 예약될 때까지 볼륨 바인딩이 지연된다는 의미가 있습니다.