k8s 23

[k8s] Service Mesh

안녕하세요. Service Mesh 기술에 대해 이해하기 위해 작성한 글입니다. Service Mesh MSA에서 마이크로서비스 간의 통신이 Mesh 네트워크 형태를 띄는 것을 말합니다. 서비스가 아니라 서비스의 네트워크 처리를 추상화한 Proxy를 그물처럼 엮은 것입니다. Pod 간 통신 경로에 Proxy를 놓고 트래픽 모니터링이나 트래픽 컨트롤이 가능합니다. 따라서, Service Mesh는 서비스를 구현한 어플리케이션에 구축된 전용 인프라 계층(Infrastructure Layer)이며, 서비스 간의 통신을 처리합니다. 링크를 참고하면 많은 Service Mesh 기술이 있지만 주로 사용되는 예로 Istio, Linkerd, AWS App Mesh 등이 있습니다. 과거에 Spring Cloud Ne..

IT/Container&k8s 2023.10.29

[k8s] cluster install - cri-o runtime error

안녕하세요. 클러스터 구성 중 아래와 같은 런타임 이슈가 발생하여 내용을 정리했습니다. Error) The connection to the server localhost:8080 was refused — did you specify the right host or port ubuntu@k8s-master:~$ kubectl get nodes E0421 07:15:32.302425 2164 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused E0421 07:15:32.30279..

IT/Container&k8s 2023.10.29

[k8s] Security

안녕하세요. CloudNet@ K8S Study를 진행하며 해당 내용을 이해하고 공유하기 위해 작성한 글입니다. DevOps 이정훈님의 도서 ‘24단계 실습으로 정복하는 쿠버네티스’ 의 내용을 바탕으로 스터디를 하며 어떻게 k8s에 적용할지 고민하며 정리해봤습니다. 사전 환경 # YAML 파일 다운로드 $ curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/kops-oneclick-f1.yaml # CloudFormation 스택 배포 : 노드 인스턴스 타입 변경 - MasterNodeInstanceType=t3.xlarge WorkerNodeInstanceType=t3.large $ aws cloudformat..

IT/Container&k8s 2023.10.29

[k8s] Monitoring(Prometheus, Grafana, Loki)

안녕하세요. CloudNet@ K8S Study를 진행하며 해당 내용을 이해하고 공유하기 위해 작성한 글입니다. DevOps 이정훈님의 도서 ‘24단계 실습으로 정복하는 쿠버네티스’ 의 내용을 바탕으로 스터디를 하며 어떻게 k8s에 적용할지 고민하며 정리해봤습니다. 사전 환경 # YAML 파일 다운로드 $ curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/kops-oneclick-f1.yaml # CloudFormation 스택 배포 : 노드 인스턴스 타입 변경 - MasterNodeInstanceType=t3.medium WorkerNodeInstanceType=c5d.large $ aws cloudforma..

IT/Container&k8s 2023.10.29

[k8s] GitOps(Image registy, Source repository, Continuous Delivery)

안녕하세요. CloudNet@ K8S Study를 진행하며 해당 내용을 이해하고 공유하기 위해 작성한 글입니다. DevOps 이정훈님의 도서 ‘24단계 실습으로 정복하는 쿠버네티스’ 의 내용을 바탕으로 스터디를 하며 어떻게 k8s에 적용할지 고민하며 정리해봤습니다. 사전 환경 # YAML 파일 다운로드 $ curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/kops-oneclick-f1.yaml # CloudFormation 스택 배포 : 노드 인스턴스 타입 변경 - MasterNodeInstanceType=t3.medium WorkerNodeInstanceType=c5d.large $ aws cloudforma..

IT/Container&k8s 2023.10.29

[k8s] Storage

안녕하세요. CloudNet@ K8S Study를 진행하며 해당 내용을 이해하고 공유하기 위해 작성한 글입니다. DevOps 이정훈님의 도서 ‘24단계 실습으로 정복하는 쿠버네티스’ 의 내용을 바탕으로 스터디를 하며 어떻게 k8s에 적용할지 고민하며 정리해봤습니다. 사전작업 EC2 인스턴스 스토어(임시 블록 스토리지) 설정 작업을 진행합니다.[참고] 인스턴스 스토어는 인스턴스에 블록 수준의 임시 스토리지를 제공합니다. Amazon EC2 인스턴스 스토어 인스턴스 스토어는 스토리지 정보에 출력되지 않습니다. 스토리지 기본 파드 내부의 데이터는 파드가 정지되면 모두 삭제됩니다. 즉, 파드가 모두 상태가 없는(Stateless) 애플리케이션입니다. 데이터베이스(파드)처럼 데이터 보존이 필요 == 상태가 있는(..

IT/Container&k8s 2023.10.29

[k8s] Network

안녕하세요. CloudNet@ K8S Study를 진행하며 해당 내용을 이해하고 공유하기 위해 작성한 글입니다. DevOps 이정훈님의 도서 ‘24단계 실습으로 정복하는 쿠버네티스’ 의 내용을 바탕으로 스터디를 하며 어떻게 k8s에 적용할지 고민하며 정리해봤습니다. 사전 작업 쿠버네티스 네트워크 1. AWS VPC CNI K8S CNI : Container Network Interface는 k8s 네트워크 환경을 구성해줍니다. AWS VPC CNI : 파드의 IP를 할당해줍니다. 파드의 IP 네트워크 대역과 노드의 IP 대역이 같아서 직접 통신이 가능합니다. 파드간 통신 시 일반적으로 K8S CNI는 오버레이(VXLAN, IP-IP 등) 통신을 하고, AWS VPC CNI는 동일 대역으로 직접 통신을 합..

IT/Container&k8s 2023.10.29

[k8s] Kube DNS & External DNS

안녕하세요. CloudNet@ K8S Study를 진행하며 해당 내용을 이해하고 공유하기 위해 작성한 글입니다. DevOps 이정훈님의 도서 ‘24단계 실습으로 정복하는 쿠버네티스’ 의 내용을 바탕으로 스터디를 하며 어떻게 k8s에 적용할지 고민하며 정리해봤습니다. [Kube DNS] k8s는 Kube DNS를 내부 DNS 서버로 활용합니다. GKE kube-dns architecture 각 노드에서 실행되는 kubelet은 kube-dns 서비스의 ClusterIP를 사용하도록 Pod의 etc/resolv.conf를 구성합니다. kube-dns는 클러스터 도메인(cluster.local)의 권한 있는 네임서버이며 외부 이름을 재귀적으로 확인합니다. kube-dns의 ConfigMap을 수정하여 클러스터..

IT/Container&k8s 2023.10.29

[k8s] Kubernetes Operations (kOps) Install in AWS

안녕하세요. CloudNet@ K8S Study를 진행하며 해당 내용을 이해하고 공유하기 위해 작성한 글입니다. DevOps 이정훈님의 도서 ‘24단계 실습으로 정복하는 쿠버네티스’ 의 내용을 바탕으로 스터디를 하며 어떻게 k8s에 적용할지 고민하며 정리해봤습니다. kOps는 클라우드 플랫폼(aws, gcp, azure 등)에서 쉽게 k8s 를 설치할 수 있도록 도와주는 도구입니다. kOps 설치 [사전 작업] kubectl 설치 반드시 64-bit (AMD64 그리고 Intel 64)디바이스 아키텍쳐에kops설치 AWS 계정이 있고 IAM 키를 생성하고 구성. IAM 사용자는 적절한 권한이 필요 클러스터에 사용할 route53 domain 생성 — kops는 클러스터 내부와 외부 모두에서 검색을 위해 ..

IT/Container&k8s 2023.10.29

[k8s] Tracing the path of network traffic

쿠버네티스 내의 트래픽 흐름이 궁금하여 찾아보다 k8s에서 네트워크 트래픽의 경로를 tracing하는 article을 참고하여 정리한 글입니다. 해당 article에 관련 내용이 상세하게 설명되어있어 k8s 내의 네트워크 트래픽 흐름을 이해하는데 도움이 되시길 바랍니다. Pod에서 Linux network namespace 동작 방식 1. Pod는 Node에서 자체 network namespace를 가져옵니다. 2. Pod에 IP 주소가 할당되고 두 컨테이너 간에 port가 공유됩니다. 3. 두 컨테이너는 동일한 네트워킹 namespace를 공유하며 localhost에서 서로를 볼 수 있습니다. 물리적 네트워크 인터페이스는 root network namespace를 보유합니다. Linux network ..

IT/Network&Security 2023.10.29