기존 k0s 클러스터에서 스토리지 클래스를 구성하는 방법

기존 k0s 클러스터에서 스토리지 클래스를 구성하는 방법

실행해 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 저장소에 대한 새 구성으로 클러스터를 다시 설치하려면 이전 설정을 정리해야 합니다.

  1. k0s 서비스를 중지합니다.
sudo k0s stop
  1. 사용자 정의된 구성 파일 없이 수행된 이전 설치를 재설정합니다.
sudo k0s reset
  1. 새 구성 파일과 플래그 ->를 사용하여 k0s를 다시 설치 --enable-worker하면 컨트롤러 및 작업자 기능이 있는 단일 노드 k0s가 다시 설치됩니다.
sudo k0s install controller --enable-worker -c /etc/k0s/k0s.yaml
  1. k0s 서비스를 시작합니다.
sudo k0s start
  1. 몇 초 후에 클러스터에서 사용할 수 있는 두 개의 스토리지 클래스가 활성화되어 있는지 확인합니다.
sudo k0s kubectl get storageclass

스토리지 클래스에는 volumeBindingMode: WaitForFirstConsumer노드에 애플리케이션 포드가 예약될 때까지 볼륨 바인딩이 지연된다는 의미가 있습니다.

관련 정보