반응형

Kubernetes

대망의 CKA 도전 시리즈의 마지막, 시험 후기입니다. 1. 시험 준비 저의 경우 자격증을 준비하기 전에 회사에서 컨테이너 기반의 CI/CD 환경을 구축하면서 쿠버네티스를 사용하기 위해 어느정도 학습을 했고 직접 사용할 수 있는 정도의 수준에서 준비를 시작하였습니다. 이 때 학습한 자료는 이성미 강사님이 운영하시는 유튜브 따배런 체널의 따배쿠 시리즈를 심화까지 모두 보며 학습하였습니다.  CI/CD환경 구축업무가 끝난 후로 쿠버네티스를 잊고 산지 수 개월의 시간이 흐른 뒤 미뤄왔던 CKA취득을 준비하였습니다. 준비기간은 직장생활과 병행하면서 2달 정도 소요되었습니다. 학습자료는 이번에도 역시 믿고 보는 이성미 강사님께서 패스트캠퍼스에서 하시는 쿠버네티스 강의를 선택하였습니다. 강의 보면서 실습까지 모두 ..
1. Application Log 모니터링 지정한 Pod내의 특정 컨테이너 애플리케이션 로그 확인 kubectl logs -c 예제 Pod custom-app의 로그 모니터링 후 'file not found' 오류가 있는 로그 라인 추출(Extract)해서 /var/CK2022/CUSTOM-LOG001 파일에 저장하시오. 풀이 kubectl logs custom-app | grep -i 'file not found' > /var/CKA2022/CUSTOM-LOG001 클러스터 리소스 모니터링 클러스터 안에서 실행 중인 컨테이너의 상태를 모니터링 Pod가 사용하는 CPU나 Memory 리소스 정보 보기 kubectl top pods --sort-by=cpu Node가 사용하는 CPU나 Memory 리소스 ..
Volume Volume은 Kubernetes 스토리지의 추상화 개념 컨테이너는 Pod에 바인딩 되는 볼륨을 마운트하고 마치 로컬 파일시스템에 있는 것처럼 스토리지에 접근. Docker의 볼륨과 유사한 개념. https://momobob.tistory.com/40 [Docker] 컨테이너의 데이터 공유를 위한 방법, 볼륨, 바인드 마운트 docker 컨테이너에서 쓰여진 데이터들은 기본적으로 컨테이너가 삭제될 때, 함께 제거된다. Docker는 데이터를 유지 혹은 컨테이너간 공유하기 위해서 세가지 옵션을 제공함. 1. BIND MOUNT 2. VOLUME 3. TM momobob.tistory.com Volume Type 1. EmptyDir Volume 볼륨을 통해 파드내에서 컨테이너 간 데이터 공유 e..
Ingress 클러스터 내의 서비스에 대한 외부 접근을 관리하는 Kubernetes API HTTP나 HTTPS를 통해 클러스터 내부의 서비스를 외부로 노출 L7 스위치 역할을 논리적으로 수행 클러스터로 접근하는 URL 별로 다른 서비스에 트래픽을 분산 Ingress 기능 Service에 외부 URL을 제공 트래픽을 로드밸런싱 SSL 인증서 처리 Virtual hosting을 지정 예제1 1) ingress-nginx namespace에 nginx pod를 구성하시오. - label : app=nginx 2) 테스트 appjs-servic와 nginx 서비스를 구성하시오 (실제 시험에선 서비스는 이미 구성되어 있음) 3) app-ingress.yaml 파일을 생성하여 다음 조건의 ingress 를 구성하..
1. Network Policy 서버의 방화벽과 같이 Pod로의 통신에 대한 접근을 제한할 수 있도록 Kubernetes에서 제공하는 API Pod로 들어오는 Inbound(Ingress)와 Pod에서 나가는 Outbound(Egress) 정책을 정의 생성 yaml 예시 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: test-network-policy namespace: default spec: podSelector: matchLabels: role: db policyTypes: - Ingress - Egress ingress: - from: - ipBlock: cidr: 172.17.0.0/16 except: - 172.17...
ConfigMap 컨테이너에 필요한 환경설정을 컨테이너와 분리해서 제공하는 기능. ConfigMap 생성 kubectl create configmap [--from-file=source] [--from-literal=key=value] # 예 kubectl create configmap config-dev --from-literal=DB_URL=localhost 예제 1. 아래 변수를 가지는 config-dev라는 이름의 ConfigMap을 생성하시오. 2. 생성한 ConfigMap의 변수를 web-server라는 이름의 Nginx컨테이너에 할당하시오. DB_USER: myuser DB_PASS : mypass 풀이 1. ConfigMap 생성 kubectl create configmap config-d..
Node 관리 cordon : 특정 노드의 스케줄링 중단 kubectl cordon uncordon : 특정 노드의 스케줄링 중단 해제(허용) kubectl uncordon drain : 특정 node 에서 실행중인 pod 비우기(drain) 및 제거(delete) kubectl drain --ignore-daemonsets –force Node 정보보기 Node Taint와 Pod toleration worker node에 taint가 설정된 경우 동일한 값의 toleration이 있는 Pod만 배치 toleration이 있는 Pod는 동일한 taint가 있는 Node를 포함하여 모든 노드에 배치됨. **taint가 없는 노드도 배치될 수 있음 Effect 필드 종류 NoSchedule : tolera..
Deployment ReplicaSet을 컨트롤해서 Pod수를 조절 ReplicaSet에서 Rolling Update & Rolling Back 추가 Deployment 생성 apiVersion: apps/v1 kind: Deployment metadata: name: deploy-nginx spec: replicas: 2 selector: matchLabels: app: webui template: metadata: labels: app: webui spec: containers: - name: nginx-container image: nginx:1.14 Deployment 스케일링 kubectl scale deployment --replicas= # 예 : deploy-nginx이름의 deployme..
반응형
MOMOBOB
'Kubernetes' 태그의 글 목록