공부합시다!/Kubernetes
-
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가 ..
-
Kubernetes (K8S): Object - 6-3. Storage: Persistent Volume공부합시다!/Kubernetes 2022. 12. 26. 00:11
K8S에서 제공하는 Storage 유형은 volume, Persistent Volume, Projected Volume, Storage Class, 임시 볼륨 등으로 다양하며 스냅샷 및 복제가 가능하며 스토리지 용량을 제한하는 등의 기능을 수행한다. 오늘은 가장 많이 사용하는 volume과 persistent volume에 대해서 학습합니다. 1. Volume의 필요성 1.1. Container간의 Data 공유 1.2. Contraier의 문제가 발생 시 Container는 재시작 또는 다시 생성하면 되지만 Data 보존은? 이런 문제를 해결할 수 있는 것이 K8S의 Volume 추상화 2. Storage 유형 2.1. volume 2.2. PV(Persistent Volume)와 PVC(Persist..
-
Kubernetes (K8S):실습2: 각기 다른 POD의 wordpress + mysql공부합시다!/Kubernetes 2022. 12. 23. 10:48
각기 다른 pod에서 실행되는 wordpress 와 mysql의 연동은? 일단 ip address를 이용한 연결 방법을 소개합니다. 명령어로만 실행해서 접속하는 방법입니다. 단 제약사항은 wordpress 5.7 이상의 경우 아래와 같은 방법으로는 환경변수가 설정이 되지 않습니다. secret을 이용하셔야 합니다. 해서 wordpress5.6을 이용합니다. 1. mysql 설치 2. wordpress 5.6 설치 3. service nodeport 구성 4. test 순서입니다. 1. mysql 설치 1.1. mysql 설치 # kubectl run mysql --image=mysql:5.7 --port=3306 \ --env="MYSQL_ROOT_PASSWORD=It12345@" \ --env="MYS..
-
Kubernetes (K8S):실습1: 동일POD내의 wordpress + mysql공부합시다!/Kubernetes 2022. 12. 23. 10:47
모든 실습의 끝은 wordpress + mysql 접속 입니다. 오늘은 단일 pod내에서 wordress container와 mysql:5.7 container를 생성, pod를 nodeport로 연결해서 외부에 서비스하는 실습을 진행하겠습니다. 동일 pod내애서 두 개이상의 container를 실행하는 것을 MultiContainer라고 합니다. 기억해두세요! -> Multi Container 유형 sidecar adapter ambassador K8S에서는 pod에는 한 개의 Container를 지향합니다. 이런 구성은 권장하지 않습니다만 학습용으로! 아 그리고 꼭 kubectl cheat sheet 한번들 읽어 보세요! https://kubernetes.io/docs/reference/kubectl..
-
Kubernetes (K8S): 설치 영상: 2022년 12월 21일 Test공부합시다!/Kubernetes 2022. 12. 21. 14:19
일단은 기존의 스크립트 파일을 가지고 계셔야 합니다. 192.168.108.3 master master.labs.local 192.168.108.4 node1 node1.labs.local 192.168.108.5 node2 node2.labs.local 192.168.108.6 node3 node3.labs.local 이런 환경일 겁니다. 본인들 환경에 맞게 스크립트 파일 수정이 필요합니다. # /etc/hosts 파일 부분에 위의 파일 붙여넣기 하세요 그리고 master 부분의 # sed -i 's/advertiseAddress: 1.2.3.4/advertiseAddress: 192.168.108.3/' kubeadm-init.yaml 변경하세요. 과정은 아래 동영상에 있습니다. 안된다고 포기하지 말..
-
Kubernetes (K8S): Labels -1공부합시다!/Kubernetes 2022. 8. 3. 20:07
Cloud에서 Tag는 자원을 그룹화하기 위해서 많이 사용합니다. 역할 또는 기능별로.... 일례로 3Tier의 Resource인 WEB+WAS+DB를 하나의 Tag로 그룹화 할 수도 있고 WEB or WAS or DB등의 기능 서버별로 Tag를 사용하여 그룹화 할 수 있습니다. K8S에서 바로 이러한 역할을 수행하는 것이 Label 입니다. 오늘은 Kubectl 명령어를 이용한 Label 생성, 삭제, 업데이트 작업에 대해서 알아보겠습니다. 1. 생성 및 추가 2. 삭제 및 업데이트 3. POD 전체 생성, 업데이트, 삭제 특정 Tag를 갖은 자원을 특정한 Node에 배포할 때 이용하면 유용하게 사용할 수 있습니다. 그럼 다음시간에는 위의 실습을 진행해 보겠습니다.