원래 구성 없이 기존 Kubernetes 서버를 안전하게 업데이트하는 방법

원래 구성 없이 기존 Kubernetes 서버를 안전하게 업데이트하는 방법

구성 파일이 없는 Kubernetes 클러스터를 받았는데 helm이 설정되지 않았습니다. 저자는 cmd 라인에서 모든 것을 생성했다고 말했습니다. nginx 수신 컨트롤러가 있는 단일 API 서버를 위한 소규모/새 클러스터입니다. 저는 Kubernetes에 대해 충분히 알고 있고 새 웹 서버를 추가할 수 있었지만 이제는 더 깊이 들어가 기존 구성을 업데이트해야 합니다. 특히 nginx 컨트롤러에서 프로메테우스 측정항목을 활성화하고 싶지만 어떤 것도 중단하고 싶지 않습니다.

클러스터에서 기존 구성(배포, 서비스 등)을 검색하고 수정하고 적용하는 표준 방법이 있습니까? 아니면 새 yaml 파일을 만들지 않고도 기존 구성의 개별 부분에 대한 업데이트를 패치할 수 있는 방법이 있습니까?

다음과 같이 현재 구성을 얻을 수 있다는 것을 이해합니다.

kubectl get services -n nginx -o yaml

해당 출력에는 CreationTimestamp, uid 등과 같은 추가 필드가 있는데 제거해야 할 것 같습니다. 아니면 출력을 있는 그대로 yaml 파일에 저장하고 수정하여 prometheus를 활성화한 다음 해당 구성을 다시 컨트롤러에 적용할 수 있습니까? kube가 생성한 필드를 무시하나요? 고려해야 할 다른 접근 방식이 있습니까?

둘째, 이러한 구성을 저장소에 저장해야 합니까, 아니면 이것이 작업이 수행되는 방식입니까?

답변1

필요한 것은 거의 모두 있는 것 같습니다. 몇 가지 사소한 고려사항만 있습니다.

  • kubectl -n <ns> get <CRD> -o yamlis 값을 유지하더라도 재정의할 수 없는 일부 읽기 전용 식별자가 포함된 출력을 제공하므로 일반 파일로 유지하는 데 적합하지 않습니다.
  • 사용kubectl edit instead
  • 이를 원하는 VCS에 보관해야 하는지, 아니면 즉시 수정해야 하는지 결정하는 것은 전적으로 귀하에게 달려 있습니다. 이에 대해 논의하려는 시도는 아마도 불길을 일으킬 것입니다.

관련 정보