우주먼지
Kubernetes Secret
Ops/Kubernetes 2023. 3. 4. 18:47

💡 Secret ConfigMap과 비슷하게 Volumn과 환경변수 방식으로 Pod에 정보를 주입한다. 정의 Password, API Key, SSH Key등 보안이 중요한 정보를 컨테이너에 주입해야 할 때 사용 ConfigMap과 사용법이 비슷하지만 Secret은 ConfigMap에 비해 민감한 정보를 주입하는게 목적이다. Kubernetes는 기본적으로 Secret의 값을 etcd에 저장하며 Base64 인코딩을 한다. RBAC를 이용해 Secret 오브젝트에 대한 읽기 권한을 잘 설정해야 한다. ex: ConfigMap과 Secret을 구분 보관하여 사용자별로 권한을 나눠준다. 종류 OPaque (Generic) 일반적인 용도의 시크릿 ConfigMap과 동일한 목적으로 사용 가능 민감한 데이터를 ..

article thumbnail
Kubernetes ConfigMap
Ops/Kubernetes 2023. 3. 3. 13:15

💡 ConfigMap (Key - Value) ConfigMap & Secret 어플리케이션을 배포하다 보면 환경에 따라 다른 설정값을 사용하는 경우 사용한다 Github Actions의 Secret처럼 컨테이너 런타임 시 변수나 설정값을 Pod가 생성될 때 넣어줄 수 있다 ConfigMap Key - Value 형식으로 저장됨 Config Map을 생성하는 방법은 literal로 생성하는 방법과 파일로 생성하는 2가지 방법이 있다 ConfigMap이나 Secret에 정의하고, 이 정의해놓은 값을 Pod로 넘기는 2가지 방법이 있다 값을 Pod의 환경 변수로 넘기는 방법 값을 Pod의 Disk Volume으로 Mount 하는 방법 Literal 형식 ConfigMap 생성 키:값이 language : j..

article thumbnail
Kubernetes Service & Service Discovery
Ops/Kubernetes 2023. 3. 2. 20:41

💡 Service 노드의 파드는 기본적으로 외부통신이 안되는 내부망의 환경에 있다 Service란 Pod의 논리적 집합이며 어떻게 접근할지에 대한 정책을 정의해놓은 것 Service는 기본적으로 Load Balancing 과 Port Forwarding 기능을 포함한다 Label Selector를 통해 노출시킬 오브젝트의 레이블을 지정하는 방식이 주로 쓰인다 외부에 노출시킬때 4가지 타입이 있다 ClusterIP (default) - 클러스터 내부 통신용 NodePort - 노드IP:Port 의 방식을 통해 외부에서 접근 (NAT), 30000번대 포트 Load Balancer - 외부의 Load Balancer를 사용하는 방법 ExternalName - kube-dns로 DNS를 이용하는 방법 💡 Se..

article thumbnail
Kubernetes DaemonSet
Ops/Kubernetes 2023. 2. 28. 10:31

💡 DaemonSet 클러스터 전체에서 공통적으로 사용되는 pod를 띄울때 사용하는 컨트롤러 ex: 로그수집기나 노드를 모니터링하는 pod 등 클러스터 전체에 항상 실행시켜 둬야 하는 pod를 실행할때 사용 taint와 tolleration을 사용하여 특정 노드들에만 실행가능 (tolleration은 taint보다 우선순위가 더 높다) Yaml 생성 # DaemonSet 생성 apiVersion: apps/v1 kind: DaemonSet metadata: name: test-elasticsearch namespace: kube-system labels: k8s-app: test-logging spec: selector: matchLabels: name: test-elasticsearch updateSt..

Kubernetes StatefulSet
Ops/Kubernetes 2023. 2. 25. 09:36

💡 StatefulSet 어플리케이션의 상태를 저장하고 관리하는 쿠버네티스 오브젝트 replication controller와 같은 복제본을 가지고 있는 컨트롤러를 의미함 기존 Pod를 삭제하고 생성할 때 상태가 유지되지 않는 한계가 있고 삭제-생성을 하면 새로운 가상환경이 된다 하지만 StatefulSet으로 생성되는 Pod는 영구 식별자를 가지고 상태를 유지시킬 수 있다 Yaml 기반 생성 //myapp-sts.yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: myapp-sts spec: selector: matchLabels: app: myapp-sts serviceName: myapp-svc-headless replicas: 2 templat..

article thumbnail
Kubernetes Deployment
Ops/Kubernetes 2023. 2. 25. 09:16

💡 Deployments replicaset의 상위 오브젝트 replicaset에 없는 배포 작업의 세분화, 롤링업데이트, revision 등의 기능을 사용 가능 Yaml & kubectl 기반 Deployment 생성 # 생성, --replicas=3 으로 레플리카 수 지정 가능 kubectl create deployment [deploy-name] --image=[image-name] --dry-run=client -o yaml > [yaml-name] # Yaml 생성 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: ..

article thumbnail
Kubernetes Labels
Ops/Kubernetes 2023. 2. 24. 07:40

💡 Labels 쿠버네티스 객체를 식별할 수 있고, 그룹으로 구성 가능한 기능 좋은 Use-Case는 Pod에 배치된 어플리케이션을 기반으로 그룹핑 하는것과 환경이나 고객 & 팀 & 소유자 & 릴리즈 버전에 따라 그룹화 하는 다양한 레이블 규칙 개발 가능 리소스를 생성할때 레이블을 무조건 지정해서 사용하기 커밋 컨벤션 처럼 레이블 컨벤션을 도입하기 Pob Template 활용, 파드 템플릿은 쿠버네티스 컨트롤러에서 파드를 생성하기 위한 manifest 파일임 공통적인 옵션들에 대한 레이블 리스트 만들기 (어플리케이션id, 버전, 소유자, 환경, 릴리즈 버전 등) 더 광범위한 레이블 리스트 만들기 쿠버네티스에서 추천하는 레이블 사용 Lable List Exsample # 쿠버네티스 추천 레이블 apiVer..

검색 태그