Helm으로 Linkerd 설치하기
Helm으로 Linkerd 설치하기 (Installing Linkerd with Helm)
linkerd install 명령 대신 Helm으로 Linkerd를 설치하는 방법을 알려드려요. 반복 가능하기 때문에 프로덕션에 권장됩니다.
본문
Linkerd는 linkerd install 명령 대신 Helm으로 설치할 수 있습니다. 이는 반복 가능하게 해 주므로 프로덕션에 권장됩니다.
Edge 릴리스 콘텐츠
이 페이지는 최신 edge 릴리스의 Linkerd를 사용하는 지침을 담고 있습니다. 안정 릴리스를 포함한 다른 유형의 릴리스에 대해서는 Linkerd Releases를 참고하세요.
사전 준비: Gateway API 설치
Linkerd의 여러 기능은 인가 정책과 동적 요청 라우팅을 포함해 Gateway API 프로젝트의 CRD로 구성됩니다. 많은 Kubernetes 클러스터에서 이 CRD는 이미 사용 가능하지만, 그렇지 않다면 먼저 설치해야 합니다.
Gateway API가 설치되어 있는지 확인하거나 설치하는 방법은 다음 지침을 따르세요.
사전 준비: mTLS 인증서 생성
자동 상호 TLS를 하려면 Linkerd에 신뢰 앵커 인증서와 발급자 인증서·키 쌍이 필요합니다. linkerd install을 사용할 때는 이것을 우리가 생성해 줄 수 있어요. 하지만 Helm에서는 직접 생성해야 합니다.
이렇게 하려면 mTLS 루트 인증서 직접 생성하기 지침을 따르세요.
Helm 설치 절차
`# Add the Helm repo for Linkerd edge releases:
helm repo add linkerd-edge https://helm.linkerd.io/edge
`
linkerd-crds와 linkerd-control-plane 두 개의 별도 차트를 연속으로 설치해야 합니다.
Note
kube-proxy 대체 모드로 Cilium을 사용하는 클러스터에 Linkerd를 설치한다면 서비스 디스커버리가 의도대로 동작하도록 추가 단계가 필요할 수 있습니다. 지침은 Cilium 클러스터 구성 페이지에 있습니다.
linkerd-crds
linkerd-crds 차트는 Linkerd가 필요로 하는 CRD를 설정합니다:
`helm install linkerd-crds linkerd-edge/linkerd-crds \
-n linkerd --create-namespace
`
Note
이것이 linkerd 네임스페이스를 생성합니다. 이미 존재하거나 파이프라인의 다른 곳에서 미리 만든다면 --create-namespace 플래그를 생략하세요.
Note
Linkerd의 CNI 플러그인을 사용한다면 helm install 명령에 --set cniEnabled=true 플래그도 추가해야 합니다.
linkerd-control-plane
linkerd-control-plane 차트는 모든 컨트롤 플레인 컴포넌트를 설정합니다:
`helm install linkerd-control-plane \
-n linkerd \
--set-file identityTrustAnchorsPEM=ca.crt \
--set-file identity.issuer.tls.crtPEM=issuer.crt \
--set-file identity.issuer.tls.keyPEM=issuer.key \
linkerd-edge/linkerd-control-plane
`
Note
Linkerd의 CNI 플러그인을 사용한다면 helm install 명령에 --set cniEnabled=true 플래그도 추가해야 합니다.
고가용성 모드 활성화
linkerd-control-plane 차트에는 values-ha.yaml 파일이 있습니다. 이 파일은 linkerd install의 --ha 옵션과 유사하게 고가용성 시나리오에서 설정하도록 일부 기본값을 덮어씁니다. 더 많은 레플리카 수, 더 높은 메모리/cpu 한도, affinity 같은 값이 그 파일에 지정되어 있어요.
차트 파일을 가져와서 values-ha.yaml을 얻을 수 있습니다:
`helm fetch --untar linkerd-edge/linkerd-control-plane
`
그다음 -f 플래그로 이 오버라이드 파일을 제공하세요. 예를 들어:
`helm install linkerd-control-plane \
-n linkerd \
--set-file identityTrustAnchorsPEM=ca.crt \
--set-file identity.issuer.tls.crtPEM=issuer.crt \
--set-file identity.issuer.tls.keyPEM=issuer.key \
-f linkerd-control-plane/values-ha.yaml \
linkerd-edge/linkerd-control-plane
`
Helm으로 업그레이드하기
먼저 로컬 Helm 리포지토리가 업데이트되었는지 확인하세요:
`helm repo update
helm search repo linkerd
NAME CHART VERSION APP VERSION DESCRIPTION
linkerd-edge/linkerd-crds Linkerd gives you observability, reliability, and securit...
linkerd-edge/linkerd-control-plane edge-26.9.3 Linkerd gives you observability, reliability, and securit...
`
업그레이드 중에는 차트의 값을 재사용할지, 더 새로운 차트에 지정된 값으로 옮길지 선택해야 합니다. 우리의 조언은 차트에 대한 모든 커스텀 오버라이드를 저장하는 values.yaml 파일을 사용하는 것입니다.
helm upgrade 명령에는 그 동작을 사용자 지정할 수 있는 여러 플래그가 있습니다. 차트가 버전마다 바뀌고/또는 --set·--set-file을 통해 오버라이드가 적용될 때 --reuse-values와 --reset-values가 어떻게 동작하는지 특히 주의를 기울여야 해요. 예를 들어:
- 오버라이드 없이 --reuse-values - 모든 값이 재사용됩니다
- 오버라이드와 함께 --reuse-values - 오버라이드된 값을 제외한 모든 값이 재사용됩니다
- 오버라이드 없이 --reset-values - 어떤 값도 재사용되지 않고 제공된 릴리스의 모든 변경 사항이 업그레이드 중에 적용됩니다
- 오버라이드와 함께 --reset-values - 어떤 값도 재사용되지 않고 제공된 릴리스의 변경 사항이 오버라이드와 함께 적용됩니다
- 플래그 없음 + 오버라이드 없음 - 기본적으로 --reuse-values가 사용됩니다
- 플래그 없음 + 오버라이드 - 기본적으로 --reset-values가 사용됩니다
마지막으로, 업그레이드 전에 edge 차트 문서를 확인해 차트에 호환성을 깨는 변경(즉 이름이 바뀌거나 이동된 키 등)이 있는지 점검할 수 있습니다. 있다면 values.yaml 파일에 그에 맞는 변경을 하세요. 그다음 다음을 사용할 수 있어요:
`# the linkerd-crds chart currently doesn't have a values.yaml file
helm upgrade linkerd-crds linkerd-edge/linkerd-crds
# whereas linkerd-control-plane does
helm upgrade linkerd-control-plane linkerd-edge/linkerd-control-plane --reset-values -f values.yaml --atomic
`
--atomic 플래그는 업그레이드 작업이 실패할 경우 모든 변경 사항이 롤백되도록 보장합니다.
더 알아보기 (Learn more)
- Linkerd Releases
- mTLS 루트 인증서 직접 생성하기
- Cilium 클러스터 구성