728x90

쿠버네티스 54

Pod Affinity - topologyKey 상세 동작

어피니티는 노드 어피니티와 파드 어피니티가 있다. 노드 어피니티는 노드의 레이블을 검사하여 어떤 노드에 스케줄링할 지 결정하는 방법을 정의한 것이고, 파드 어피니티는 이미 스케줄링된 파드의 레이블을 검사하여 같은 노드에 스케줄링할 것인지 아닌지 결정하는 방법을 정의한 것이다. 파드 어피니티에 대해 topologyKey를 통한 파드 스케줄링이 어떻게 달라지는 지 연구해볼 것이다. 토폴로지 분배 제약 조건을 사용하여 지역(regions), 영역(zones), 노드 또는 사용자가 정의한 다른 토폴로지 도메인과 같은 장애 도메인 사이에서 파드가 클러스터 전체에 분산되는 방식을 제어할 수 있다. 성능, 예상 가용성 또는 전체 활용도를 개선하기 위해 이 작업을 수행할 수 있다. 현재는 클라우드 환경에서 진행하는 상..

Kubernetes 2024.01.03

Kubernetes 기초 - Scheduling(1)

NodeSelector         ←  오늘 볼 내용Affinity and Anti-affinity        ←  오늘 볼 내용Pod Overhead파드 스케줄링 준비성(Readiness)파드 토폴로지 분배 제약 조건Taints and Tolerationscordon and drainhttps://kubernetes.io/ko/docs/concepts/scheduling-eviction/assign-pod-node/ 노드에 파드 할당하기특정한 노드(들) 집합에서만 동작하거나 특정한 노드 집합에서 동작하는 것을 선호하도록 파드를 제한할 수 있다. 이를 수행하는 방법에는 여러 가지가 있으며 권장되는 접근 방식은 모두 레이kubernetes.io 1. NodeSelector 노드셀렉터에 대해서는 Lab..

Kubernetes 2024.01.03

Kubernetes 기초 - 로깅과 모니터링(2)

로깅쿠버네티스 대시보드        ←  오늘 볼 내용쿠버네티스 클러스터 모니터링2. 쿠버네티스 대시보드https://kubernetes.io/ko/docs/tasks/access-application-cluster/web-ui-dashboard/ 쿠버네티스 대시보드를 배포하고 접속하기웹 UI(쿠버네티스 대시보드)를 배포하고 접속한다.kubernetes.io  쿠버네티스를 운영할 때 매번 CLI환경으로 kubectl 명령만 입력하고 있으면 간혹 헷갈리거나 보기 어려울 때가 있을 것이다.이를 웹 기반 쿠버네티스 유저 인터페이스를 통해 파드나 서비스 등의 클러스터 리소스들을 관리할 수 있고 접근 권한 제어도 가능하다.생성, 삭제, 수정, 롤링 업데이트, 에러 정보확인 등 여러가지 역할을 수행할 수 있는 대시..

Kubernetes 2024.01.02

멀티 마스터 쿠버네티스 클러스터 구성 방법

구성 순서 개요 및 준비 환경 컨테이너 런타임 설치 kubeadm, kubelet, kubectl 설치 로드밸런서 생성 고가용성 클러스터 생성 마스터 join CNI 설치 워커 노드 join 기타 추가 설정 1. 개요 및 준비 환경 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/ha-topology/ Options for Highly Available Topology This page explains the two options for configuring the topology of your highly available (HA) Kubernetes clusters. You can set up an HA cluster: Wi..

Kubernetes 2023.12.31

Kubernetes 기초 - Secret

Secret 만들기Secret 사용하기Secret 데이터 용량제한앞 포스트 ConfigMap과 매우 유사하기 때문에 먼저 보고 오는 것을 추천합니다.1. Secret 만들기Kubernetes에서 Secret은 암호화된 정보, 키, 패스워드 등과 같은 민감한 데이터를 안전하게 저장하기 위한 리소스다.Secret은 ConfigMap과 흡사한 형태를 띄고 있다.ConfigMap은 컨테이너가 사용하는 구성 데이터를 한 곳에 모아 통합 관리하기 위해 사용되었지만 Secret은 거기에 값을 Base64로 인코딩하여 암호화된 형태로 저장하기 때문에 보안적 요소가 고려한 리소스라고 할 수 있다.그래서 주로 애플리케이션에서 사용되는 민감한 정보(password, auth token, ssh key 등)를 안전하게 관리하..

Kubernetes 2023.12.23

Kubernetes 기초 - ConfigMap

ConfigMap생성ConfigMap의 일부분을 적용하기ConfigMap의 전체를 적용하기ConfigMap을 볼륨으로 적용하기1. ConfigMap 생성ConfigMap : 컨테이너 구성 정보를 한 곳에 모아서 통합 관리 각 컨테이너는 다양한 구성 정보를 가지고 있다.컨테이너가 한 두개일 경우에는 관리하는데 큰 문제가 없겠지만 만약 여러 대의 컨테이너를 운영하고 있다면 구성 정보를 변경해야 하는 상황이 발생했을 때 하나씩 모두 변경해야 하니 관리가 곤란해진다.이런 구성 정보를 컨테이너에 직접 입력해서 부여하는 것이 아니라 한 곳에 모아서 적용시켜 관리를 용이하게 하자는 것이 ConfigMap의 목적이다.물론 ConfigMap내의 구성 정보를 동적으로 적용하거나 설정을 분리하는 등 다양한 목적이 존재한다...

Kubernetes 2023.12.23

Kubernetes 기초 - Label(4)

레이블이란워커 노드에 레이블 설정레이블과 애너테이션레이블을 이용한 카나리 배포                ←  오늘 볼 내용4. 레이블을 이용한 카나리 배포카나리 배포는 '카나리아' 라는 새의 이름을 따서 만들어졌다.카나리아는 유독가스에 굉장히 민감해서 탄광에 함께 데리고 들어가던 새로 유명하다.유독가스가 많이 누출되어 사람이 느끼게 되면 굉장히 위험한 상태가 되지만 카나리아는 그 보다 먼저 반응하여 죽기 때문에 위험을 사전에 인지한다는 의미로 사용되었다. 카나리 배포라고 이름이 붙은 이유도 위와 비슷하다.실제 카나리 배포는 일부 버전만 신규로 올렸다가 성능이나 안정성에 이상이 없으면 새로운 버전을 점진적으로 더 많은 사용자에게 릴리즈하거나, 문제가 발생하면 빠르게 롤백한다. Canary 배포 : 기존 ..

Kubernetes 2023.12.22

Kubernetes 기초 - Label(3)

레이블이란워커 노드에 레이블 설정레이블과 애너테이션               ←  오늘 볼 내용레이블을 이용한 카나리 배포3. 애너테이션(Annotation)어노테이션이라고도 불리는데 발음 상 애너테이션이 맞긴하다.아무래도 상관은 없다.애너테이션의 특징은 다음과 같다.Label과 동일하게 Key-Value를 통해 리소스의 특성을 기록Kubernetes 에게 특정 정보를 전달할 목적으로 사용Deployment의 RollingUpdate 정보 기록annotations:    kubernetes.io/change-cause: version 1.15관리를 위해 필요한 정보를 기록할 용도로 사용릴리즈, 로깅, 모니터링에 필요한 정보들을 기록annotations:    builder: "Lee (abc1234@gm..

Kubernetes 2023.12.22

Kubernetes 기초 - Label(2)

레이블이란워커 노드에 레이블 설정               ←  오늘 볼 내용레이블과 애너테이션레이블을 이용한 카나리 배포2. 워커 노드에 레이블(Label) 설정레이블을 설정할 때 워커 노드에도 설정할 수 있다.파드나 다른 리소스 API에 레이블을 설정하면 되지 왜 굳이 노드에 레이블을 설정할까?각 노드는 다른 조건의 하드웨어 환경을 가질 수도 있다.쿠버네티스는 하드웨어 시스템 환경까지 정보를 가지고 있지 않다.만약 머신러닝 프로그램이 들어있는 파드를 배포한다고 가정했을 때 GPU를 가진 노드에 배포하면 좋을 것이다.이 때 GPU를 가진 노드에 레이블을 설정해 놓으면 파드를 배포할 때 적절한 환경을 지닌 노드에 배포할 수 있게 된다.쿠버네티스에게 이러한 물리 시스템 환경 등의 정보를 레이블을 통해 미리..

Kubernetes 2023.12.21

Kubernetes 기초 - Ingress(1)

Ingress 란             ←  오늘 볼 내용Ingress Controller 설치             ←  오늘 볼 내용실습1. Ingress 란인그레스(Ingress)도 API 중에 하나다.쿠버네티스에서 HTTP나 HTTPS를 통해 클러스터 내부의 서비스를 외부로 노출하는 역할을 한다.인그레스의 기능은 다음과 같다.Service에 외부 URL을 제공 : 인그레스를 사용하면 클러스터 외부에서 특정 URL 또는 도메인으로 들어오는 트래픽을 쿠버네티스 내부의 서비스로 라우팅할 수 있다.트래픽을 로드밸런싱 : 인그레스는 백엔드 서비스에 대한 트래픽 로드 밸런싱을 제공한다. 여러 백엔드 서비스로 들어오는 트래픽을 분산하여 서비스의 가용성과 성능을 향상시킬 수 있다.SSL 인증서 처리 : 인그레스..

Kubernetes 2023.12.20
728x90