Ansible은 개발 환경을 구축할 때 동일한 작업을 반복해야 하는 경우가 빈번히 발생하는 경우를 보완하기 위해 서버의 설정과 인프라 프로비저닝 등을 자동화할 수 있는 오픈소스 도구로, 별도의 Agent 없이 SSH를 통한 스크립트 실행을 지원하며 선언적으로 서버 설정
hostname 변경IP 변경 및 적용적용 확인PS1 환경 변수 설정▶ id_rsa : 비밀키 → 암호화 풀 때 사용 : 나만 가지고 있어야 함▶ id_rsa.pub : 공개키 → 암호화 할 때 사용 : 서로 공유하고 있어야 함hosts 정보 확인공개키 배포※ kube
도커 설치 및 상태 확인python 3.9 설치pip3 upgradeKubespray 이용한 kubernetes 설치kubespraykubernetes 설치를 도와주는 자동화 도구로, ansible을 통해 구축하고자하는 설정값을 설정 후 실행하면 kuberentes c
CMDrun, create, apply, get, describe, edit, delete, exec, logs, ..., etcTYPEpod, deployment, statefulset, daemonset, service, serviceaccount, ..., etc
CMDrun, create, apply, get, describe, edit, delete, exec, logs, ..., etcTYPEpod, deployment, statefulset, daemonset, service, serviceaccount, ..., etc
단일 클러스터 내에서의 리소스 그룹 격리 메커니즘 제공하여 논리적 격리 제공kube-system기본적으로 kubernetes가 동작하기 위해 필요한 pod 및 자원들을 격리시켜 관리하는 namespacedefaultnamespace를 따로 지정하지 않을 경우, 기본 설
실습 :: 리소스 apiVersion 버전 확인▶ pod 생성 yaml 파일의 apiVersion이 맞지 않아 생성되지 않고 Error 발생▶ apiVersion 수정 후 정상 구동
실습 :: pod 실행실습 :: yaml 파일 작성하여 pod 생성 및 구동/삭제
실습 :: multi-pod2개 이상의 container를 포함한 파드nginx container 확인 및 testubuntu container 확인 및 test▶ pod의 ip와 동일한 것을 확인할 수 있음 :: container는 따로 ip를 갖지 않고 pod의 i
※ terminating은 pod 생애 주기에 포함되지 않음pending클러스터 승인은 되었으나, 하나 이상의 컨테이너가 설정되지 않았고 아직 실행할 준비가 안된 상태파드가 스케줄되기 이전까지의 시간뿐만 아니라 컨테이너 이미지를 다운로드하는 시간도 포함running노드
사전 작업이 필요한 경우, 메인 컨테이너가 동작하기 이전에 사전 작업 하는 컨테이너▶ init container 실행 안되고 있음 → ∵ 요구하는 service 필요▶ 서비스 생성 후 재확인▶ 두번째 init container를 위한 service도 추가▶ pod 구동
워커노드에서 infra container 확인infra container : 각각의 파드의 환경을 만들어주는 containerworkernode에서 docker container ls 로 확인 가능(∵ docker runtime 사용)master에서 pod 생성해당 파
특정노드의 /etc/kubernetes/manifests 에 yaml로 저장된 pod 의 경우, kubelet이 동작하는 동안 필수적으로 구동되어야 하는 pod에 사용됨node1에 static pod 생성master에서 확인▶ scheduling 과정 없는 것을 확인할
resources.requests : 최소 보장resources.limits : 최대 제한실습 :: resources.requests▶ pod 가 아닌 container에 적용되는 것을 확인할 수 있음실습 :: resources.limits▶ resources.limi
pod 내 container 환경변수 설정
클러스터에서 파드를 생성하고 제어 및 관리상태를 유지하지 않아도 되는 파드를 관리하는 경우 사용레플리케이션 컨트롤러변경사항에 대해 자동으로 업데이트 및 롤백※ ReplicationController는 롤링 업데이트/롤백을 지원하지 않음container 이미지 nginx
레플리케이션 컨트롤러에 조건부 셀렉터 추가조건부 셀렉터 :: 정교하게 탐색할 수 있도록 조건부로 그룹화제공 연산자 Exists / DoesNotExist / In / NotIn설정한 replicas 수를 유지 테스트롤링 업데이트/롤백 테스트※ ReplicaSet도 롤링
▶ replicaset은 deployment-controller에 의해 생성되고 pod가 replicaset-controller에 의해 생성됨▶ deployment ∋ replicasets ∋ pod :: deployment가 replicasets 관리 / replic
각각의 노드에서 같은 셀렉터(레이블)를 갖고 있는 파드를 한 개씩 생성하고 실행하는 컨트롤러이며 롤링 업데이트 및 롤백 기능 제공▶ 주로 로그 수집기, 모니터링 에이전트와 같은 프로그램을 실행하는 파드를 생성할 때 사용됨신규 노드가 클러스터에 추가되면 파드도 같이 생성
상태유지 statefulness▶ pod 명이 임의의 값이 아닌 순차적으로 생성되는 것을 확인할 수 있음
날짜와 시간을 예약해놓고 특정 시간에 작업이 진행되도록 설정at : 절대적인 날짜와 시간을 정해놓고 작업 동작시킴e.g) 2025년 3월 25일 대규모 업데이트cron : 주기적인 스케줄을 정해놓고 작업 동작시킴e.g) 매주 목요일 새별 01시에 정기 점검linux의
~/kube/example 이라는 폴더를 만들어 해당 폴더에서 다음 작업을 수행한다다음 조건에 맞게 Deployment 컨트롤러를 사용하는 lab_deploy.yaml 파일을 생성하고 동작시킨다pod : 3개labels: rel:stabledeploy name : la
Pod는 컨트롤러가 관리하므로 한 군데 고정하여 생성되지 않고, 클러스터 안을 이동하면서 생성되어 동작노드가 변경되어 클러스터 안의 파드의 IP 주소가 다시 생성될 때마다 매번 변경기존의 파드의 IP 주소로 접근이 불가능하여 서비스를 통해 동일한 서비스를 제공하는 파드
사용자가 특정 IP를 할당하지 않으면, 자동으로 available range에서 IP 할당됨available range : 10.233.0.0 ~ 20.233.63.255▶ 서비스 할당 IP 대역과 Pod IP 대역 확인kubespray 설정 값 확인▶ vxlan.ca
모든 노드를 대상으로 외부에서 접속이 가능한 포트를 예약하는 기능을 제공기본 포트 : 30000 ~ 32767을 사용하고 있으며, ClusterIP(必)가 설정된 이후 예약됨ClusterIP 주소를 이용하지 않고 노드 IP 주소:노드 포트 번호 형식으로 접근 가능Nod
별도의 loadbalancer 장치를 이용하여 접근LoadBalancer 노드에 haproxy 설치 및 설정
클러스터 내부 POD의 컨테이너에서 외부 도메인 FQDN을 CNAME(≒Alias)으로 매핑하여 접근하는 기능을 제공▶ 외부 도메인을 내부 자칭 도메인 별칭으로 접근▶ 외부 도메인을 신경 쓸 필요 없이 사용 가능서비스 이름 : externalname-svc네임스페이스
Pod들의 Endpoint에 DNS Resolving 서비스를 제공Kube-Proxy 로드밸런싱이 필요 없거나 ClusterIP 서비스의 IP주소(단일 진입점)가 필요 없는 경우 사용서비스와 연결된 파드의 endpoint로 DNS 레코드가 생성POD 내부 컨테이너들은
서비스가 가진 정보를 통한 라우터로 서비스를 거치지 않고 엔드포인트 API 매핑사용자가 접근하는 경로에 따라 매핑해줌 ▶ 경로 기반서비스 사용하는 이유※ 인그레스 사용 이유 : 하나의 포트로 경로 기반 별 엔드포인트 달리할 수 있음 (포트는 한정적)서비스가 너무 많아
오브젝트에 첨부된 키:값 쌍노드, 파드, 레플리카셋, 디플로이먼트, 서비스 등 모든 리소스에 할당 가능리소스의 특성을 분류하고, 셀렉터를 이용하하여 선택 가능키:값 형태kubectl run 통해 pod 생성▶ 자동으로 pod label이 run:{pod명} 으로 생성됨
stable : 안정화 버전beta : 미완성 버전canary : 사용자 반응 보기 위한 버전mainui-stable pod 생성mainui-stable service 생성canary deployment 생성▶ 새로 버전 출시 이전 canary 버전을 통해 사용자의 반
컨테이너의 환경 변수와 같은 구성 정보들을 모아서 관리하는 기능 제공키:값 형식암호화가 필요 없는 일반 데이터를 저장하는 오브젝트yaml 파일을 통해 configmap 생성※ smlinux/genid:env ▶ 임의의 명함 만들어주는 이미지genid 이미지로 testp
ConfigMap과 유사 하지만 Value값들에 대해 Base64를 통해 암호화하여 저장한다는 차이가 있음보안이 필요한 값들에 대해 Secret 적용 권장▶ 보안 ConfigMapconfig.dir/nginx.conf 파일 생성secret 생성secret 확인decod
hostpath로 지정된 directory 자료를 container 내 path에 동기화각 노드에 해당 작업 실행node1 : <h1><p style="color:red">node1</p></h1>node2 : <h1><p style