본문 바로가기
반응형

Service Mesh16

[Linkerd] 버전 업그레이드 이번 포스팅에서는 Linkerd 2.12.4 -> 2.13.1로 업그레이드하는 절차를 기록하려 한다. 버전이 올라가면서 Linkerd에서 사용하는 resource의 이름이나 스펙이 바뀌거나 한다면 이에 맞게 Helm values.yaml 파일을 다시 작성해야 할 수도 있고, Linkerd와 EKS 등 버전 호환성 문제를 고려해야 하는 상황이 필요할 수도 있다. 이 모든 내용은 release node를 통해 확인할 수 있기 때문에 먼저 release notes를 꼼꼼히 확인해야 한다. 아래는 공식 홈페이지에서 제공하는 업그레이드 시 주의사항이다. 다행히 2.12 -> 2.13 업그레이드 시 특별한 추가 Step은 없다는 걸 확인할 수 있다.업그레이드 관련 공식 홈페이지 참조: https://linkerd.. 2023. 4. 19.
[Linkerd] 트래픽 Retry, Timeout linkerd는 ServiceProfile이라는 CRD를 사용하여 경로별 Retry, Timeout 설정을 할 수 있다. Retry서비스가 클라이언트의 요청을 받아 처리하는데, 요청이 실패할 경우 다시 보내는 기능이다.가끔 요청이 실패할 경우 다시 보내어 클라이언트 기준 요청 성공률을 높일 수 있다. 하지만 클라이언트가 과도하게 재시도를 수행하면 서비스는 이를 처리하지 못하고 과부하 상태 및 잠재적인 장애 증상을 일으킬 수 있음에 주의해야 한다. Timeout서비스의 요청 처리 시간이 일정 시간 이상 걸릴 경우 해당 요청을 종료하는 기능이다. 클라이언트와 서버와의 통신이 끊어져 있거나 지연되고 있는 상황에서 클라이언트가 무한정 기다리는 것을 방지할 수 있다. 하지만 처리 중인 요청을 종료하여 문제를 일.. 2023. 4. 19.
[Linkerd] 권한 부여 정책 Linkerd는 권한 부여 정책을 사용하여 mesh pod에 트래픽을 제어할 수 있다. Linkerd 에서는 두 가지 메커니즘을 사용한다.Kubernetes annotation을 이용하여 네임스페이스 및 워크로드 레벨에서 설정할 수 있는 기본 정책.- 특정 네임스페이스에서 허용되지 않은 트래픽을 차단하거나, 특정 워크로드에서만 제한된 트래픽을 허용하는 등의 제어를 할 수 있다.Linkerd의 Custom Resource Definition(CRD)를 통해 특정 포트, 경로, 워크로드 등에 대해 세분화된 정책 지정.- 특정 경로에서만 특정 유저에게 트래픽을 허용하거나, 특정 포트로 전송되는 트래픽의 유형을 제한하는 등의 제어를 할 수 있다. Default Policypod에 Linkerd-proxy 사이드.. 2023. 4. 5.
[Linkerd] mTLS 통신 검증 기본적으로 Linkerd는 "linkerd.io/inject: enabled"에 의해 사이드카 proxy가 주입되면 주입된 pod 간의 모든 TCP 트래픽은 자동으로 mTLS 통신을 하게 된다.mTLS란?- TLS는 클라이언트와 서버 간의 통신을 한 방향으로 인증하여 통신을 보호하지만 mTLS는 클라이언트와 서버 간의 통신을 양 방향으로 상호 인증하여 통신을 보호한다. 즉, mTLS는 클라이언트와 서버 간의 통신을 양방향으로 암호화하여 더욱 안전한 통신을 제공한다. mTLS는 통신하는 각 컴포넌트마다 인증서와 비밀 키가 필요하며, Linkerd는 자동으로 인증서 및 비밀 키를 관리하고 이를 기반으로 서로 간의 인증과 암호화를 수행합니다. 이를 통해, 컨테이너 간의 안전한 통신을 보장하고 보안 상의 문제.. 2023. 4. 5.
[Linkerd] 사이드카 주입 proxy-injector는 Kubernetes의 Admission Controller 중 하나로, Kubernetes API Server가 Pod 생성 요청을 받으면, 이 요청을 가로채서 Pod 생성 시 자동으로 Linkerd 프록시 컨테이너를 함께 생성하고, 이를 통해 모든 네트워크 트래픽을 프록시를 거쳐서 보낼 수 있도록 설정한다. 이렇게 생성된 Pod는 Linkerd 프록시 컨테이너가 사이드카 패턴으로 추가되어, 네트워크 트래픽을 중개하는 역할을 수행하게 된다. 이번 포스팅에서는 Linkerd-proxy 사이드카 컨테이너를 주입하여 pod끼리 통신하는 실습을 다룬다. 실습 Linkerd proxy 사이드카가 주입되기 위해서는 Pod annotations에 "linkerd.io/inject: e.. 2023. 4. 5.
[Linkerd] 대시보드 ID, Password 변경 Linkerd 대시보드에 접근하려면 ID, Password 정보가 담긴 Secret을 생성하고, Ingress의 auth-secret을 이용하여 Ingress-nginx-controller를 통해 접근해야 한다. 이번 글에서는 기존의 ID, Password를 변경하기 위해 htpasswd 명령도구를 사용하여 ID, Password 저장 파일을 만들고 이를 이용하여 새로운 Secret을 생성하는 실습을 다룬다.htpasswd란?- 웹 서버의 인증 시스템에서 사용되는 유저 ID, Password 를 관리하는 도구이다. 먼저 htpasswd 명령을 사용하기 위해 패키지를 설치해야 한다. 패키지 설치 CentOS$ yum install httpd-tools Ubuntu$ apt install apache2-.. 2023. 4. 5.
[Linkerd] 대시보드 구성 Linkerd는 추가 설정을 통해 대시보드 화면을 Web UI로 볼 수 있다.대시보드를 구축하면 서비스 메시를 더욱 효율적으로 관리하고 모니터링할 수 있게 된다. 이를 통해 서비스의 성능 개선 및 문제 해결에 도움이 될 수 있다. 이번 실습에서는 kubernetes ingress-nginx-controller와 linkerd-viz Helm 차트를 사용한다.실습 전 [ Linkerd 설치 ] 작업을 먼저 진행해야 한다. Linkerd 설치Linkerd 설치는 linkerd cli와 Helm을 이용하는 방법이 있다. production 환경에서 Helm차트를 이용하여 설치하는 것을 권장한다. ​ 해당 글에서는 Linkerd에서 사용하는 인증서를 자동으로 발급하고 관리하wlsdn3004.tistory.com.. 2023. 4. 4.
728x90
반응형