728x90
728x90
ConfigMap & Secret 공식 문서: https://kubernetes.io/ko/docs/concepts/configuration/configmap/ 컨피그맵은 키-값 쌍으로 기밀이 아닌 데이터를 저장하는 데 사용하는 API 오브젝트이다. 파드는 볼륨에서 환경 변수, 커맨드-라인 인수 또는 **구성 파일(key=파일명, value=내용)**로 컨피그맵을 사용할 수 있다. 주로 설정파일, 인증서, 암호화 키를 제공할 때 ConfigMap 과 Secret 을 사용한다. 컨피그맵을 사용하면 컨테이너 이미지에서 환경별 구성을 분리하여, 애플리케이션을 쉽게 이식할 수 있다. 예제 apiVersion: v1 kind: ConfigMap metadata: name: game-demo data: # 속성과 ..
NFS 동적 프로비저닝 공식 문서: https://kubernetes.io/ko/docs/concepts/storage/storage-classes/#프로비저너 https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner 깃허브에서 코드를 다운로드 받는다. 역할을 만드는 rbac.yaml 파일을 실행한다. cd ~ git clone cd ~/nfs-subdir-external-provisioner/deploy kubectl create -f rbac.yaml deployment.yaml 에서 실제 NFS Server 의 주소와 마운트되는 NFS 경로를 작성한 후에 파일을 실행한다. ~/nfs-subdir-external-provisioner/de..
디플로이먼트 공식 문서: https://kubernetes.io/ko/docs/concepts/workloads/controllers/deployment/ 디플로이먼트(Deployment) 는 파드와 레플리카셋(ReplicaSet)에 대한 선언적 업데이트를 제공한다. 디플로이먼트에서 의도하는 상태 를 설명하고, 디플로이먼트 컨트롤러(Controller)는 현재 상태에서 의도하는 상태로 비율을 조정하며 변경한다. 새 레플리카셋을 생성하는 디플로이먼트를 정의하거나 기존 디플로이먼트를 제거하고, 모든 리소스를 새 디플로이먼트에 적용할 수 있다. Use Case 다음은 디플로이먼트의 일반적인 사례이다. 레플리카셋을 롤아웃 할 디플로이먼트 생성. 레플리카셋은 백그라운드에서 파드를 생성한다. 롤아웃 상태를 체크해서..
https://github.com/seongwoo-choi/ansible_terraform_packer AWS 구성도 배스천 호스트와 관리 노드를 오토 스케일링 그룹으로 관리하고 EFS 를 사용해서 /var/www/html/wordpress 를 관리하는 인프라를 구현하고자 한다. AWS 사용 서비스 VPC Security Group RDS ASG, Launch Template, ALB, Target Group EFS EC2 Terraform 키 페어 생성 resource "aws_key_pair" "app_server_key" { key_name = "app_server_key" public_key = file("/Users/csw/.ssh/id_rsa.pub") } file 함수를 사용하여 id_rsa..
Service 공식 문서: https://kubernetes.io/ko/docs/concepts/services-networking/service/ 파드 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법 쿠버네티스를 사용하면 익숙하지 않은 서비스 디스커버리 메커니즘을 사용하기 위해 애플리케이션을 수정할 필요가 없다. 쿠버네티스는 파드에게 고유한 IP 주소와 파드 집합에 대한 단일 DNS 명을 부여하고, 그것들 간에 로드-밸런스를 수행할 수 있다. 서비스는 selector 를 사용해서 pod 의 label 을 찾고 뒷단으로 연결시키기 때문에 만약 다른 pod 에서 만든 컨테이너의 label 이 셀렉터에서 찾는 label 과 같다면 서비스의 뒷단에 연결해버린다. 그래서, label 과 ..
crictl container runtime interface controller 의 약자로 말 그대로 실행 중인 컨테이너를 제어하는 컨트롤러이다. 공식 문서: https://kubernetes.io/docs/reference/tools/map-crictl-dockercli/ k8s 에서 crictl 로 도커 명령어를 대신할 수 있다. 데몬셋 데몬셋은 모든(또는 일부) 노드가 파드의 사본을 실행하도록 한다. 노드가 클러스터에 추가되면 파드도 추가된다. 노드가 클러스터에서 제거되면 해당 파드는 가비지(garbage)로 수집된다. 데몬셋을 삭제하면 데몬셋이 생성한 파드들이 정리된다. 데몬셋은 모든 노드에 하나씩 존재한다. 데몬셋의 일부 대표적인 용도는 다음과 같다. 주로 에이전트의 역할을 한다. 모든 노드에..