클라우드

    [network] switching routing

    routing 한 네트워크에서 다른 네트워크로 패킷을 이동시키는 과정과 네트워크 안의 호스트에게 패킷들을 전달하는 과정 경로 설정 : 데이터 패킷이 출발지부터 목적지까지 갈 수 있는 경로를 검사하고 어떤 경로로 가는 것이 최선인지 결정 스위칭 : 경로 설정이 결정될 경우 데이터 패킷 스위칭 작업을 함 routing table 패킷이 목적지, 목적지까지의 거리와 가는 방법 등을 명시하고 있는 테이블 시간에 따라 주기적으로 업데이트하며 라우터기기의 손상이나 새로운 경로 생성이나 제거에 따라 변화함 $ route 명령어로 확인 가능 destination : 목적지 gateway : 외부 네트워크와 연결하기 위한 게이트웨이 주소 genmast : 목적지 네트워크의 넷마스크 주소. 255.255.255.255로 ..

    [kubernetes] 쿠버네티스 아키텍처

    쿠버네티스 클러스터의 전체 구조 쿠버네티스 클러스터는 크게 두 종류의 서버로 구성한다. 1. 클러스터를 관리하는 마스터 etcd, kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy, docker 등의 컨테이너가 실행된다. 2. 실제 컨테이너를 실행시키는 노드 kubelet, kube-proxy, docker 마스터는 보통 고가용성을 만족하고자 서버 3대 정도 구성해서 운영한다. 평소 실제 클러스터를 관리하는 마스터는 1대고 나머지 2대는 대기한다. 리더 마스터에 장애가 발생하면 자연스럽게 나머지 2대 중 1대가 리더 역할을 맡는다. 실제 사용하는 컨테이너 대부분은 노드에서 실행된다. 각 컴포넌트의 중심에 kube-ap..

    [kubernetes] IPv4/IPv6 이중 스택

    https://kubernetes.io/ko/docs/concepts/services-networking/dual-stack/ IPv4/IPv6 이중 스택 FEATURE STATE: Kubernetes v1.21 [beta] IPv4/IPv6 이중 스택 네트워킹을 사용하면 파드와 서비스에 IPv4와 IPv6 주소를 모두 할당할 수 있다. IPv4/IPv6 이중 스택 네트워킹은 1.21부터 쿠버네티스 클러스터에 기본 kubernetes.io IPv4/IPv6란? IPv4 IPv4는 Internet protocol version 4의 약자이며 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이자 유일한 프로토콜로, IETF(인터넷 표준화 기구)RFC 791에 문서화 되어 있다. IPv4는 32비트 방식이다. 따..

    [kubernetes] host aliases

    https://kubernetes.io/ko/docs/tasks/network/customize-hosts-file-for-pods/ HostAliases로 파드의 /etc/hosts 항목 추가하기 파드의 /etc/hosts 파일에 항목을 추가하는 것은 DNS나 다른 방법들이 적용되지 않을 때 파드 수준의 호스트네임 해석을 제공한다. PodSpec의 HostAliases 항목을 사용하여 이러한 사용자 정의 항목들을 kubernetes.io HostAliases로 파드의 /etc/hosts 항목 추가하기 파드의 /etc/hosts 파일에 항목을 추가하는 것은 DNS나 다른 방법들이 적용되지 않을 때 파드 수준의 호스트네임 해석을 제공한다. PodSpec의 HostAliases 항목을 사용하여 이러한 사용자..

    [kubernetes] endpoints

    참고 블로그 Endpoints 쿠버네티스 클러스터를 쓰고 있는사람들은 Endpoints가 뭔지 어떻게 동작하는지 몰라도 그걸 뒤에서 쓰고 있습니다. 이 포스트에선 Endpoints를 직접사용하거나 문제가 발생할때 필요한 경우에 대비 ozt88.tistory.com Kubernetes - Endpoints - The IT Hollow It’s quite possible that you could have a Kubernetes cluster but never have to know what an endpoint is or… theithollow.com 개념 쿠버네티스 뒷단의 pod의 label을 사용해서 selector가 자동적으로 앞단의 service에 매칭한다 만약 새로운 pod들이 해당하는 label..

    [kubernetes] dnsutils, nslookup

    dnsutils https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/ Debugging DNS Resolution This page provides hints on diagnosing DNS problems. Before you begin You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. It is recommended to run this tutorial on a cluster with at kubernetes.io coredns란 쿠버네티스 클..

    [kubernetes] Volume

    볼륨 컨테이너는 기본적으로 상태가 없는 앱 컨테이너를 사용한다. 상태가 없다는 것은 컨테이너에 문제가 있거나, 노드에 장애가 발생해서 컨테이너를 새로 실행했을 때 다른 노드로 자류옵게 옮길 수 있다는 뜻이다. 이것이 컨테이너의 장점이다. 하지만 어떤 이유로든 컨테이너가 실행되지 않거나 삭제되었을 때 현재까지 저장한 데이터가 사라진다는 단점이 있다. 앱의 특성에 따라서 컨테이너에 문제가 생기더라도 데이터를 보존해야 할 때가 있다. 대표적 수단으로 데이터를 파일로 저장한느 젠킨스가 있다. MySQL 같은 데이터베이스도 컨테이너를 종료하거나 재시작했더라도 데이터가 사라지면 안된다. 이런 상황에서 볼륨을 사용한다. 볼륨을 사용하면 컨테이너를 재시작하더라도 데이터를 유지한다. 퍼시스턴트 볼륨을 사용하면 데이터를 ..

    [kubernetes] 파드 스케줄링

    쿠버네티스에서는 파드를 어떤 노드에 실행할 것인지에 관한 다양한 옵션이 있다. 이 옵션을 조합해서 사용자가 원하는 구조대로 클러스터 안에 파드들을 배치할 수 잇다. 특정 파드들을 노드 하나에 모아두거나 특정 IP대역의 노드들에서만 실행할 수도 있고, 반대로도 설정할 수 있다. 같은 기능이 있는 파드들이 노드 하나에 몰려있지 않게 골고루 분산해서 실행할 수도 있다. 관리가 필요한 노드가 있을 때 해당 노드에 있는 파드들을 다른 노드로 옮길 수도 있다. 1. 노드 셀렉터 가장 간단한 스케줄링 옵션으로는 파드의.spec 필드에 설정할 수 있는 노드셀렉터가 있다. 용어 그대로 노드를 선택하는 기능 파드가 클러스터 안 어떤 노드에서 실행될지를 키-값 쌍으로 설정한다. kubectl get nodes --show-..