본문 바로가기

전체 글288

[KANS-9주차] Topology Aware Routing 해당 내용은 kubernetes 1.23 beta에서 시행된 내용입니다.1.27 이전에는 Topology Aware Hints라는 내용으로 잘 알려져있습니다. kubernetes 공식문서에서 확인할 수 있습니다.기능가장 활용도가 높은 곳은 아무래도 multi-zone을 사용하는 환경에서 매우 좋습니다. 해당 기능의 목적은 해당 존에서 발생한 트래픽은 해당 존에서 유지되는 것을 목표로 합니다.  활용도비용적인 측면에서도 다른 AZ에 대해서 통신을 하지 않기 때문에 많이 절약할 수 있고 네트워크 홉도 줄 일 수 있게 됩니다. 아무래도 각 AZ 별로 엔드포인트가 많아야 효용이 높습니다. 활용 방법service.kubernetes.io/topology-mode=auto 라는 annotation을 service에.. 2024. 10. 31.
[Error] no match for platform in manifest: not found 문제컨테이너를 배포하였는데, 다음과 같이 no match for platform 에러가 발생한다면, 당신이 사용하는 컨테이너 이미지가 실제 컨테이너 환경의 호스트의 아키텍처와 일치하지 않기 때문에 발생하는 에러이다. Warning Failed 9s (x3 over 55s) kubelet Failed to pull image "kingdom0220/version-patch:v1": rpc error: code = NotFound desc = failed to pull and unpack image "docker.io/kingdom0220/version-patch:v1": no match for platform in manifest: not found Warning Fa.. 2024. 10. 31.
[KANS-9주차] Ingress와 Gateway API Ingress 소개Ingress는 클러스터 내부의 서비스(Cluster IP, NodePort 등)를 외부로 노출시켜 Web Proxy 역할을 하는 쿠버네티스 오브젝트이다.기존에 NodePort는 노드 포트를 노출해야하는 단점이 있으므로 대부분 LoadBalancer 타입을 쓸 것이다.다만 문제는 LoadBalancer의 경우 L4 계층에서 동작하므로 TCP/UDP와 같은 프로토콜을 읽을 수 있으며, HTTP와 같은 프로토콜의 정보를 세부적으로 읽을 수 없다. 그래서 L7에서 동작하는 Ingress를 통해서 외부에서 들어오는 HTTP 정보도 읽을 수 있도록 설정할 수 있다. 외부 로드 밸런서AWS LoadBalancer Controller (Ingress Controller)가 Ingress 규칙을 파악.. 2024. 10. 31.
[KANS-9주차] AWS의 로드밸런서 모드 정리 해당 블로그 글을 참조해서 작성한다. AWS LoadBalancer Controller의 필요성과 기능AWS 로드밸런서 컨트롤러를 통해서 사용자는 좀 더 쉽게 EKS에서 service 타입으로 외부에 서비스를 노출할 수 있다.  특히 자동으로 대상 그룹에 등록할 수 있는 TargetGroupBinding이라는 CRD 항목도 제공해서 자동으로 Pod의 IP를 대상그룹으로 등록해주고 심지어는 IP가 바뀔때마다 자동으로 배포해주고 health check도 진행한다는 점에서 매우 간편하고 운영 효율성이 높아지게 된다.뿐만아니라 AWS의 WAF 등 다양한 서비스와 결합이 가능하기 때문에 매우 좋다.로드밸런서 컨트롤러는 타겟 유형에 따라서 다음과 같이 2가지 모드를 지원하고 있다. Instance 모드Instanc.. 2024. 10. 30.
[KANS-9주차] VPC CNI와 EKS AWS VPC CNICNI는 Container Network Interface로 컨테이너 간의 소통에 반드시 필요한 플러그인이다. 쿠버네티스가 컨테이너 오케스트레이션 툴이기 때문에 사실상 CNI가 없다면 쿠버네티스 네트워크가 없다는 것과 동일한 말이다.그 중 오늘은 AWS VPC CNI에 대해서 작성해본다. AWS에서 제공하는 플러그인으로 CNI인데 컨테이너가 VPC 내부로 편입할 수 있도록 네트워킹을 구성해주는 플러그인이다. 이를 이용하면 파드와 노드의 IP 대역을 같도록 맞춰준다. 즉 같은 네트워크 대역대에서 통신하므로 원본 패킷을 그대로 유지하고 네트워크 홉을 줄일 수 있다는 장점이 있다.  공식문서에서도 확인해보기 바란다. Amazon VPC CNI - Amazon EKSThe most frequ.. 2024. 10. 28.
[KANS-3기] 여러기능 (Network Policy/Bandwidth Manager/L2 Announcements) Network PolicyCilium은 L3, L4 뿐 아니라 Envoy를 통해서 L7 까지 통제를 할 수가 있다. 아무래도 Envoy를 사용하기 때문에 다양한 기능이 가능한 것 같다. Cilium은 3가지 기반의 보안 레벨을 제공한다. ID(Identity-Based)기반 (L3보안)아래 그림에서 role=frontend라고 라벨을 가지고 오는 통신은 role=backend라는 라벨이 붙은 리소스에 연결을 허용한다. 해당 라벨을 ID를 말한다고 볼 수 있다. 이에 해당하는 yaml은 다음과 같다.apiVersion: "cilium.io/v2"kind: CiliumNetworkPolicymetadata: name: "l3-rule"spec: endpointSelector: matchLabels:.. 2024. 10. 27.