공부합시다!/Kubernetes
-
Kubernetes(K8S): Job & CronJob공부합시다!/Kubernetes 2023. 1. 3. 00:12
Linux를 운영할 때 단순 1회성 작업은 at, 주기적인 작업은 cron으로 처리를 했습니다. 2023.01.03 - [공부합시다!/LInux] - CentOS7: at & cron K8S에서 역시 동일한 기능을 제공합니다. 단순 1회성 작업은 Job, 주기적인 작업은 CronJob으로 처리를 합니다. 아래 hello world를 10번 출력하는 code를 이용해 보도록 하겠습니다. # vi for.sh #! /bin/bash for a in {1..10} do echo hello world: $a done # sh for.sh hello world: 1 hello world: 2 hello world: 3 hello world: 4 hello world: 5 hello world: 6 hello wo..
-
Kubernetes(K8S): Multi Container POD공부합시다!/Kubernetes 2023. 1. 2. 00:11
1. 멀티 컨테이너 파드(Multi Container POD): 1.1. POD내에 2개이상의 Container를 포함 1.2. 일반적으로는 하나의 POD안에는 하나의 Container를 지향 1.3. 필요에 따라서 Main Container에 도움을 줄 수 있는 보조적인 역할의 Container를 추가해서 운영가능 1.4. Main Process를 Network 또는 Storage의 밀접한 공유가 필요한 다른 Container와 함께 운영할 때 고려 2. Kubernetes 설계 방식 - 전체 서비스를 기능 단위로 분산, Pod를 최소의 배포 단위로 구성 2.1. 동일 Pod내의 Container들은 같은 네트워크 안에서 동작 2.2. 동일한 IP주소와 Port를 공유 2.3. 따라서 동일한 Port를..
-
Kubernetes (K8S): Object - 2. POD공부합시다!/Kubernetes 2022. 12. 30. 16:32
1. 개요 1.1. K8S 구성요소 중 가장 작은 단위 1.2. Cluster의 Running Process 1.3. K8S의 Container 역할 1.3.1. docker 에서는 단일 Container가 가장 작은 단위의 객체 1.3.2. K8S에서는 POD 내에 여러 Container 존재 - 권장하지 않습니다. 1.4. POD내의 Container 들은 IP주소와 Port 공간을 공유, Localhost를 통해서 서로 검색가능 2. LifeCycle 2.1. Pending 2.1.1. POD가 K8S에 의해서 승인 2.1.2. 아직 Container 이미지가 생성이 완료되지 않은 상태 2.1.3. node에 배치되기 이전 시간 및 이미지 다운로드 시간 포함 2.2. Running 2.2.1. PO..
-
Kubernetes (K8S): Scheduling공부합시다!/Kubernetes 2022. 12. 30. 00:15
Scheduling 이란 Kubernetes에서 node의 상황에 따라 어떤 방식으로 Pod를 배치할 것인지를 결정하는 것입니다. Scheduling 의미는 1). Kubernetes는 대부분 Multinode로 운영된다. 2). 여러개의 node를 하나의 인스턴스로 사용하는 효과를 준다. 3). 사용자의 입장에서는 하나의 인스턴스를 사용하지만 Kubernetes 여러대의 node를 관리함으로 pod를 어떤 node에 배치해야 할지를 결정해야 한다. 로 정의할 수 있습니다. 1. 스케줄링 순서 1.1. User가 K8S에게 Pod 생성 요청 1.2. K8S는 받은 모든 요청을 API Server가 제어, 따라서 사용자의 요청은 API Server로 전달됨. 1.3. API Server는 etcd에 정보를..
-
Kubernetes(K8S): yaml 파일 분석공부합시다!/Kubernetes 2022. 12. 29. 09:08
K8S에서는 Object를 생성하기 위해서 yaml or json 형식을 파일을 작성합니다. 물론 yaml(야믈) 파일로 작성하는 것을 권장합니다. 일단 식별하기 쉬워서 그렇겠지요! 오늘은 우리가 작성하는 yaml 정확히는 구성파일이라고 합니다. POD, Service, Deployment에 대해서 분석해 보겠습니다. 긴 말 필요없이 한장짜리 그림으로 요약해 봤습니다. 1. POD와 Deployment 2. Service
-
Kubernetes (K8S): Network - 2. POD Networking공부합시다!/Kubernetes 2022. 12. 29. 00:14
동일 node 혹은 다른 node의 경우에 pod 통신에는 cni가 이용이 됩니다. 아래 그림을 살펴 보세요! Calico를 예로 보여 드립니다. Kubernetes에서 사용하는 대부분의 CNI는 비슷한 구조를 이루고 있습니다. Overlay Network의 특징이기도 하지요! 이런 경우 대부분 pod의 통신에는 IP Address를 사용합니다. 물론 DNS를 사용할 수도 있습니다. 그럼 하나하나 살펴보도록 하겠습니다. 저는 실습에서 CNI(Container Network Interface)는 weave를 사용하고 있습니다. 1. Test 구성도 1.1. weave는 vxlan terneling을 사용합니다. 1.2. 해서 추후 Routing Table을 확인해보면 스위치 내에서 통신처럼 routing ..
-
Kubernetes (K8S): App이 실행되지 않는 image(Centos, Ubuntu등) 실행공부합시다!/Kubernetes 2022. 12. 28. 00:12
container 기술들과는 다르게 K8S에서는 Application들이 실행되지 않는 - docker 에서는 -it 옵션으로 실행 - image를 실행하기 위해서는 별도의 작업이 필요하게 됩니다. 흡사 App 실행되는 것처럼 while문을 이용해서 무한루프를 발생시키는 작업입니다. while true; do sleep 1000; done 1000초에 한번씩 아무작업 없이 실행하라는 의미입니다. process가 계속 실행중이기 때문에 app처럼 kubernetes 속이는 작업을 하게 됩니다. 1. centos.yml 작성 # vi centos.yml apiVersion: v1 kind: Pod metadata: name: os spec: containers: - name: centos image: cen..
-
Kubernetes (K8S): Network - 1. Container Networking공부합시다!/Kubernetes 2022. 12. 27. 13:56
이제부터 K8S에서 가장 어렵다는 Network에 대해서 공부해 보겠습니다. 기본적으로 Subnet, Router, Bridge, Routing, IPtables에 대한 개념을 알고 계셔야 합니다. 모르시는 분들이 보면 더 힘들어지니 Pass 하시기 바랍니다. 하나의 POD에는 하나의 Container만을 실행하는 것을 권장합니다. 만일 단일 POD에 여러대의 Container를 생성했다면 Container는 어떻게 통신을 할까요? Docker때 공부했던 Host Network를 POD안으로 집어넣으시면 됩니다. 즉 POD가 Host의 역할을 한다고 생각하시면 되세요! 아래 그림을 참조하면서 설명을 드리겠습니다. 1. pause container 1.1. pause는 별도로 생성하는 container가 ..