새소식

Cloud Engineering Log

Rancher에서 Kubernetes의 Feature Gate를 활성화하는 방법

  • -

Kubernetes는 Version마다 지원하는 기능이 바뀐다.

 

https://kubernetes.io/ko/docs/reference/command-line-tools-reference/feature-gates/

 

기능 게이트

이 페이지에는 관리자가 다른 쿠버네티스 컴포넌트에서 지정할 수 있는 다양한 기능 게이트에 대한 개요가 포함되어 있다. 기능의 단계(stage)에 대한 설명은 기능 단계를 참고한다. 개요 기능 게

kubernetes.io

위 Official Doc을 보면,

[기능] [디폴트] [단계] [도입] [종료] 순의 5칼럼 테이블이 존재한다.

 

위 2 행은, APIListChunking이라는 알파 Feature가 1.8버전에 도입되었고, 1.8버전에 종료되었다가

똑같은 이름의 베타 Feature가 1.9부터 도입되어 지금까지 있다.

 

자, Feature는

- Alpha : Feature-Gate를 True하지않으면 동작하지 않는 실험단계

- Beta : Feature-Gate가 기본적으로 True되어있지만 아직 실험중인 단계

- GA (Graduated) : Feature가 안정화되어 본 버전의 기본 기능(True, False가 불가능하고 항상 동작하는 기능)이 된 단계

- Deprecated : Feature 폐기!

 

요렇게 단계가 나뉜다고 볼 수 있는데.

 

음...

 

최신 버전의 쿠베로 개발을 하다가, 조금이라도 이전의 쿠베를 만지게 되면, 

물론 문법도 사뭇 다르겠지만, 이 제공 기능의 차이가 조금씩 발생한다.

 

이를테면, 

위 기능은 1.23부터 GA단계고, 1.22v는 베타긴 하다. (기본 true)

이게 뭐냐면, job이 complete되었고, 그 job의 매니페스트 속성에 5를 적었다. 그러면 5초 뒤에 job pod를 삭제해주는 고마운 기능이다.

 

1.22 쿠베에서 TTL은 베타지만, 1.20에서는 아직 알파다.

그말인즉슨, 1.20에서는 직접 이 Feature-gate를 true시켜줘야 한다는 것 ㅠㅠ

 

 

자. 드가자

 

 

쿠베는 저마다 다른 플랫폼에서 돌릴 수 있다.

 

여러 케이스(kubeadm기반, kube-scheduler, kube-api, kube-etcd 매니페스트 직접 건드리기 등등)가 있는데, 그건 내가 참고한 레퍼런스를 하단에 걸어둘테니 그 케이스를 겪게되면 그 글을 보는 게 낫다.

 

나는 Rancher기반으로 클러스터를 관리하기 때문에, Rancher기반으로 Kubernetes의 Feature-gate를 어떻게 관리할 것이냐라는 점에 도달하고자 한다.

(막간 주의할 점은, Rancher에도 Feature-gate가 있다. 혹시 자료조사할때 헷갈리지 말길 - https://rancher.com/docs/rancher/v2.5/en/installation/resources/feature-flags/)

 

Rancher는 Cluster 페이지에서, 우상단을 보면

... 으로 되어있는 옵션 확장 버튼이 있을 거다.

 

Edit!

 

뭐가 많은데, UI상으로 건드리지말고,

 

Feature Gate는 보통 선언이 안 되어있기 때문에, YAML에 직접 config를 건드려줘야 한다.

즉, 우하단의 Edit as YAML을 클릭하자.

그러면 쪼로록 설정값들이 나오는데,

 

Feature Gate가 연관된 부분은 kube-api, kube-controller, kubelet 이 세 가지다.

여기에

 

extra_args:
  feature-gates: TTLAfterFinished=true

 

요런식으로 설정값들을 각각 추가해주면 된다는 거다.

 

 

요렇게 수정한 후, 하단 save를 누르면

 

열심히 클러스터가 재시작된 후, Feature-gate가 활성화되어있을 것이다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.