Cloud/Kubernetes
-
Kubernetes) IngressCloud/Kubernetes 2022. 10. 30. 20:43
학습 목표 : 4계층에서 사용되는 Service와 다르게 7계층에서 사용되는 Ingress를 알아본다. Ingress 란? 클러스터 외부에서 내부로 접근하는 요청들을 어떻게 처리할지 정의해둔 규칙모음. 클러스터 외부에서 접근할 URL, 트래픽 로드밸런싱, SSL 인증서 처리, 도메인 기반 가상 호스팅 등 규칙들을 제공한다. Ingress는 Deployment와 Service에 접근하기 위한 일종의 Gateway같은 역할을 담당한다. # ingress.yaml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: my-ingress spec: backend: serviceName: other servicePort: 8080 rules: - host: ..
-
Kubernetes) Service ObjectCloud/Kubernetes 2022. 10. 30. 19:10
학습 목표 : 클러스터 내부의 Pod가 외부와 통신하기 위한 Service의 유형을 알아본다. Service 란? 클러스터 안에서 동적으로 변하는 Pod들을 고정적으로 사용하기 위한 방법으로 k8s의 Service를 사용한다. Service는 클러스터 안의 Pod를 고정 주소를 주어, 외부 네트워크와 통신할 수 있도록 하는 진입점 부여 역할을 한다. Service를 정의하고 생성할 때는 .spec.ports 속성 아래에 연결하고자 하는 항목별로 2개씩 Port지정 가능하다. # service.yaml apiVersion: v1 kind: Service metadata: name: my-service spec: type: ClusterIP # 서비스 타입 설정 clusterIP : 10.0.10.10 # ..
-
Kubernetes) Kubernetes DeploymentCloud/Kubernetes 2022. 10. 27. 00:39
학습 목표 : k8s의 Replicaset 를 관리하기 위한 Deployment 에대해 알아본다. Deployment 란? ReplicaSet을 관리하며 앱 배포에 특화되어있다. Pod 실행 개수를 유지시키는것 뿐만 아니라, Rolling Update나 Rollback 등 유용한 기능을 가지고 있다. Deployment 사용 예 apiVersion: apps/v1 kind: Deployment metadata: name: deployment-nginx labels: app: deployment-nginx spec: replicas: 3 # pod 실행개수 지정, ReplicaSet과 마찬가지로 .spec.replicas 필드에 지정 selector: matchLabels: app: nginx-pods #..
-
Kubernetes) Application 배포Cloud/Kubernetes 2022. 10. 24. 23:32
학습 목표 : 몇가지 Application 배포 방식에 대해 알아본다. Application 배포(Update) 방식 기본적인 Application 배포는 Application을 중단하고 업데이트를 진행하여 서비스가 중단되는 시점(downtime)이 생긴다. downtime을 극복하기위한 무중단 배포방식이 사용된다. Rolling Update (Rolling 배포) - 무중단 방식의 가장 기본적인 방식으로 사용중인 인스턴스 내에서 새버전을 점진적으로 교체한다. - 장점 - 인스턴스마다 차례로 배포를 진행하여 상황에따라 쉽게 Rollback이 가능하다. - 추가적인 인스턴스를 늘리지 않아도 되고 간편하게 관리가 가능하다. - 단점 - 사용중인 인스턴스에 트래픽이 몰릴 수 있다. - 배포중에 신버전과 구버전..
-
Kubernetes) Kubernetes ReplicaSetCloud/Kubernetes 2022. 10. 21. 02:04
학습 목표 : k8s의 서비스가 지속되도록하는 ReplicaSet에 대해 알아본다. ReplicaSet 이란? 쿠버네티스 프로젝트 초기부터 있던 Replication Controller의 발전형 정해진 개수의 pod가 항상 실행상태가 되도록 관리한다. 노드나 pod에 이상이생겨 사용할수 없을 때, 동일 cluster안의 다른 노드의 pod를 생성하고 실행한다. YAML 파일을 통해 사용자가 요구하는 상태가 되도록 pod를 관리할 수 있다. ReplicaSet 사용해보기 replicaset 설정 (replicaset-nginx.yaml) apiVersion: apps/v1 kind: ReplicaSet metadata: name: replicaset-nginx # name - replicaset 이름 설정..
-
Kubernetes) AWS 기반 쿠버네티스 H.A 구축 프로젝트 2편Cloud/Kubernetes 2022. 10. 18. 23:14
실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : stacked etcd 방식의 고가용성(HA) 쿠버네티스 클러스터를 구성해본다. 참고1 : kubectl 자동완성 설정 source > ~/.bashrc 5. MasterNode2, MasterNode3 제거하기 # 버전 업그레이드 전에 노드를 2개만 남겨두고 하기 위해 제거 (실습을 위한 제거) # 필요할 때 클러스터에 연결된 노드를 제거하는 방법으로 사용할 수 있다. (1) Taint 해제 kubectl taint node --all node-role.kubernetes.io/master- kubectl taint node --all node-role.kubernetes.io/contorl-plan..
-
Kubernetes) AWS 기반 쿠버네티스 H.A 구축 프로젝트 1편Cloud/Kubernetes 2022. 10. 18. 00:34
실습 환경 : AWS console (2022/10), Visual Studio Code 실습 목적 : stacked etcd 방식의 고가용성(HA) 쿠버네티스 클러스터를 구성해본다. 1. 템플릿 생성과 Node 생성 (1) 템플릿 생성하기 - AWS Ec2메뉴 인스턴스 > 시작 템플릿, 시작 템플릭 생성 버튼 클릭 # 1. 시작 템플릿 이름/설명 설정하기 # 2. 애플리케이션 및 OS 이미지에서 Ubuntu, Ubuntu Server 20.04LTS 선택 # 3. 인스턴스 유형은 t3.large, 키페어는 기존 키페어를 사용 # 4. 서브넷은 기존 서브넷 사용, 연습용으로 모든 트래픽을 허용하는 보안그룹 생성 # 5. 리소스 태그에 Name 태그 추가 (2) Masternode 생성하기 - 인스턴스 >..
-
Kubernetes) Kubernetes VolumeCloud/Kubernetes 2022. 10. 13. 23:26
학습 목표 : k8s의 volume이 어떻게 사용되는지 알아본다. Kubernetes 에서 Volume 이란? Volume은 Pod의 일부분으로 정의되는 요소로서 Pod와 동일한 생명주기를 갖는다. Volume은 독립적인 리소스가 아니므로 자체적으로 생성/삭제할 수 없다. Pod에 여러개의 container를 갖는 경우 모든 container가 Volume을 공유할 수 있다. Volume은 Pod의 모든 container에서 사용 가능하며 사용시 container에서 mount해야 사용할 수 있다. 각 container 파일 시스템의 어느 경로에도 mount 할 수 있다. Volume 유형 emptyDir : 일시적인 데이터를 저장할 때 사용하는 빈 디렉토리 hostPath : 워커 노드의 파일 시스템을..
-
Kubernetes) Kubernetes PodCloud/Kubernetes 2022. 10. 13. 22:20
학습 목표 : k8s의 pod 특징과 생명주기, 생성방법을 알아본다. Pod 란? Pod는 kubernetes에서 하나의 독립적인 서비스를 제공할 수 있는 container 들을 모아서 관리하는 최소 배포단위다. Pod 단위로 container의 작성, 시작, 정지, 삭제 등과 같은 조작을 수행한다. Pod 의 특징 동일한 Pod의 container는 반드시 동일한 node상에서 동시에 deploy된다. Pod 안에서 container의 Port는 중복될 수 없다. Pod안의 여러 container에서 가상 NIC(Private IP)를 공유하는 구성을 취하기 때문에 container 끼리 localhost를 경유하여 통신할 수 있다. Pod가 생성될 때 고유 IP가 할당되며 cluster 내에서만 접근..
-
Kubernetes) Kubernetes namespace 알아보기Cloud/Kubernetes 2022. 10. 12. 01:04
학습 목표 : kubernetes namespace사용하기위해 Kubernetes Object를 알아보고 namespace를 생성해본다. Kubernetes Object 란? Kubernetes는 Object(Resource)와 Object를 관리하는 Controller로 나뉜다. Object는 Kubernetes 시스템에서 영속성을 갖는다. Object를 생성하면 Kubernetes 시스템은 개발자/운영자가 원하는 상태를 보장하기위해 지속적으로 동작한다. Object는 cluster 상태를 나타내기위해 사용한다. Controller는 status와 spec이 일치하도록 Object를 관리한다. status : Kubernetes 시스템과 component에 의해 제공되고 업데이트된 Object의 현재상..