본문 바로가기
반응형

Kubernetes21

[kubernetes] IPVS에 대해 알아보자! Kubernetes의 IPVS 모드는 네트워크 트래픽 라우팅을 위해 **Linux 커널의 IP 가상 서버(IPVS, IP Virtual Server)**를 사용하는 kube-proxy의 실행 모드 중 하나입니다. IPVS는 iptables보다 더 효율적이고 고성능의 트래픽 처리와 부하 분산 기능을 제공합니다.IPVS란?**IP Virtual Server (IPVS)**는 Linux 커널에서 제공하는 L4(Transport Layer) 부하 분산 기술입니다.네트워크 트래픽을 가상 IP 주소(Virtual IP)로 받아 백엔드 서버(Pod 등)로 분산합니다.Connection Tracking 기능을 통해 상태 기반(stateful) 연결 관리가 가능합니다.주요 특징:부하 분산 알고리즘 지원.고속 패킷 처리... 2024. 12. 21.
Kubernetes의 Node Scheduling Kubernetes의 Node Scheduling은 클러스터에서 Pod가 실행될 적절한 Node를 선택하는 과정입니다. Kubernetes Scheduler가 이를 담당하며, 특정 Pod가 실행될 Node를 결정하기 위해 다양한 조건과 제약을 고려합니다.Node Scheduling의 주요 과정Scheduling 후보 Node 필터링 (Filtering)Scheduler는 클러스터 내에서 실행 가능한 Node를 찾기 위해 필터링 과정을 수행합니다.예를 들어, 다음 조건에 맞지 않는 Node는 제외됩니다:Node가 충분한 리소스(CPU, 메모리 등)를 가지고 있는지.Pod의 nodeSelector, nodeAffinity, 또는 taints에 맞는 Node인지.Node 상태가 Ready인지.적합한 Node .. 2024. 12. 19.
[kubernetes] ingress controller - nginx 업그레이드 Kubernetes에서 NGINX Ingress Controller를 버전 업하는 방법은 주로 Helm을 사용하는 방법과, kubectl을 통해 직접 리소스를 업데이트하는 방법이 있습니다. 여기서는 두 가지 방법을 모두 설명드리겠습니다.1. Helm을 사용하여 NGINX Ingress Controller 버전 업그레이드NGINX Ingress Controller를 Helm을 통해 설치한 경우, Helm을 사용하여 버전을 업그레이드할 수 있습니다.1.1. NGINX Ingress Controller 버전 확인먼저, 현재 설치된 Ingress Controller의 버전을 확인합니다.bash코드 복사helm list -n 는 Ingress Controller가 설치된 네임스페이스입니다(예: ingress-ng.. 2024. 12. 9.
[kubernetes] 에러 Unable to connect to the server: tls: failed to verify certificate: Unable to connect to the server: tls: failed to verify certificate: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")설치후 kubectl 을 사용할경우 위와 같이 에러가 발생한다.인증서가 제대로 설정이 안된 문제mkdir-p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME.. 2024. 12. 8.
helm plugin 수동 설치 - windows helm plugin install https://github.com/chartmuseum/helm-pushError: exec: "sh": executable file not found in %PATH% Helm 플러그인을 수동으로 설치helm-push 플러그인을 수동으로 설치하여 sh 없이도 사용할 수 있습니다.Git 리포지토리 복제:bash코드 복사git clone https://github.com/chartmuseum/helm-push.git바이너리 다운로드: Releases 페이지에서 Windows용 바이너리를 다운로드합니다.플러그인 디렉터리로 복사: Helm의 플러그인 디렉터리에 바이너리를 복사합니다. 디렉터리는 일반적으로 다음 경로에 있습니다:예를 들어, chartmuseum 폴더를 생성한 .. 2024. 11. 25.
daemonset, deployment, statefulset 비교 정리 Kubernetes에서 DaemonSet, Deployment, StatefulSet은 애플리케이션을 배포하고 관리하는 데 사용되는 세 가지 주요 리소스입니다. 각각의 목적과 동작 방식이 다르며, 특정 상황에 적합한 기능을 제공합니다. 이 세 가지 리소스를 자세히 설명하겠습니다. 1. DaemonSet개념: DaemonSet은 클러스터 내의 모든 노드에서 특정 애플리케이션의 복사본을 실행하도록 보장합니다. 새로운 노드가 클러스터에 추가되면, 해당 노드에도 자동으로 Pod가 생성됩니다. 마찬가지로 노드가 클러스터에서 제거되면 그 노드에서 실행 중인 Pod도 제거됩니다.주요 특징:클러스터의 모든 노드 또는 특정 레이블이 있는 노드에 애플리케이션을 배포합니다.로그 수집 에이전트, 모니터링 에이전트, 네트워크 .. 2024. 11. 10.
Istio 의 컴포넌트 1. PilotPilot은 Istio의 트래픽 관리 컴포넌트로, 서비스 간의 트래픽을 어떻게 라우팅할지 결정합니다.애플리케이션과 관련된 트래픽 규칙(예: 라우팅 정책, 리트라이, 타임아웃 등)을 관리하며, 이 정보를 각 사이드카 프록시(Envoy)에게 전달합니다.이를 통해 사용자는 트래픽 라우팅 전략을 중앙에서 제어하고, Canary 배포나 A/B 테스트 같은 트래픽 제어 정책을 쉽게 적용할 수 있습니다.2. Envoy (사이드카 프록시)Envoy는 사이드카 형태로 각 애플리케이션 Pod에 배포되는 프록시입니다. Istio는 이 Envoy 프록시를 활용해 트래픽을 가로채고 제어합니다.Envoy 프록시는 서비스 간의 모든 트래픽을 가로채서 관찰하고, Pilot에서 전달받은 트래픽 관리 정책을 기반으로 트래.. 2024. 11. 9.
[kubernetes] ingress 를 거치는 통신 과정 Kubernetes에서 Ingress는 외부 클라이언트가 클러스터 내부의 서비스에 접근할 수 있도록 경로를 제공하는 API 객체입니다. 이를 통해 클러스터 내의 여러 서비스에 하나의 엔드포인트를 통해 접근할 수 있게 하며, 호스트 기반 또는 경로 기반의 라우팅을 지원합니다.Kubernetes Ingress를 통한 통신 흐름은 다음과 같은 단계를 거칩니다:클라이언트 요청:외부 클라이언트(사용자 또는 애플리케이션)가 웹 브라우저나 애플리케이션을 통해 HTTP 또는 HTTPS 요청을 보냅니다.이 요청은 Ingress 컨트롤러가 구동 중인 노드의 IP 주소나 도메인 이름을 타겟으로 합니다.Ingress Controller:클러스터 내에 배포된 Ingress 컨트롤러가 외부 요청을 감지합니다.Ingress 컨트롤.. 2024. 11. 7.
CKA 합격 후기 및 팁 목차   시험 보는 이유작년에 시간될때 취득하려고 50% 할인할때 등록해놨는데문득 사용하지도 않는 서비스를 나중을 대비해서 취득해야하나 싶기도 하고 차라리 강의 들으면서 혼자 해보는게 더 낫지 않을까 해서 환불을 했습니다.그러다가 최근 시간이 나서 다시 도전하게 됐네요. 이 자격증은 엄청 유용하다기 보다는 자신이 사용하는 쿠버네티스 해본 경험을 증명한다는 느낌으로 보시면 될것 같습니다.사용하는 분야마다 k8s를 다루는 범위가 매우 다르다고 생각 되네요. 저같은 경우는 관리랑 cicd 및 trouble shooting 하는데 cicd 부분이나 cloud와 엮어서 사용하는 부분은 없어서 실무에서 쿠버네티스를 운영할 수 있다라는 증명은 완전하게 할 수는 없을 것 같습니다.게다가 클라우드에서는 control p.. 2024. 6. 4.
[kubernetes] "connection to the server controlplane:6443 was refused" 오류 트러블슈팅 connection to the server controlplane:6443 was refused"Kubernetes API 서버가 실행 중이지 않음: 마스터 노드의 Kubernetes API 서버가 작동 중이지 않거나 제대로 구성되지 않은 경우 발생할 수 있습니다. API 서버가 정지되었거나 재시작되었는지 확인하십시오.Kubernetes API 서버에 연결할 수 있는 네트워크 문제: 방화벽 설정이나 네트워크 연결 문제로 인해 마스터 노드의 6443 포트에 연결할 수 없는 경우 발생할 수 있습니다. 방화벽 설정을 확인하고, 네트워크 연결 상태를 점검하세요.kubectl 구성 파일이나 환경 변수 오류: kubectl이 Kubernetes 클러스터에 연결하는 데 사용하는 구성 파일(config 파일)이나 환.. 2024. 5. 10.
AWS EKS fargate profile 이란? 목차 AWS 에서 제공하는 fargate orchestration 도구 정의 Fargate Profile은 사용자가 기본 컴퓨팅 인프라를 관리할 필요 없이 컨테이너를 배포하고 관리할 수 있게 해주는 AWS의 새로운 기능입니다. Fargate Profile은 AWS의 컨테이너 오케스트레이션 엔진인 Amazon Elastic Container Service(Amazon ECS)를 활용하여 컨테이너 워크로드의 배포, 확장 및 관리를 자동화합니다. Fargate Profile을 사용하면 사용자는 컨테이너화된 애플리케이션을 위한 보안 환경을 신속하게 생성할 수 있으므로 기본 컴퓨팅 인프라를 관리하는 대신 애플리케이션 코드를 구축하고 배포하는 데 집중할 수 있습니다. 또한 Fargate Profile은 트래픽 패턴.. 2024. 3. 26.
[kubernetes] CSI(pv, pvc) 에대해 , pvc가 필요한 이유가 무엇일까? 목차 docker를 사용할때 persist volume을 사용해본 경험이 있을것이다. 그런데 kubernets를 사용하게되면서 pvc라는게 생겼다 그러다보니 pv에 pod를 연결하면 되는데 왜 굳이 pvc 를 사용하는것일까? 라는 의문이 생겼다. pvc 를 사용하는 이유 MSA 구조를 적용하게 되면서 pod마다 격리되는 환경을 구성을 하게 된다. 그런데 기존의 docker에서는 하나의 서버내에서 스토리지를 공유하여 사용하는게 보통이다. 물론 외부 스토리지를 바인딩하여 사용하면 되겠지만 후술할 동적 프로비저닝이 없어서 가용성이 docker에서는 kubernetes에 비해 없다시피하다. 1. 추상화 PVC를 사용하면 개발자는 기본 인프라 세부 정보를 알 필요 없이 스토리지 리소스를 요청할 수 있으므로 애플리.. 2024. 3. 15.
반응형