분류 전체보기 640

ExternalDNS로 Route53에 cname레코드 등록 방법

시작하며 종종 Route53에 cname 설정이 필요할 때가 있습니다. EKS에서 ExternalDNS를 사용하면 디폴트 설정으로 A레코드가 등록됩니다. 따라서 ExternalDNS로 cname을 설정할려면 추가 설정이 필요합니다. cname설정 방법 방법은 간단합니다. ingress annotations필드에 "external-dns.alpha.kubernetes.io/target"를 지정하면, A레코드 대신 cname이 설정됩니다. apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-ingress annotations: external-dns.alpha.kubernetes.io/hostname: nginx.example.com e..

IPv6 Happy Eyeballs 알고리즘

IPv6를 사용하는 클라이언트는 Happy Eyeballs 알고리즘이 내장될 확률이 높습니다. Happy eyeballs 알고리즘은 도메인을 요청할 때 IPv6를 먼저 요청하고, IPv6 요청이 실패하면 IPv4요청을 합니다. 아래 예제를 보면 Happy Eyeballs 알고리즘을 이해하기 쉽습니다. IPv6 클라이언트가 듀얼스택이 설정된 AWS ALB 도메인은 호출한 상황인데요. 먼저 IPv6 IP을 호출했다가 실패하니 IPv4 IP 호출을 하고 있습니다.

카테고리 없음 2024.03.24

EKS IPv6에서 ArgoCD 설치 방법

1. EKS IPv6에서 ArgoCD를 설치한다는 의미는? EKS IPv6는 pod와 service가 모두 IPv6 IP를 사용합니다. 따라서 ArgoCD도 IPv6 IP를 지원해야 ArgoCD pod 실행 오류가 없습니다. 2. ArgoCD와 EKS IPv6 설치 호환 24년 3월 기준 ArgoCD는 듀얼스택 VPC에서 생성이 가능합니다. 공식문서에서 IPv6 쿠버네티스에서는 실행이 불가능하다고 말하고 있습니다. 다행히 EKS IPv6는 듀얼스택(host-local설정으로 듀얼스택모드 실행)모드?이므로 ArgoCD는 EKS IPv6에서 정상적으로 실행됩니다. 3. 하지만 ArgoCD 설치 오류 발생 하지만, ArgoCD가 사용하는 redis ha-proxy pod는 IPv6에서 실행되지 않습니다. 그..

EKS IPv6 VPC CNI 특징

1. EKS IPv6 VPC CNI 역할 EKS IPv6 VPC CNI는 IPv4와 동일하게 쿠버네티스 네트워킹을 담당합니다. 그러므로 VPC CNI가 올바르게 동작하지 않으면, pod에 IP가 할당이 안되거나 pod통신 과정에 문제가 발생합니다. 2. IPv6 VPC CNI에서 설정이 달라진 부분 IPv6와 IPv4 VPC CNI 역할은 같지만, 설정에서는 일부 차이가 있습니다. 2.1. 접두사 위임 디폴트 활성화 EKS IPv6 VPC CNI는 ENI 접두사 위임(Prefix Delegation)옵션이 디폴트로 활성화 되어 있습니다. IPv4에서는 비활성화되어 있습니다. 접두사 위임은 ENI(Elastic Network Interface)에 IP를 일일이 할당하는게 아니라, CIDR를 위임합니다. A..

EKS IPv6 생성방법

https://youtu.be/y6_NIvQ7hmA?si=GyCXBii-_Q6qhuH0 1. EKS IPv6란? EKS IPv6는 pod와 service가 모두 IPv6로 실행됩니다. 2. 언제 EKS IPv6를 사용하면 좋을까? 사설 IPv4대역이 고갈되었을 때 사용하면 매우 좋습니다. 고갈이라는 의미는 EKS가 사용하는 VPC 사설 CIDR이 회사 내에 모두 사용되고 있어, 더이상 VPC CIDR를 생성할 수 없을 때 입니다. VPC CIDR이 고갈되는 경우는 여러 VPC가 서로 연결되어 있을 때 고갈됩니다. 3. 제약사항 EKS IPv6노드는 Nitro를 지원하는 EC2인스턴스 타입만 사용할 수 있습니다. 그리고 security group for pod 기능을 사용하지 못합니다. 그 이외 제약사항..

IPv6 소켓 프로그래밍

https://youtu.be/iw9dQUhV9rE?si=8z6Hb_JT34ux2De0 IPv6 전환 시 코드에서 가장 고민해야할 내용은 소켓 프로그래밍입니다. IPv4 소켓을 사용하면 IPv4통신은 가능하지만 IPv6통신은 불가능합니다. 예를 들어 웹 애플리케이션을 실행할 때 0.0.0.0 주소를 사용하는데, 이 주소를 사용하면 애플리케이션이 실행되면서 IPv4 소켓을 운영체제에 bind합니다. 그러므로 IPv6주소로 서버를 호출하면, 서버를 연결할 수 없다는 오류 메세지를 만납니다. 서버는 IPv4소켓을 사용하므로 IPv6 요청을 처리할 수 없기 때문입니다. IPv6소켓을 사용하려면 소켓타입을 IPv6로 사용하고 bind주소를 "::"를 사용해야 합니다.

10년 후에 데브옵스 직무가 필요할까?

10년 뒤면 AI발전 등으로 인해 개발자가 많이 줄거라는 말이 있습니다. 그대로 빗대어 데브옵스라는 직무는 10년 뒤에 존재할까라는 고민을 해봤습니다. 음.. 개인적으로는 데브옵스 직무는 없어질 것 같습니다. AI발전 영향보다는 "개발자의 상향 평준화"때문에 데브옵스 직무가 사라질 거라고 생각합니다. 얕은 생각일 수 있지만, 데브옵스 직무가 나온 배경은 당시 개발기술과 운영기술의 격차가 벌어졌기 때문이라고 생각합니다. 몇 개 기업을 제외하고는 운영기술 발전속도보다 개발기술 속도가 빨랐고 이 격차를 줄이기 위해 데브옵스라는 직무가 생겼다고 생각합니다. 하지만 지금은 클라우드, IaC, CI/CD 등 운영기술이 많이 발전하였고 개발자도 상향 평준화 되었기 때문에 개발자가 이미 데브옵스를 하고 있습니다. 물리..

회고모음 2024.03.15

karpenter 0.2x -> 0.3x 버전 업그레이드 주의사항

karpenter 0.2x -> 0.3x버전 업그레이드시, 버전이 0.33버전 이상이라면 0.32버전을 한번 거쳐서 업그레이드 하셔야 합니다. 0.33버전부터는 provisioner CRD를 지원하지 않아 provisioner로 생성된 노드가 종료될 수 있고 서비스 장애로 이어집니다. 0.33이상 부터는 Nodepool, Nodeclass를 사용합니다. 0.2x -> 0.32 업그레이드 과정은 아래 순서대로 진행됩니다. 0.32로 karpenter를 업그레이드 합니다. provisioner설정을 Nodepool, Nodeclass 설정에 맞게 설정을 옮깁니다. 그리고 Nodepool, Nodeclass를 배포합니다. Nodepool, Nodeclass와 provisioner가 동시에 실행되야 합니다. p..