라군 + 쿠버네티스 1.22 🥳

3846 단어
Lagoon의 오랜 추종자라면 우리가 Kubernetes 1.22가 출시된 이후로 지원을 위해 노력해 왔다는 것을 알게 될 것입니다9 months ago.

Kubernetes는 상당히 공격적인 개발 및 릴리스 속도(연간 3개 릴리스)를 설정하지만 주요 클라우드 공급자는 이러한 릴리스를 다른 일정으로 제공하므로 종종 업스트림 릴리스보다 몇 개월 지연됩니다.

여기에서 몇 가지를 참조하십시오.
  • Google Kubernetes Engine
  • Azure Kubernetes Service
  • Elastic Kubernetes Service

  • 가장 중요한 것은 공급자가 클러스터를 새 버전의 Kubernetes로 자동 업그레이드하는 시점을 주목하는 것입니다. 대부분의 쿠버네티스 릴리스는 비교적 원활하게 업그레이드할 수 있지만 때때로 더 중요한 쿠버네티스 릴리스는 일반적으로 많은 지원 중단과 함께 제공되기 때문에 항상 탐색하기 까다롭습니다. 이들은 일반적으로 사전에 잘 전달되지만 특히 Lagoon만큼 움직이는 부분이 많은 코드 베이스에서 여전히 문제를 일으킬 수 있습니다.

    고맙게도 Kubernetes API는 매우 잘 문서화되어 있으며 팀은 우리가 따라할 수 있도록 Deprecated API Migration Guide을 게시합니다. API가 더 이상 사용되지 않는 경우는 일반적으로 해당 API의 버전이 베타 또는 안정적인 릴리스로 증가했기 때문입니다. 하지만 때때로 우리가 사용하던 API가 Kubernetes에서 제거될 수 있습니다.

    우리가 사용하는 모든 API에 대해 지원 중단이 우리에게 영향을 미치는지 여부를 평가해야 합니다.
  • 단순 이름 변경인가요? (즉, coordination.k8s.io/v1beta1coordination.k8s.io/v1로 이름을 바꿉니다.)
  • 일부 사양 변경으로 이름 변경인가요? (즉, authorization.k8s.io/v1 API 버전에서 spec.group은 spec.groups
  • 로 이름이 변경되었습니다.
  • 해당 API(또는 그 일부)가 Kubernetes에서 제거되었습니까? (예: Kubernetes 1.25의 PodSecurityPolicy)
  • 다시 작성해야 하는 더 큰 변경 사항입니까(예: Lagoon에서 사용하는 대부분의 사용되지 않는 API 🤦)

  • 사용되지 않는 이러한 API에 대한 모든 참조가 교체를 위해 업데이트되었는지 확인하기 위해 정밀한 빗(및 내장된 사용 중단 경고의 도움)으로 Lagoon의 다양한 구성 요소를 모두 검토했습니다. 여기에는 Lagoon을 배포하는 데 사용되는 모든 Helm 차트, Lagoon에서 실행되는 Lagoon 프로젝트 및 Lagoon이 활용하는 타사 서비스가 포함됩니다. 또한 Lagoon이 배포하는 컨트롤러 및 연산자의 일부 코드 재작성도 포함됩니다.

    lagoon-corerelease 1.0.0 현재 이 작업이 완료되었습니다! Lagoon Helm 차트의 모든 최신 릴리스는 Kubernetes 1.22(및 1.23!)와 완벽하게 호환됩니다. 릴리스에 대한 매트릭스 테스트 버전 1.21,1.22,1.23 및 1.24, 릴리스 전에 다양한 테스트 클러스터 실행, Lagoon 구성 요소를 Kubernetes <1.19를 지원하지 않는 것으로 표시하는 등 향후 호환성을 보장하기 위해 몇 가지 추가 조치를 취했습니다. 그때 우리가 마이그레이션한 여러 대체 API가 처음 도입되었습니다.

    To anybody running a pre-1.0.0 version of Lagoon on their <1.21 cluster, we would encourage you to upgrade to 1.22 ahead of time.



    Kubernetes는 모든 리소스를 Kubernetes 1.22와 호환되도록 자동으로 업데이트하는 여러 웹후크를 도입했으며 클러스터는 1.22로 안전하게 업그레이드됩니다. 그러나 후속 Helm 차트 업그레이드는 더 이상 유효한 Kubernetes 개체가 아닌 해당 리소스의 사전 업데이트된 상태에서 작동하기 때문에 실패할 수 있습니다(혼란스럽죠?).

    고맙게도 이미 업그레이드했거나 업그레이드되었으며 다음 오류가 표시되는 경우 이에 대한 수정 사항이 있습니다.

      Error: UPGRADE FAILED: current release manifest contains removed kubernetes api(s) for this kubernetes version and it is therefore unable to build the kubernetes objects for performing the diff. error from kubernetes: unable to recognize "": no matches for kind "PriorityClass" in version "scheduling.k8s.io/v1beta1"
    


    Helm 플러그인https://github.com/helm/helm-mapkubeapis은 정확히 이 문제를 해결하도록 설계되었으며 모든 버전의 Kubernetes에 대해 업데이트하는 데 필요한 리소스 매핑이 사전 로드되어 제공됩니다! 완벽하게 작동한다고 증언할 수 있습니다.

    질문이 있으시면 언제든지 Lagoon 팀에 문의하십시오. 반짝이는 새 제품Discord Server에서도 당사를 찾을 수 있습니다.

    좋은 웹페이지 즐겨찾기