brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jan 11. 2022

(책)컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커

쿠버네티스 운영자는 필수로 봐야 하는책

Pod 운영에 대한 노하우가 가득 있다.


다른 책에는 없는 운영 노하우가 나와 있는 책이라 추천한다!!!

쿠버네티스, 도커, 젠킨스, 프로메테우스, 그라파나로 쿠버 네티스를 잘 쓰게 해주는 툴을 모두 설명한다.

기초부터 중급까지 나온 책이다.

2021년 6월 출간책








<1> 새로운 환경  도커, 쿠버네티스  이해

<2> WindowsPC에 버추얼 박스와 베이그런트로 테스트 환경 구성

<3> 쿠버네티스 이해

<4> 도커 이해

<5> 젠킨스로 배포 자동화

<6> 프로메테우스와 그라파나로 모니터링 하기




<1> 새로운 환경  도커, 쿠버네티스  이해


도커는 컨테이너 환경에서 독립적으로 어플리케이션 실행할 수 있도록 만들 수 있도록 도와주는 컨테이너 도구

쿠버네티스는 다수의 컨테이너를 관리하는 데 사용하는 도구

쿠버네티스는 배를 조정하는 조타수라는 의미이다.



<2> WindowsPC에 버추얼 박스와 베이그런트로 테스트 환경 구성


책 내용대로 설치하기는 시간이 좀 걸린다.

아래 한 번에 설치하는 방법으로 진행하기 바란다.


아래 내용으로 K8s를 한 번에 설치한다.

https://brunch.co.kr/@topasvga/1682



3

KOPS로 AWS에 쿠버네티스를  설치해도 좋다.

단지, AWS는 비용이 좀 발생한다.  


KOPS로 AWS에 쿠버네티스 설치법

https://brunch.co.kr/@topasvga/1649



4

슈퍼 푸티 (선택) 사용





<3> 쿠버네티스 이해


1

컨테이너 오케스트레이션 도구?

도커 스웜

메소스

노매드

쿠버네티스


대부분의 회사들이 쿠버네티스를 사용하고 있다.


2

퍼블릭 클라우드에서 제공하는 관리형 쿠버네티스 ?

EKS

AKS

GKE

NKS


3

유료?

수세 Rancher

레드햇 Openshift


4

쿠버네티스를 자동으로 구성해주는 솔루션?

kops

kubeadmin

krib

kubespray



5

쿠버네티스가 설치되었다면 93페이지부터 시작한다.


Windows PC > virtualbox 실행

m-k8s 서버에 접속해 테스트 시작~


CTRL + ALT + DEL 로 화면 밖으로 나갈수 있다.


m-k8s 서버 로그인

ifconfig |more  로  ip 확인

192.168.100.10 


6

노트북에서 putty로 접속하기

putty로 사용해야 편하다.


7

노드를 보자

마스터와 워커 노드 이다.

일꾼 서버,  본체 서버 이다.  마스터 1개와 워커 2개가 있다.

쿠버네티스가  마스터와 워커를 관리한다.



 k get nodes


(admin-k8s:default) root@k8s-m:~# k get nodes

NAME     STATUS   ROLES                  AGE    VERSION

k8s-m    Ready    control-plane,master   3d1h   v1.21.4

k8s-w1   Ready    <none>                 3d1h   v1.21.4

k8s-w2   Ready    <none>                 3d1h   v1.21.4


8

전체 node에 배포되어 있는 pod를 확인한다.


k get pods --all-namespaces


pod가 ip를 가진 서버라고 보면 된다.

pod안에 컨테이너가 1개 또는 2개가 존재 할수 있다.


마스터 노드 ?

명령어를 받아주는 api 서버

etcd  구성요소 상태값을 저장하는곳

kube-controller-manager 컨트롤러

kube-scheduler 스케줄러 파드가 보인다.


워커 노드?

kube-proxy 프록시 서버

dns인 coredns


선택 구성 요소?

calico 네트워크 플러그인



k get pods --all-namespaces


(admin-k8s:default) root@k8s-m:~# k get pods --all-namespaces

NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE

kube-system   calico-kube-controllers-6b9fbfff44-gllpg   1/1     Running   1          3d1h

kube-system   calico-node-4qgdr                          1/1     Running   1          3d1h

kube-system   calico-node-nnkwj                          1/1     Running   1          3d1h

kube-system   calico-node-zkxqx                          1/1     Running   1          3d1h

kube-system   coredns-558bd4d5db-qzrvz                   1/1     Running   1          3d1h

kube-system   coredns-558bd4d5db-v4qnl                   1/1     Running   1          3d1h

kube-system   etcd-k8s-m                                 1/1     Running   1          3d1h

kube-system   kube-apiserver-k8s-m                       1/1     Running   1          3d1h

kube-system   kube-controller-manager-k8s-m              1/1     Running   1          3d1h

kube-system   kube-proxy-22d8k                           1/1     Running   1          3d1h

kube-system   kube-proxy-7njf9                           1/1     Running   1          3d1h

kube-system   kube-proxy-bpfvj                           1/1     Running   1          3d1h

kube-system   kube-scheduler-k8s-m                       1/1     Running   1          3d1h




9

pod 생성하고 확인하기


run으로 생성하기 ?


(admin-k8s:default) root@k8s-m:~# k run nginx-pod --image=nginx

pod/nginx-pod created


//--image=nginx  가 이름이다.


(admin-k8s:default) root@k8s-m:~# k get pods

NAME        READY   STATUS              RESTARTS   AGE

nginx-pod   0/1     ContainerCreating   0          5s


기본으로 Pod를 생성하면   단독 pod 1개가 생성된다.

자동 증가 부분은 고려가 안된것이다.




10

아래  , deployment로 생성한것은  자동 증가를 위한 구성으로 pod가 생성된것이다.


create로 생성하기?


(admin-k8s:default) root@k8s-m:~# k create deployment dep-nginx --image=nginx

deployment.apps/dep-nginx created


(admin-k8s:default) root@k8s-m:~# k get pods

NAME                        READY   STATUS              RESTARTS   AGE

dep-nginx-75ddff596-2qtk2   0/1     ContainerCreating   0          3s

nginx-pod                   1/1     Running             0          3m15s




11

ip 확인 ?


(admin-k8s:default) root@k8s-m:~# k get pods -o wide

NAME                        READY   STATUS    RESTARTS   AGE     IP              NODE     NOMINATED NODE   READINESS GATES

dep-nginx-75ddff596-2qtk2   1/1     Running   0          45s     172.16.228.65   k8s-w1   <none>           <none>

nginx-pod                   1/1     Running   0          3m57s   172.16.46.1     k8s-w2   <none>           <none>


12

(admin-k8s:default) root@k8s-m:~# curl 172.16.228.65

<!DOCTYPE html>

<html>

<head>

<title>Welcome to nginx!</title>




<4> 도커 이해


도커 실습포함 자세히 설명 된다.

초급 자료



<5> 젠킨스로 배포 자동화


젠킨스 설치부터 자세히 설명 된다.

중급 자료



<6> 프로메테우스와 그라파나로 모니터링 하기


시각화 도구인 프로메테우스와 그라파나가 자세히 설명 된다~

중급 자료




같이 보면 좋을 책


https://brunch.co.kr/@topasvga/1455



감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari