공부집
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 2주차 후기 본문
필수링크: https://bit.ly/3D9XCOz
helm
현재 오버라이드 기능에서 null 값을 넣을 수 없음
helm repository: 도커 허브 같은 거
실제 사용 예시
Pod
파드와 컨테이너의 다른 점은 독립성을 부여할 수 있음
- 컨테이너 안에 컨테이너를 넣으면 종속됨
- Pod안에 컨테이너 2개인 경우: 사이드카 패턴
Deployment: Pod를 관리(replicas), 파드 갯수를 보장
Deployment와 Repilcaset의 차이: Deployment가 Repilcaset도 관리해주는 상위개념
Deployment와 Repilcaset의 기능적인 측면에서의 차이: declarative updates (선언적 업데이트)를 제공함
StatefulSets: Deployment와 달리 파드의 순서를 보장함, 0~9의 파드가 있을 때 삭제시 마지막에 만들어진 파드를 먼저 삭제함
DaemonSet: 각 노드마다 꼭 하나씩 파드를 띄워줌
Job와 Cronjob는 용도차이
Job: 최소 몇 번 안에 무조건 성공해야 하는 작업
- (일시적인 작업을 처리)필요한 순간에만 pod를 만들고 해당 작업을 수행하고 수행이 끝나면 pod를 삭제
- backoffLimit: 4 # 4번까지 실패를 허용
Cronjob: cron과 유사하게 주기적인 작업을 수행하는 컨테이너를 띄우고 삭제
Airflow
사용이유: 이전 태스크 실패시 다음 태스크 실행시키지 않도록 가능 "depends_on_past"
k8s에서도 가능하지만 추가 설정필요
환경설정
# 1. Helm install
brew install helm
helm create comment-charts
rm -rf comment-charts/templates
mkdir comment-charts/templates
helm install mygolang .
# ------------------------------------------
% cat values.yaml
image: asia-northeast3-docker.pkg.dev/k8s-project-365610/gar/comment:latest
% grep image templates/mypod.yaml
- image: {{ .Values.image }}
# 2. gcloud install (tar.gz 다운)
https://cloud.google.com/sdk/docs/install?hl=ko#installation_instructions
gcloud auth login
gcloud config set project k8s-project-365610
gcloud auth activate-service-account comment@k8s-project-365610.iam.gserviceaccount.com --key-file=k8s-project-365610-comment.json
gcloud components update
gcloud services enable artifactregistry.googleapis.com
# 3. gke set
gcloud components install gke-gcloud-auth-plugin
gcloud container clusters get-credentials autopilot-cluster-1 --region asia-northeast3 --project k8s-project-365610
# 4. docker
docker build -t comment .
docker run comment
# 5. gar set
gcloud auth configure-docker asia-northeast3-docker.pkg.dev
docker tag comment asia-northeast3-docker.pkg.dev/k8s-project-365610/gar/comment
docker push asia-northeast3-docker.pkg.dev/k8s-project-365610/gar/comment
docker pull asia-northeast3-docker.pkg.dev/k8s-project-365610/gar/comment:latest
# 6. kubectl
% brew install kubectl
% kubectl run mypod --image=asia-northeast3-docker.pkg.dev/k8s-project-365610/gar/comment:latest \
--labels app=mygolang \
--dry-run=client -o yaml > mypod.yaml
% kubectl create deployment mygolang --image=asia-northeast3-docker.pkg.dev/k8s-project-365610/gar/comment:latest \
--replicas=3 \
--dry-run=client -o yaml > mydeploy.yaml
% kubectl create cronjob mycronjob --image=asia-northeast3-docker.pkg.dev/k8s-project-365610/gar/comment:latest \
--schedule="*/1 * * * *" \
--dry-run=client -o yaml > mycronjob.yaml
% cat <<_EOF_ > myjob.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: comment
spec:
template:
spec:
containers:
- name: comment
image: asia-northeast3-docker.pkg.dev/k8s-project-365610/gar/comment:latest
restartPolicy: Never
backoffLimit: 4
_EOF_
context = 클러스터
k8s update strategy:
max surge: 기존 팟 남겨두고 새로 띄움
(replicas=3, max surge=100%)인 경우 3 -> 6 -> 3
max unavailable: 기존 팟 삭제하고 새로 띄움 (배포속도 때문에 사용)
(replicas=3, max unavailable=100%)인 경우 3 -> 0 -> 3
'comento > Kubernetes' 카테고리의 다른 글
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 6주차 후기 (0) | 2022.10.07 |
---|---|
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 5주차 후기 (1) | 2022.10.07 |
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 4주차 후기 (0) | 2022.10.07 |
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 3주차 후기 (0) | 2022.10.07 |
코멘토 실무PT 후기 챌린지_쿠버네티스 강의 1주차 후기 (1) | 2022.10.07 |