Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 잔디이전
- Redis
- 패스트캠퍼스
- Ngrinder Docker
- 패캠챌린지
- 패스트캠퍼스후기
- aws s3
- gitlab 잔디옮기기
- redis-cli
- Avast 구독취소
- vscode
- elastic cache
- Avast Security
- Window redis-cli
- putty Inactive
- RedisJSON
- 환급챌린지
- 캐시백
- ERR unknown command 'JSON.GET'
- aws
- AWS S3 migration
- 캐시백챌린지
- 직장인자기계발
- 직장인인강
- 한 번에 끝내는 AWS 인프라 구축과 DevOps 운영 초격차 패키지 Online
- AWS S3 버킷 삭제
- nodemailer
- AWS S3 계정이동
- ERR unknown command 'JSON.SET'
- redis cli
Archives
- Today
- Total
Developing
패스트캠퍼스 캐시백 챌린지 59일차 본문
Kubectl 명령형(Imperative), 선언형(Declarative) 명령형과 Pod에 관한 클립들을 수강하는식으로 챌린지를 진행하였다. Kubernetes는 경험이 전무하다보니 아직은 낯설지만 명령어들에 조금씩 익숙해지고있다. Pod부분의 개념이 아직까지는 어렵게 느껴지는듯하다..;; 다음 포스팅으로는 ReplicaSet과 관련된 내용을 포스팅 할 예정이다.
Kubectl 사용
명령형(Imperative)
- 수행하고자 하는 액션을 지시
- 적은 리소스에 대해서 빠르게 처리 가능
- 여러 명령어를 알아야 함
선언형(Declarative)
- 도달하고자 하는 상태(Desired State)를 선언
- 코드로 관리 가능 → GitOps 활용 가능
⇒ 변경사항에 대한 감사(Audit) 용이
⇒ 코드리뷰를 통한 협업
- 멱등성 보장(apply)
- 많은 리소스에 대해서도 매니페스트 관리 방법에 따라 빠르게 처리 가능
- 알아야 할 명령어 수가 적음
실습링크는 하단의 링크에 해당한다.
https://github.com/tedilabs/fastcampus-devops/tree/main/3-docker-kubernetes/5-k8s-start
kubectl 명령형 명령어
# ubuntu:focal 이미지로 ubuntu 파드 생성 bash 명령어)
$ kubectl run -i -t ubuntu --image ubuntu:focal bash
# grafana Deployment 오브젝트에 대해 NodePort 타입의 Service 오브젝트 생성 (노드에 포트 개방)
$ kubectl expose deployment grafana --type=NodePort --port=80 --target-port=3000
# frontend Deployment의 www 컨테이너 이미지를 image:v2로 변경
$ kubectl set image deployment/frontend www=image:v2
# frontend Deployment를 리비전 2로 롤백
$ kubectl rollout undo deployment/frontent --to-revision=2
kubectl 선언형 명령어
# deployment.yaml에 정의된 쿠버네티스 오브젝트 클러스터에 반영
$ kubectl apply -f deployment.yaml
# deployment.yaml에 정의된 쿠버네티스 오브젝트 제거
$ kubectl delete -f deployment.yaml
# 현재 디렉토리의 kustomization.yaml 파일을 쿠버네티스 오브젝트 클러스터에 반영
$ kubectl apply -k ./
⇒ 추천하는 방향
CRUD 같은 operation : 선언형 방식
ssh접속,log,port foward : 명령형 방식
API 리소스 - Pod
파드(Pod)
- 쿠버네티스가 컨테이너를 다루는 기본 단위
- 1개 이상의 컨테이너로 구성된 컨테이너 집합
- 동일 파드 내 컨테이너는 여러 리눅스 네임스페이스를 공유 ⇒ 네트워크 네임스페이스 공유 (동일 IP 사용)
- 사용자가 파드를 직접 관리하는 경우는 거의 없음
파드 관련 kubectl 명령어
# 파드 목록 확인
$ kubectl get nod
# 특정 파드 상태 확인
$ kubectl describe pod hello
# 특정 파드에 명령어 전달
$ kubectl exec -i -t hello bash
# 특정 파드 로그 확인
$ kubectl logs pod/hello
멀티 컨테이너 파드와 사이드카 패턴
- 동일 파드 내 컨테이너는 모두 같은 노드에서 실행 (네임스페이스를 공유하기 때문)
- 사이드카 패턴(Side-car Pattern)
⇒ 메인 컨테이너를 보조하는 컨테이너와 같이 실행하는 구조
⇒ 주요 유즈 케이스
- Filebeat와 같은 로그 에이전트로 파드 로그 수집
- Envoy와 같은 프록시 서버로 서비스메시 구성
- Vault Agent와 같은 기밀 데이터 전달 목적
- Nginx의 설정 리로드 역할 에이전트 구성
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
* 본 포스팅은 패스트캠퍼스 환급 챌린지를 위해 작성되었습니다.
'Devops > Fastcampus 캐시백 챌린지' 카테고리의 다른 글
패스트캠퍼스 캐시백 챌린지 61일차 (0) | 2022.06.17 |
---|---|
패스트캠퍼스 캐시백 챌린지 60일차 (0) | 2022.06.16 |
패스트캠퍼스 캐시백 챌린지 58일차 (0) | 2022.06.14 |
패스트캠퍼스 캐시백 챌린지 57일차 (0) | 2022.06.13 |
패스트캠퍼스 캐시백 챌린지 56일차 (0) | 2022.06.12 |