728x90

쿠버네티스 54

Kubernetes 기초 - Namespace

네임스페이스(Namespace)란Namespace 확인Namespace 생성사용할 Namespace switch주의할 점1. Namespace란클러스터 안에서 리소스를 논리적으로 그룹화하는 방법을 제공하는데 사용된다.Namespace를 사용하면 동일한 클러스터 내에서 서로 다른 프로젝트, 팀 또는 환경에서 작업하는 여러 사용자 그룹이 격리된 환경에서 작업할 수 있다. 쿠버네티스는 API를 배우는 것이다.Namespace는 쿠버네티스 API 중 가장 큰 단위이다.실질적인 클러스터는 하나지만 클러스터가 여러개 있는 것처럼 만드는 것이 Namespace의 역할이다.     2. Namespace 확인Namespace를 확인하는 것은 지난 파드 확인하는 것처럼 간단하다.# 현재 Namespace 확인kubect..

Kubernetes 2023.12.11

Kubernetes 기초 - Pod(7)

Pod 개념(복습) 및 사용livenessProbe를 사용한 self-healing Podinit containerinfra container(pause) 이해static pod 만들기Pod에 resource 할당환경변수를 이용해 컨테이너에 데이터 전달         ←   오늘 볼 내용Pod 구성 패턴의 종류          ←   오늘 볼 내용7. 환경변수를 이용해 컨테이너에 데이터 전달환경변수Pod내의 컨테이너가 실행될 때 필요로 하는 변수컨테이너 제작 시 미리 정의NGINX Dockerfile의 예ENV NGINX_VERSION 1.19.2ENV NJS_VERSION 0.4.3Pod 실행 시 미리 정의된 컨테이너 환경변수를 변경할 수 있다.  실습 pod-nginx-env.yaml# pod-ngi..

Kubernetes 2023.12.09

Kubernetes 기초 - Pod(6)

Pod 개념(복습) 및 사용livenessProbe를 사용한 self-healing Podinit containerinfra container(pause) 이해static pod 만들기Pod에 resource 할당        ←   오늘 볼 내용환경변수를 이용해 컨테이너에 데이터 전달pod 구성 패턴의 종류6. Pod에 resource(자원) 할당우리는 지금까지 파드에 리소스(자원) 제한을 하지 않았기 때문에 시스템의 리소스를 파드가 모두 사용해버릴 수도 있다.쿠버네티스 시스템에서 파드는 여러개 동작할 수도 있으며 하나의 파드가 리소스를 점령해버리면 다른 파드는 실행되지 못한다. 다음 시나리오를 보자.A기업이 리소스 제한이 없는 웹 서버 파드를 배포했다.그런데 어느날 웹 서버에 DDoS공격이 들어오면서..

Kubernetes 2023.12.08

Kubernetes 기초 - Pod(5)

Pod 개념(복습) 및 사용livenessProbe를 사용한 self-healing Podinit containerinfra container(pause) 이해static pod 만들기       ←   오늘 볼 내용Pod에 resource 할당환경변수를 이용해 컨테이너에 데이터 전달pod 구성 패턴의 종류5. static pod 만들기static pod는 클러스터 노드에서 직접 실행되는 파드로, Kubernetes 시스템 컴포넌트를 위한 파드다.static pod는 kubelet이 노드에서 직접 관리하며, Kubernetes API 서버와 상관없이 kubelet이 자신의 노드에 배포한다.다시말해, API 서버를 거치지 않고 원하는 노드에 직접 파드를 배포할 수 있으며 이 일을 kubelet이 처리한다...

Kubernetes 2023.12.07

Kubernetes 기초 - Pod(4)

Pod 개념(복습) 및 사용livenessProbe를 사용한 self-healing Podinit container      ←   오늘 볼 내용infra container(pause) 이해      ←   오늘 볼 내용static pod 만들기Pod에 resource 할당환경변수를 이용해 컨테이너에 데이터 전달pod 구성 패턴의 종류3. init containerInit Container(초기화 컨테이너)는 파드 내의 어플리케이션(main) 컨테이너가 시작되기 전에 실행되는 특수한 종류의 컨테이너다.Init Container는 주로 어플리케이션(main) 컨테이너가 실행되기 전에 필요한 초기화 작업을 수행하는 데 사용된다.초기화 작업이 완료되면 Init Container는 종료되고, 어플리케이션(mai..

Kubernetes 2023.12.07

Kubernetes 기초 - 동작 원리

쿠버네티스란동작원리참고로 그림을 그릴 손재주가 없어서 글밖에 없다.필요하면 '쿠버네티스 아키텍처'를 검색해보길 바란다.  1. 쿠버네티스(Kubernetes)란쿠버네티스는 그리스어로 조타수라는 의미다.마치 선박을 운행하는 조타수가 컨테이너들을 싣고 원하는 곳으로 항해를 하듯이 쿠버네티스는 컨테이너들을 배포 및 확장, 관리하는 오케스트레이션을 수행한다.  컨테이너란 요약 : 가볍다. 컨테이너는 어떠한 소프트웨어(애플리케이션)를 실행하기 위한 격리된 환경을 제공하는 운영체제 수준 경량 가상화 기술이다.컨테이너는 가상 머신과 같이 동작을 하지만 가상 머신보다 더 가벼운 용량을 가진다.일반적으로 가상 머신은 하드웨어 가상화 기술로 하이퍼바이저 위에서 운영체제가 개별 설치되어 그 운영체제 위에서 소프트웨어를 실행..

Kubernetes 2023.12.06

23.9.7(목) 쿠버네티스 9일차

https://kubernetes.io/ko/docs/concepts/scheduling-eviction/assign-pod-node/ 노드에 파드 할당하기 특정한 노드(들) 집합에서만 동작하거나 특정한 노드 집합에서 동작하는 것을 선호하도록 파드를 제한할 수 있다. 이를 수행하는 방법에는 여러 가지가 있으며 권장되는 접근 방식은 모두 레이 kubernetes.io 1. Affinity Affinity 종류 1. NodeAffinity 어느 노드에 파드를 만들 것인지 선호도를 지정 1-1. anti-affinity affinity의 반대, 선호하지 마라 2. PodAffinity 어느 파드에 컨테이너를 만들 것인지 선호도를 지정 선호도 1. required 선호되는 노드를 지정할 때 강제로 지정 2. p..

Kubernetes 2023.09.07

23.9.6(수) 쿠버네티스 8일차

https://kubernetes.io/ko/docs/concepts/configuration/configmap/ 컨피그맵(ConfigMap) 컨피그맵은 키-값 쌍으로 기밀이 아닌 데이터를 저장하는 데 사용하는 API 오브젝트이다. 파드는 볼륨에서 환경 변수, 커맨드-라인 인수 또는 구성 파일로 컨피그맵을 사용할 수 있다. 컨피그맵 kubernetes.io 1. ConfigMap 환경변수와 같은 설정값을 파드에 전달하여 적용시키기 위한 오브젝트 1. 환경변수를 deployment안에 다 포함하여 넣는 방법 cat t1_mysql_configmap.yaml apiVersion: apps/v1 kind: Deployment metadata: name: mysql spec: selector: matchLabe..

Kubernetes 2023.09.06

23.9.4(월) 쿠버네티스 7일차

https://kubernetes.io/ko/docs/concepts/services-networking/ingress/ 인그레스(Ingress) URI, 호스트네임, 경로 등과 같은 웹 개념을 이해하는 프로토콜-인지형(protocol-aware configuration) 설정 메커니즘을 이용하여 HTTP (혹은 HTTPS) 네트워크 서비스를 사용 가능하게 한다. 인그레스 개념은 kubernetes.io ingress : 외부에서 내부로 접근하기 위한 API 오브젝트 클러스터 내의 서비스에 대한 외부 접근을 관리하는 API 오브젝트이며, 일반적으로 HTTP를 관리함. 인그레스는 부하 분산, SSL 종료, 명칭 기반의 가상 호스팅을 제공할 수 있다. ingress 오브젝트를 사용하기 위해서 반드시 인그레스..

Kubernetes 2023.09.04

23.9.1(금) 쿠버네티스 6일차

job은 리눅스의 크론데몬과 비슷한 형태로 컨테이너의 작업예약 및 실행주기에 관여한다. https://kubernetes.io/ko/docs/concepts/workloads/controllers/job/ 잡 잡에서 하나 이상의 파드를 생성하고 지정된 수의 파드가 성공적으로 종료될 때까지 계속해서 파드의 실행을 재시도한다. 파드가 성공적으로 완료되면, 성공적으로 완료된 잡을 추적한다. 지정 kubernetes.io apiVersion: batch/v1 kind: Job metadata: name: job-example spec: completions: 6 parallelism: 3 activeDeadlineSeconds: 15 # 15초 내로 시작하지 않으면 강제로 종료해라 template: spec: ..

Kubernetes 2023.09.01
728x90