brunch

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

by Master Seo

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

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



감사합니다.

keyword
매거진의 이전글505.(책소개) Aws 서버리스 람다책들