일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- python
- springboot
- variable
- Engineer
- 컨테이너
- bash
- devops #engineer
- k8s
- httpd실행
- WEB
- Vagrant
- RSS
- 도커
- 파이썬
- 쿠버네티스
- ioredirection
- nginx
- DOIK
- multivm
- devops #jenkins
- container
- mongodb operator
- 초간단파이썬
- Strimzi
- docker
- namespace
- Kubernetes
- linux
- java
- aws #engineer
- Today
- Total
샤인의 IT (막 적는) 메모장
[Kubernetes 기본 정리] 쿠버네티스란? 본문
쿠버네티스는 Container Orchestration Framework로
컨테이너를 조화롭게 해주는 틀을 제공항한다.
앞전에 도커 설명할 떄 Host 위에 바로 컨테이너가 올라가는 것과 같이
이렇게 올라가는 컨테이너들을 관리해준다.
주요기능으로 서비스 디스코버리, 셀프 힐링, 로드밸런싱, 롤링업데이트를 지원한다. (K8s 리소스의 기능들)
여기서 쿠버네티스에서 사용하는 컴포넌트와 오브젝트에 대해 알아보면
kube-api-server : 모든 요청을 처리하는 API 서버
etcd : 분산 데이터 키-값 저장소, 클러스터의 모든 설정 및 상태 저장
kube-controller-manager : K8s의 모든 리소스를 관리하는 역할 수행
cloud-controller-manager : 퍼블릭 클라우드에 특화된 모듈로 해당 클라우드 업체와의 호환성을 높이기 위해 (예: 멀티 클라우드)
kubelet : 파드를 관리하고 감지하는 역할 ( 모든 노드에서 작동)
kube-proxy : 파드로 연결되는 네트워크 관리 ( 워커 노드 )
보통 마스터 컴포넌트들은 Static Pod로 불리는 /etc/kubernetes/manifest 경로에서 해당 파일을 설정하여 올라간다.
물론 kubelet, kube-proxy 제외!
이 manifest 경로를 kubelet 설정으로 바꿀 수 있는데 나중에 기본 끝나면 하나씩 정리해서 올릴게여
위에서 말한 것처럼 쿠버네티스의 모든 설정은 YAML 오브젝트로 저장하게 되는데
K8s가 상태를 관리하기 위한 대상을 YAML 파일을 통해 영속적으로 리소스를 관리할 수 있다.
크게 apiVersion, kind, metadata, spec으로 나누어진다.
보통 status 최상위 필드는 설정하지 않아서 교육 때 잘 안알려주긴 하는데
엔지니어 입장에서는 해당 상태를 확인할 수 있어 꽤나 소소한 도움이 된다 (예 : 타임스탬프, 생성날짜, 현재상태 등등)
apiVersion: v1 # Kubernetes API 버전 정의
kind: Pod # Kubernetes Resource 정의
metadata: # Object와 관련된 정보 정의
name: my-pod
labels:
app: my-app
spec: # Object 스펙 정의
containers:
- name: my-pod
image: nginx:latest
readinessProbe:
httpGet:
path: /
port: 80
livenessProbe:
httpGet:
path: /
port: 80
YAML이 보기 편해서 좋고 또한 영어 좀만 안다면 대략 어떤 옵션일지 감이 온다.
주로 잘 봐야하는 부분이 metadata와 spec 부분으로 해당 컨테이너를 적용할 때 - (하이폰)을 쓰는데 이는 YAML에서 사용하는 리스트(List) 형식
'Container > Kubernetes 기본' 카테고리의 다른 글
[Kubernetes 기본 정리] Object (0) | 2022.01.05 |
---|---|
[Kubernetes 기본 정리] Namespace (0) | 2021.04.29 |
[Kubernetes 기본 정리] ServiceAccount (0) | 2021.04.15 |
[Kubernetes 기본 정리] 쿠버네티스 리소스 (0) | 2021.04.15 |
[Container] Container란? (0) | 2021.03.23 |